..
# SPDX-FileCopyrightText: Copyright (c) 2024-2025, Linaro Limited.
#
# SPDX-FileCopyrightText: Copyright 2022-2023 Arm Limited and/or its
# affiliates
#
# SPDX-License-Identifier: MIT
###################
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
******************************
|
.. image:: images/cassini_rel_yocto_overview.png
:align: center
|
The diagram above gives an overview of the Yocto branch and release process:
..
Disable cspell to allow use of a forbidden word in the next few lines
spell-checker:disable
* 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.
..
Reenable cspell
spell-checker:enable
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
**********************************
|
.. image:: images/cassini_branching_strategy.png
:align: center
|
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
===================
..
Disable cspell to allow use of a forbidden word in the next few lines
spell-checker:disable
* 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.
* ``meta-cassini`` is actively developed on this ``main`` branch.
..
Reenable cspell
spell-checker:enable
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 main branch are back ported to the release branch if
it is relevant and applicable.
* Release branches are currently maintained not much longer than a Yocto release
period (~7 months).
Cassini release tags
====================
* Cassini is tagged using the version format ``v..``.
* Tags are always applied to commits from the release branch.
* The `Major` version is incremented for LTS Yocto releases.
* The `Minor` version is incremented for stable Yocto releases that is
not LTS.
* `Patch` releases are mainly used for hot fixes, which are first merged
into the main branch and may then be backported to stable or LTS
branches.
* Both `Major` and `Minor` releases may receive fixes, improvements and new
features while `Patch` releases only receive fixes. Poky and 3rd party layers
release/stable branches might be updated and pinned.