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)
gitGraph
checkout main
commit id: "start"
branch comin-1.0
commit type: HIGHLIGHT tag: "comin-1.0.0"
commit
checkout main
commit
checkout comin-1.0
commit type: HIGHLIGHT tag: "comin-1.0.1"
commit
commit
commit type: HIGHLIGHT tag: "comin-1.0.2"
checkout main
commit
commit
branch comin-1.1
commit type: HIGHLIGHT tag: "comin-1.1.0"
commit
commit type: HIGHLIGHT tag: "comin-1.1.1"
checkout main
commit
commit
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 testing uses reference files that are compared with the terminal output of the tests. In some situations changes in the reference files are unavoidable or new references need to be generated for new tests. This can be done as follows:
ENABLE_TESTING=ONmakectest. Some tests might fail due to the mismatch with the reference.make update_references. This copies all references from the tests into the ComIn repository.git diff.Note: To run all tests ComIn have to be configured with yaxt and yac.
The 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.
We, the ComIn team, don't formulate a set of hard rules but instead agree on guidelines for how we want to organize development of ComIn. The guidelines are given below, roughly organized by development stage. In case updates or corrections are required, please open an issue and tag b309183. Further information on the ComIn team and the development process can be found in the "Memorandum of Understanding" as part of the ICON docs.
NO CHANGELOG label to the MR.