CADET-Core version release¶
CADET-Core releases follow the semantic versioning system, which is documented here.
Release checklist¶
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, and can be run with the [ReleaseCI] flag.
More tests are implemented in Python, the code can be found in CADET-Verification
Compare the results with the previous run. The release process can only be continued if the results are reasonable.
Run performance benchmarks:
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
Create a version bump commit, which will be the target commit for the release. The bump commit contains:
Update of the version number in the version.txt and in the zenodo.json
Update of the authors list if needed: CONTRIBUTING.md and zenodo.json
Update of the copyright (years)
Update of the file format if needed
Create the release on github here.
Add the version number according to the semantic versioning system as the tag and set the master branch as target.
Add release notes with these categories:
Added: New features, enhancements, or functionalities introduced in this release.
Fixed: Bug fixes and corrections made to resolve issues from previous versions.
Changed: Modifications to existing features and breaking changes for major releases including changes in the interface.
Updated: Improvements to documentation, minor tweaks, or other updates that don’t fit into the other categories.
Attach the (zipped) source code.
Check success of zenodo archiving:
Upon release, Zenodo automatically archives the release, generating a version-specific DOI (Digital Object Identifier) for it and storing a copy of the source code, along with any associated files. The concept DOI, which is also given in the repository README, does not change but represents the repository as a whole and always points to the latest version.
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 Python interface, CADET-Python, and the frontend, CADET-Process, import this package.