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 --setversion <version> - Generate release notes. We’re using clog for release notes. The older v0.9.3 version is recommended (cargo install clog-cli@0.9.3), v0.10.0 has a bug interpreting our .clog.toml file options (which can be worked around by running it via clog -r https://github.com/mozilla-services/syncstorage-rs --from-latest-tag --setversion <version>)
  9. Review the CHANGELOG.md file and ensure all relevant changes since the last tag are included.
  10. git commit -am "chore: tag <version>" to commit the new version and changes
  11. git tag -s -m "chore: tag <version>" <version> to create a signed tag of the current HEAD commit for release.
  12. git push origin release/<version> to push the commits to a new origin release branch
  13. git push --tags origin release/<version> to push the tags to the release branch.
  14. Submit a Pull Request (PR) on github to merge the release branch to master.
  15. Go to the GitHub release, you should see the new tag with no release information.
  16. Click the Draft a new release button.
  17. Enter the <version> number for Tag version.
  18. Copy and paste the most recent change set from CHANGELOG.md into the release description, omitting the top 2 lines (the name and version)
  19. 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.