![]() |
ICON Community Interface 0.4.0
|
Release procedure for ComIn releases:
main branch contains all recent changes, ie. it is "unstable"comin-X.Y is created.main branch is increasedcomin-X.Y branch.comin-X.Y.Z (including the patch level)The releases are created automatically by GitLab CI if a commit with a tag of the form comin-x.y.z is created. Please ensure that the commit met the following conditions:
CMakeLists.txt must match the version number of the commit.comin-x.yThe replay data can be updated semi-automatically. The following steps need to be executed:
ICON_BRANCH to the name of the icon feature branch.ICON_REPO to the ssh url for cloning the ICON repository. (default: git@gitlab.dkrz.de:icon/icon.git)generate_replay_data will create an artifact predef_replay_data.cmakecmake/Scripts subdirectory)Pre-commit hooks are tests that run every time you try to commit. A very basic test is to check for lines containing trailing whitespace, or to apply the fprettify auto-formatter for modern Fortran code.
You will need to have the pre-commit package manager installed, see https://pre-commit.com for instructions. The next time you run git commit, the hooks listed in ‘.pre-commit-config.yaml’ will be executed.
Whenever changes are pushed to the GitLab server, the CI/CD pipeline also runs the pre-commit hook scripts. The intention here is to catch formatting problems while they are in a feature branch. They would need to be fixed before merging into the main branch.
A different set of pre-commit hooks is run for merge requests: The pre-commit-config.merge.yaml file tests whether commit messages contain certain structural elements: fix:, feat:, chore:, etc., making it easier to create release changelogs, for example. See https://www.conventionalcommits.org/en/v1.0.0/ for details. The tests for conventional commit messages use the Cocogitto toolbox (https://github.com/cocogitto/cocogitto). Note: these checks are currently disabled!