This article presents information about the versioning scheme for Embedded Linux Offerings on Toradex SoMs.
Software Versioning Scheme
Toradex uses the regular MAJOR.MINOR.PATCH versioning and follow largely Semantic Versioning.
Represents breaking changes and will be done typically once a year. Such changes include new OpenEmbedded/Yocto Project versions, new Kernel Versions and other changes.
Representing updates, or changes that should not break backward compatibility (e.g. stay with the same OpenEmbedded release which usually means core components such as GCC and glibc stay at the same major version). Incrementing minor will typically be done from one quarterly release to the next quarterly release.
On-demand, typically to fix a security issue or a broken functionality for Quarterly and Maintenance Releases.
Indicate a pre-release such as nighty or monthly releases.
Dates are added to pre-releases. The date can be used to distinguish pre-releases:
Monthly pre-releases: contain year and month.
Nightly pre-releases: contain year, month and day.
If the time is also included it is a special development build.
To denote the build number we use the word build. The build number is added as build metadata, preceded by a plus (+) sign, and is incremented on each complete OpenEmbedded build. The build number should also be available in the root file system (should be available in /etc/issue or /etc/os-release through the means of DISTRO_VERSION).
Software Artifacts Versioning
For software artifacts like the Linux kernel and U-Boot, we also add the Toradex Image version number to the localversion part of the software artifact version. For those artifacts, we only use the main version plus a denomination for pre-releases, -devel, plus a git hash instead of the build number. This avoids unnecessary rebuilds and makes it easy to trace back the source code those pieces are built from. Examples:
A high-level overview of the versions of U-Boot, the Linux kernel, and Yocto/OpenEmbedded for each Toradex Embedded Linux release, can be found in the Embedded Linux Release Matrix.
Full Examples - Embedded Linux Releases
|Release date||Release type||Version number||Comment|
|05 May 2020||Monthly||4.0.0-devel-202005+build.201||Monthly pre-release|
|06 May 2020||Nightly||4.0.0-devel-20200506+build.315||Nightly pre-elease|
|04 June 2020||Quarterly||4.0.0+build.467||Quaterly release|
|04 July 2020||Monthly||4.1.0-devel-202007+build.567||Monthly release|
|21 December 2020||Quarterly||4.3.0+build.657||LTS release|
For information about Version for releases before 4.0.0 please have a look at Toradex Software Versioning Convention.