Releases Management ################### Releases ******** r1 == .. note:: Upcoming next release based in `v1.x.y`. .. attention:: This release introduces breaking changes. r0 == .. todo:: Releases:r0 Needs documentation. Versions ******** .. todo:: Releases:Versions Needs documentation. Branches ******** .. mermaid:: %%{init: { 'logLevel': 'debug', 'theme': 'neutral', 'gitGraph': {'rotateCommitLabel': false} } }%% gitGraph commit id: "-" branch dev commit id: "B" commit id: "C" checkout main merge dev tag: "v0.4.0" checkout dev commit id: "D" commit id: "E" commit id: "F" checkout main merge dev tag: "v0.5.0" ``dev`` ======= Development is done on branch ``dev``. All merge requests need to target this branch. ``main`` ======== Finished development is merged to branch ``main``. Each merge-commit is tagged with a semantic version. Tagging ******* See context in :ghissue:`#5 Tagging/versioning of this repo <5>`. Tag new releases in the ``main`` branch using a semver compatible value, starting with ``v``: .. code-block:: bash git checkout main git tag v0.0.0 git push upstream v0.0.0 Move the corresponding release branch (starting with ``r``) forward by creating a merge commit, and using the merged tag as the commit message: .. code-block:: bash git checkout r0 git merge --no-ff -m 'v0.0.0' v0.0.0 git push upstream r0