Cutting a new release, this currently contains steps 1 through to 5 of Releasing Viceroy.
Below are the steps needed to do a Viceroy release:
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.
Update the Cargo.lock files by running make generate-lockfile.
Update CHANGELOG.md so that it contains all of the updates since the
previous version as its own commit.
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.
Run make ci locally to make sure that everything will pass before pushing
the branch and opening up a PR.
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.
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,
(cd lib && cargo publish)
(cd cli && cargo publish)
Now, we should return to our release PR.
Update the version fields in lib/Cargo.toml and cli/Cargo.toml to the
next patch version (so z + 1).
Update the dependency on viceroy-lib in cli/Cargo.toml to the next
patch version.
Update all the lockfiles by running make generate-lockfile.
Restore the ## Unreleased header at the top of CHANGELOG.md.
Cutting a new release, this currently contains steps 1 through to 5 of Releasing Viceroy.