Codeline Management

Overview

The Armv8-R AArch64 software stack releases use the following model:

  • The software stack releases grow incrementally (meaning that we are not dropping previously released features, with exceptions)

    Note

    A specific exception is that support for PREEMPT_RT Linux builds was removed in Release 4.0 - Xen.

  • The Armv8-R AEM FVP model releases are incremental (meaning that FVPs are not dropping previously released features)

In addition to the above model, the Armv8-R AArch64 software stack is developed and released based on Yocto’s release branch process. This strategy allows us make releases based on upstream stable branches, reducing the risk of having build and runtime issues.

Yocto Release Process

Yocto Release Process

The diagram above gives an overview of the Yocto branch and release process:

  • Development happens primarily in the master (or main) branch.

  • The project has a major release roughly every 6 months where a stable branch is created.

  • Each major release has a codename which is also used to name the stable branch is created.

  • Once a stable branch is created and released, it only receives bug fixes with minor (point) releases on an unscheduled basis.

  • The goal is for users and 3rd parties layers to use these codename branches as a means to be compatible with each other.

For a complete description of the Yocto release process, support schedule and other details, see the Yocto Release Process documentation.

Armv8-R AArch64 Software Stack Branch and Release Process

The Armv8-R AArch64 software stack’s branch and release process can be described as the following diagram:

Armv8-R AArch64 Software Stack Release Process

The stack’s branch and release process will follow the Yocto release process. Below is a detailed description of the branch strategy for this stack’s development and release process.

  • Main branch

    • Represented by the green line on the diagram above.

    • The repository’s main branch is meant to be compatible with master or main branches from Poky and 3rd party layers.

    • This stack is not actively developed on this main branch to avoid the instability inherited from Yocto development on the master branch.

    • To reduce the effort to move this stack to a new version of Yocto, this main branch is periodically updated with the patches from the development and release branch on a regular basis.

  • Development and release branches

    • Represented by the blue line on the diagram above.

    • This stack uses development branches based on or compatible with Yocto stable branches.

    • A development branch in this stack is setup for each new Yocto release using the name convention codename where codename comes from target Yocto release.

    • The development branches are where fixes, improvements and new features are developed.

    • On a regular basis, code from the development branch is ported to the main branch to reduce the effort required to move this stack to a new version of Yocto.

    • The development branches are also used for release by creating tags on the specific commits.