Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Creating Releases

  1. Switch to master branch of syncstorage-rs
  2. git pull to ensure that the local copy is up-to-date.
  3. git pull origin master to make sure that you’ve incorporated any changes to the master branch.
  4. git diff origin/master to ensure that there are no local staged or uncommited changes.
  5. Bump the version number in Cargo.toml (this new version number will be designated as <version> in this checklist)
  6. create a git branch for the new version git checkout -b release/<version>
  7. cargo build --release - Build with the release profile release mode.
  8. clog -C CHANGELOG.md - Generate release notes. We’re using clog for release notes. Add a -p, -m or -M flag to denote major/minor/patch version, ie clog -C CHANGELOG.md -p.
  9. Review the CHANGELOG.md file and ensure all relevant changes since the last tag are included.
  10. Create a new release in Sentry: VERSION={release-version-here} bash scripts/sentry-release.sh. If you’re doing this for the first time, checkout the tips below for troubleshooting sentry cli access.
  11. git commit -am "chore: tag <version>" to commit the new version and changes
  12. git tag -s -m "chore: tag <version>" <version> to create a signed tag of the current HEAD commit for release.
  13. git push origin release/<version> to push the commits to a new origin release branch
  14. git push --tags origin release/<version> to push the tags to the release branch.
  15. Submit a Pull Request (PR) on github to merge the release branch to master.
  16. Go to the GitHub release, you should see the new tag with no release information.
  17. Click the Draft a new release button.
  18. Enter the <version> number for Tag version.
  19. Copy and paste the most recent change set from CHANGELOG.md into the release description, omitting the top 2 lines (the name and version)
  20. Once your PR merges, click [Publish Release] on the GitHub release page.

Sync server is automatically deployed to STAGE, however QA may need to be notified if testing is required. Once QA signs off, then a bug should be filed to promote the server to PRODUCTION.