Skip to content

Latest commit

 

History

History
60 lines (39 loc) · 3.02 KB

RELEASE_PROCEDURE.md

File metadata and controls

60 lines (39 loc) · 3.02 KB

Release procedure for DLA-Future

DLA-Future follows Semantic Versioning.

  1. Update the following files via a PR to the master branch:

    1. 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.

    2. Update the version in CMakeLists.txt.

    3. Update the versions and date in CITATION.cff.

    4. When making a post-1.0.0 major release, remove deprecated functionality if appropriate.

    5. Update the minimum required versions if necessary.

    6. Add a link to the documentation for the release in DOCUMENTATION.md and update the link in README.md. The documentation will be generated automatically after the vX.Y.Z tag has been created and pushed.

  2. Merge all the changes for the release to the master branch (also for patch releases), including the above changes to version, documentation, etc.

  3. Ensure you have gh (GitHub CLI) installed. Run gh auth login to authenticate with your GitHub account, or set GITHUB_TOKEN to a token with public_repo access.

  4. Ensure you are working from the eth-cscs/DLA-Future and not your own fork for following steps.

  5. For minor and major releases: check out the master branch. For patch releases: check out the corresponding version_major.minor branch. If it doesn't exist yet, create it from the vX.Y.0 tag.

  6. For patch releases: cherry pick the commits for the patch from master to the version_X.Y branch. Make sure the cherry-picked commits are listed in the CHANGELOG.md, and make sure you cherry-picked the PR(s) updating all the above (version, documentation, etc.).

  7. Check the release branch to make sure the content matches the release notes.

  8. Wait for CI tests to pass before making a release. CI is automatically triggered for master and version_* branches.

  9. Create a release on GitHub using the script scripts/roll_release.sh. This script automatically tags the release with the corresponding release number.

  10. Update Spack recipe in spack/packages/dla-future/package.py adding the new release.

  11. Synchronize upstream spack package with local repository. Exclude blocks delimited by ### comments. These are only intended for the internal Spack package.

  12. Delete your GITHUB_TOKEN if created only for the release.

  13. Create a new milestone named vX.Y.Z for the next major or minor release.

  14. Modify the release procedure if necessary.