Skip to main content

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 dateRelease typeVersion numberComment
05 May 2020Monthly4.0.0-devel-202005+build.201Monthly pre-release
06 May 2020Nightly4.0.0-devel-20200506+build.315Nightly pre-elease
04 June 2020Quarterly4.0.0+build.467Quaterly release
04 July 2020Monthly4.1.0-devel-202007+build.567Monthly release
21 December 2020Quarterly4.3.0+build.657LTS release

Legacy Versioning

For information about Version for releases before 4.0.0 please have a look at Toradex Software Versioning Convention.



Send Feedback!