DLA-Future follows Semantic Versioning.
-
For minor and major releases: check out the
master
branch. All changes required for the release are added tomaster
via pull requests. For patch releases: check out the correspondingversion_major.minor
branch. -
Write release notes in
CHANGELOG.md
. Check for issues and pull requests for the release on the DLA-F Planning board. Make sure to include changes that may affect users, such as API changes, bugfixes, performance improvements, dependency updates. Changes that do not directly affect users may be left out, such as CI changes, miscellaneous spack package updates, documentation updates, or utility script updates. All list entries and paragraphs must be on a single line for correct formatting on GitHub. -
Update the version in
CMakeLists.txt
. -
Update the version and date in
CITATION.cff
. -
When making a post-1.0.0 major release, remove deprecated functionality if appropriate.
-
Update the minimum required versions if necessary.
-
Add a link to the documentation for the release in
DOCUMENTATION.md
and update the link inREADME.md
. The documentation will be generated automatically after thevx.y.z
tag has been created and pushed. -
Ensure you have
gh
(GitHub CLI) installed. Rungh auth login
to authenticate with your GitHub account, or setGITHUB_TOKEN
to a token withpublic_repo
access. -
Create a release on GitHub using the script
scripts/roll_release.sh
. This script automatically tags the release with the corresponding release number. -
Update spack recipe in
spack/packages/dla-future/package.py
adding the new release. -
Synchronize upstream spack package with local repository. Exclude blocks delimited by
###
comments. These are only intended for the internal spack package. -
Delete your
GITHUB_TOKEN
if created only for the release. -
Modify the release procedure if necessary.