.. # 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.