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. nanbield).
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.
mainbranch is meant to be compatible with
mainbranches from Poky and 3rd party layers.
meta-cassiniis not actively developed on this
mainbranch 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>-devwhere <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
mainbranch 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).