Skip to content

Commit

Permalink
Update release checklist (#347)
Browse files Browse the repository at this point in the history
  • Loading branch information
jbreue16 authored Dec 18, 2024
1 parent 0b3a9c8 commit 5333e26
Showing 1 changed file with 21 additions and 26 deletions.
47 changes: 21 additions & 26 deletions .github/ISSUE_TEMPLATE/release_checklist.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ CADET-Core release
CADET-Core releases follow the *semantic versioning system*, which is documented [here](https://semver.org/).

**CADET-Core is released following the so-called *GitLab flow*:**
In GitLab flow, feature and hotfix branches contain work for new features and bug fixes which will be merged back into the master branch immediately when they’re finished, reviewed, and approved. The master branch is ready to be deployed, but not necessarily the source of truth for a new release: Each release has an associated release branch that is based off the master branch. Changes that are intended to be released are cherry-picked from master into the release branch. The release is made on the release branch. If desired, some release branches can be kept and maintained, which is currently not planned for the CADET-Core project.
In GitLab flow, feature and hotfix branches contain work for new features and bug fixes which will be merged back into the master branch immediately when they’re finished, reviewed, and approved. The master branch is ready to be deployed, but not necessarily the source of truth for a new release: Each release has an associated release branch that is based off the master branch. Changes that are intended to be released are cherry-picked from master onto the release branch. The release is made on the release branch. Some release branches can be kept and maintained, e.g. branch `v5.0.X` to support the last major release.


**To make a release, the tasks in the following checklist have to be executed sequentially.**
Expand All @@ -19,34 +19,27 @@ In GitLab flow, feature and hotfix branches contain work for new features and bu
Release on github
-----------------

- [ ] Run the release tests:

- [ ] The release tests contain extensive testing that is not included in our CI, such as EOC tests.
Running these tests might take a while and this should be done on the server.
- [ ] Some tests are implemented in CADET-Core with a `ReleaseCI` flag. These tests need to pass and can be run by executing the `cd.yml` workflow.
- [ ] More tests are implemented in Python, the code can be found in [CADET-Verification](https://github.com/cadet/CADET-Verification)
Compare the results with the previous run.
The release process can only be continued if the results are reasonable.
- [ ] Open a PR and create a version bump commit `Bump version to vX.X.X`:

- [ ] Update of the version number in the `version.txt`, `zenodo.json` (two places), `cadet.hpp` and `cadet.doxyfile`, compare to last `bump version` commit
- [ ] Update of the authors list if needed: `CONTRIBUTING.md` and `zenodo.json`
- [ ] Update of the file format if needed, in the `driver.hpp`

- [ ] Run performance benchmarks:
- [ ] Name the commit *Bump version to vX.X.X* and merge the PR into `master`.

- [ ] If numerical algorithms were refactored or if performance-critical infrastructure was changed, you should run performance benchmarks to compare the latest release with the planned new one.
To this end, you can refer to the performance benchmark templates in CADET-Reference, e.g. the [benchmark for the modified Newton method](https://jugit.fz-juelich.de/IBG-1/ModSim/cadet/cadet-reference/-/tree/benchmark_modified_newton?ref_type=heads)
- [ ] Create a Release branch `vX.X.X` off of `master` and cherry-pick the desired commits onto it.

- [ ] Open a PR and create a version bump commit `Bump version to vX.X.X`:

- [ ] Update of the version number in the `version.txt`, `zenodo.json`, `cadet.hpp` and cadet.doxyfile, compare to last `bump version` commit
- [ ] Update of the authors list if needed: CONTRIBUTING.md and zenodo.json
- [ ] Update of the copyright (years)
- [ ] Update of the file format if needed
- [ ] Build the release branch and run the release tests: The release tests contain extensive testing that is not included in our CI, such as EOC tests. Running these tests might take a while and this should be done on the server.

- [ ] Merge the PR into master.
- [ ] Execute the `cd.yml` workflow for the release branch and verify that the tests pass. (Some tests are implemented in CADET-Core with a `ReleaseCI`)
- [ ] Execute the test suite implemented in [CADET-Verification](https://github.com/cadet/CADET-Verification). The test passes when the results dont deviate compared to the previous run, which requires manual comparison in the corresponding [output repository](https://github.com/cadet/CADET-Verification-Output). Write a comment about the successful run and link the corresponding output branch in this issue.
- [ ] Run performance benchmarks if numerical algorithms were refactored or if performance-critical infrastructure was changed. The previous release should be compared with the planned new one. To this end, you can refer to the performance benchmark templates in CADET-Reference, e.g. the [benchmark for the modified Newton method](https://jugit.fz-juelich.de/IBG-1/ModSim/cadet/cadet-reference/-/tree/benchmark_modified_newton?ref_type=heads)

- [ ] Create a Release branch off of master and cherry-pick the desired commits onto it.
- [ ] If some of the tests fail, fix them on the release branch. Once the tests run, open a new branch and merge the fixes into master.

- [ ] Create the release on github [here](https://github.com/cadet/CADET-Core/releases/new):

- [ ] Set the release branch as target and manually specify a tag as vX.X.X with the version number according to the semantic versioning system.
- [ ] Set the release branch as target and manually specify a tag as *vX.X.X* with the version number according to the semantic versioning system.
- [ ] Add release notes with these categories:

- [ ] Added: New features, enhancements, or functionalities introduced in this release.
Expand All @@ -62,13 +55,15 @@ Release of binaries on conda-forge
To ensure CADET-Core is accessible to a broad community, it is available as a Python package on conda-forge.
Other software, such as our frontend, `CADET-Process`, and our Python interface, `CADET-Python`, import this package.

- [ ] Go to github.com/conda-forge/cadet-feedstock
- [ ] Create a new branch and open a PR:
- [ ] Change the recipe/meta.yaml file:
- [ ] Go to your fork of https://github.com/conda-forge/cadet-feedstock or create the fork
- [ ] Create a new branch on your fork and open a PR:
- [ ] Change the `recipe/meta.yaml` file:

- [ ] Generate sha key via ``curl -sL https://github.com/cadet/{{ name }}/archive/refs/tags/v{{ version }}.tar.gz | openssl sha256``, which requires open ssl und curl
- [ ] Generate sha key via ``curl -sL https://github.com/cadet/CADET-Core/archive/refs/tags/v{{ version }}.tar.gz | openssl sha256``, which requires open ssl and curl. Substitute `{{ version }}` with the semantic version number.
- [ ] Update version number and sha key
- [ ] Set build number to zero (build: number: 0)

- [ ] Upon opening the PR, a todo checklist is automatically generated. After solving the todos, comment `@conda-forge-admin, please rerender` in the PR conversation. Automatic checks will be run and the bot will tell us the changes are fine. Then we can merge the PR, triggering the release on conda-forge.
- [ ] Upon opening the PR, a todo checklist is automatically generated, which includes the above changes of the `recipe/meta.yaml` file. After solving the todos, comment `@conda-forge-admin, please rerender` in the PR conversation. Automatic checks will be run and the bot will tell us the changes are fine.
- [ ] Then we can merge the PR, triggering the release on conda-forge.
- [ ] Create or Update a CADET forum post about the release.

0 comments on commit 5333e26

Please sign in to comment.