Skip to content

Latest commit

 

History

History
30 lines (28 loc) · 1.76 KB

RELEASING.md

File metadata and controls

30 lines (28 loc) · 1.76 KB

Releasing Viceroy

Below are the steps needed to do a Viceroy release:

  1. Make sure the Viceroy version has been bumped up to the current release version. You might need to bump the minor version (e.g. 0.2.0 to 0.3.0) if there are any semver breaking changes. Review the changes since the last release just to be sure.
  2. Update the Cargo.lock files by running make generate-lockfile.
  3. Update CHANGELOG.md so that it contains all of the updates since the previous version as its own commit. Remove the "## Unreleased" header.
  4. Create a local branch in the form release-x.y.z where x, y, and z are the major, minor, and patch versions of Viceroy and have the tip of the branch contain the Changelog commit.
  5. Run make ci locally to make sure that everything will pass before pushing the branch and opening up a PR.
  6. After you get approval, run git tag vx.y.z HEAD && git push origin --tags. Pushing this tag will kick off a build for all of the release artifacts.
  7. After CI completes, we should publish each crate in the workspace to the crates.io registry. Note that we must do this in order of dependencies. So,
  8. (cd lib && cargo publish)
  9. (cd cli && cargo publish)
  10. Now, we should return to our release PR.
  11. Update the version fields in lib/Cargo.toml and cli/Cargo.toml to the next patch version (so z + 1).
  12. Update the dependency on viceroy-lib in cli/Cargo.toml to the next patch version.
  13. Update all the lockfiles by running make generate-lockfile.
  14. Restore the ## Unreleased header at the top of CHANGELOG.md.
  15. Get another approval and do a merge commit (not a squash) when CI passes. We don't squash because we want the tagged commit to be contained within the main branch