Codeline Management
The Cassini project is developed and released based on Yocto’s release branch process. This strategy allows us to make Major, Minor and Point/Patch Releases based on upstream stable branches, reducing the risk of having build and runtime issues.
Yocto Release Process Overview
The diagram above gives an overview of the Yocto branch and release process:
Development happens primarily in the main (or master) branch.
The project has a major release roughly every 6 months where a stable release branch is created.
Each major release has a codename which is also used to name the stable release branch (e.g. kirkstone, scarthgap).
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 codenamed 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.
Cassini Branch and Release Process
Cassini’s branch and release process is based on the Yocto release process. The following sub-sections describe in more details the branch strategy for Cassini’s development and release process.
Cassini main branch
Represented by the green line on the diagram above.
The repository’s
main
branch is meant to be compatible withmaster
ormain
branches from Poky and 3rd party layers.meta-cassini
is not actively developed on thismain
branch to avoid the instability inherited from Yocto development on the master branch.To reduce the effort required to move Cassini to a new version of Yocto, this main branch is periodically updated with patches from the Cassini development branches .
Cassini development branches
Represented by the red line on the diagram above.
Cassini uses development branches based/compatible with Yocto stable branches.
A development branch in Cassini is setup for each new Yocto release using the name convention
<codename>-dev
where <codename> comes from target Yocto release.The development branches in Cassini are where fixes, improvements and new features are developed.
On a regular basis, code from the development branch is ported over to the
main
branch to reduce the effort required to move Cassini to a new version of Yocto.
Cassini release branches
Represented by the blue line on the diagram above.
A new release branch in Cassini is setup for each new Yocto release using the Yocto codename the branch targets.
Hot fixes in the release branch are back ported to the development branch.
Release branches are currently maintained not much longer than a Yocto release period (~7 months).