Skip to content

Commit

Permalink
Add administrative tasks for releasing 4C
Browse files Browse the repository at this point in the history
  • Loading branch information
amgebauer committed Jan 14, 2025
1 parent 753e2c6 commit d7caa59
Show file tree
Hide file tree
Showing 2 changed files with 30 additions and 0 deletions.
1 change: 1 addition & 0 deletions doc/readthedocs/developer_addedinformation.rst
Original file line number Diff line number Diff line change
Expand Up @@ -12,3 +12,4 @@ Additional information
coverage_report
developer_ccache
developer_cluster
developer_release
29 changes: 29 additions & 0 deletions doc/readthedocs/developer_release.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
How to release |FOURC|
----------------------

.. note::
This section is only relevant for the maintainers of the repository.

|FOURC| is released regularly on GitHub. This section describes the
administrative tasks that need to be performed for publishing a release on GitHub. Releases are
managed and created by @4C-multiphysics/maintainer.

1. Check whether all changes that should be part of the release are merged into the ``main``-branch.
2. Update the version number in the ``VERSION`` file in the repo. The version scheme is ``YYYY.I.PATCH``, where ``YYYY`` is the year of the release, ``I`` is the number of the release in the year, and ``PATCH`` is the patch number. ``I`` starts at 1 for the first release of the year and is incremented for each release. ``PATCH`` is typically ``0`` and incremented on demand. Typically, this step only involves removing the ``-dev`` suffix from the version.
3. Pick a commit from ``main``-branch where all nightly tests have passed and the above points are satisfied.
4. Create a new branch from the commit chosen in the previous step. The branch should be named ``release/YYYY.I.x``. Note, since all patches are maintained on this branch, the name does not contain the respective patch number.
5. Create a new release on GitHub. The tag name should be ``vYYYY.I.PATCH`` and the release title should be ``4C version vYYYY.I.PATCH``. The release notes might contain a summary of the changes since the last release or a description of the fixed bugs in a PATCH release.
6. Update the tags of the all docker images, e.g., ``4c`` and ``4c-dependencies-ubuntu24.04``. Add the tag ``YYYY.I.PATCH`` to the images, and ``latest`` if it is the latest release. You can tag an image with the following commands locally:

.. code-block:: shell
docker pull ghcr.io/4c-multiphysics/4c:{version}
docker tag ghcr.io/4c-multiphysics/4c:{version} ghcr.io/4c-multiphysics/4c:YYYY.I.PATCH
docker push ghcr.io/4c-multiphysics/4c:YYYY.I.PATCH
7. Prepare the next release in the `VERSION` file in the repo by incrementing the number of the release, resetting the patch number to `0` and adding the suffix `-dev`.

.. note::
For a PATCH-release, only the steps 4 to 6 are necessary. Commits are typically added to the ``main``
branch and cherry-picked to the release branch. That ensures that the main branch is fixed and the
PATCH itself is still comptabile with all projects consuming a specific version of |FOURC|.

0 comments on commit d7caa59

Please sign in to comment.