This guide covers how to prepare and push a release of FTorch.
Follow this checklist to ensure that documentation, tags, archives etc. are all updated
consistently and correctly.
Release Checklist
- Ensure that you are working from the
main branch.
- Clarify the name of the release.
- Releases follow Semantic Versioning with the form
vX.Y.Z
- Create a git branch
vX.Y.Z-release
- Update the
CHANGELOG.md.
- Move all content currently listed under
## Unreleased to be under a header for the current version
- The new header should be titled
## vX.Y.Z - yyyy-mm-dd
- The version number should be a hyperlink to the GitHub tag:
https://github.com/Cambridge-ICCS/FTorch/releases/tag/vX.Y.Z
- Add a link to the diff before the changes of the form:
GitHub diff with A.B.C pointing to
https://github.com/Cambridge-ICCS/FTorch/compare/vA.B.C...vX.Y.Z),
where A.B.C was the previous release.
- Update the
## Unreleased section:
- Add empty section headers ready for future changes
- Update the GitHub diff to compare
vX.Y.Z to HEAD
- Add the
CHANGELOG.md to the git staging index
- Update the
CMakeLists.txt
- Change
set(PACKAGE_VERSION X.Y.Z)
- Add the
CMakeLists.txt to the git staging index
- Update code on the git remote:
- Commit the updated version files with message:
Update version number for release vX.Y.Z
- Push to remote.
- Open a Pull Request for release preparation
- Once approved merge via rebase
- Create a tag for the release
- Ensure that you are on the
main branch.
- Run
git pull to get the latest version of the code, ensuring that the most
recent commit is Update version number for release vX.Y.Z.
- Run
git tag -a vX.Y.Z -m "Version X.Y.Z". Optionally add -s to also sign.
- Push tags to the remote with
git push --tags origin main.
- Create a GitHub release corresponding to the new tag.
- Release creation for FTorch.
- Title: v.X.Y.Z
- Add brief release notes, referencing full details in Changelog.
- Ensure "Set as the latest release" is checked.
- Check that Zenodo archive is updated accordingly.
- Zenodo has been linked with the ICCS GitHub so the archive should appear automatically.
- Check author details and descriptions and update manually as appropriate.
- Party like you just published a release!
- Publicise on mailing list and wherever appropriate.