What Are Software Packages?

There are multiple versions of some software, such as Node.js and Java, listed in the Software Catalog. This software is referred to as software packages.

The version number of a package can be categorized into two: the major version and the minor version. If a software's version is 1.2.3, then 1 is its major version and 2.3 is its minor version. In a software's tile, the major version number is displayed in the title of the package. In Configure Software page, the number shown in Version is the installed version, which includes both major and minor versions.

Here's an example. In this image, Node.js 17, 16, and 14 are shown in the software catalog. In the Node.js 17 tile, 17 is the major version and 6.0 is its minor version. The installed version of the software is 17.6.0.

Description of odcs_software_catalog_version.png follows
Description of the illustration odcs_software_catalog_version.png

When a new minor version of a software package is available in the Software Catalog, all build executor templates using that software package are updated automatically. For example, assume that Node.js 14.17.5 is available in the Software Catalog for the Node.js 14 package. When Node.js 14.19.0 is made available in the Software Catalog, all build executor templates using the Node.js 14 package update automatically to use Node.js 14.19.0. If there’s an incompatibility between the upgraded software and other installed software of the build executor template, an error is reported with suggestions about the cause of the error.

When a new major version of a software package is available in the catalog, build executor templates using the older versions of the software package aren't updated automatically. The new major version of the software is added to the catalog as a separate package. For example, when Node.js 17 is available in the Software Catalog, all build executor templates using Node.js 14 or Node.js 16 aren’t updated automatically. To use the new version, you must manually update the build executor templates to use the new package.

When a major version of a software is removed from the catalog, all build executor templates using that software version are updated automatically to use the next higher version. For example, when Node.js 12 was phased out, build executor templates that were using Node.js 12 were automatically updated to use Node.js 14.