Software Versioning
Introduction
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.
MAJOR.MINOR.PATCH-[devel]-[DATE]+build.BUILD
Major
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.
[2].0.0
Minor
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.
2.[1].0
Patch
On-demand, typically to fix a security issue or a broken functionality for Quarterly and Maintenance Releases.
2.1.[1]
devel
Indicate a pre-release such as nighty or monthly releases.
devel
Date
Dates are added to pre-releases. The date can be used to distinguish pre-releases:
Monthly pre-releases: contain year and month.
202005
Nightly pre-releases: contain year, month and day.
20200514
If the time is also included it is a special development build.
Build number
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).
+build.65
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:
U-Boot: 2019.07-4.0.0-devel+git.03cac0835c
Linux: 5.3.10-4.0.0-devel+git.401bf3f29b1a
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 |
Legacy Versioning
For information about Version for releases before 4.0.0 please have a look at Toradex Software Versioning Convention.