Skip to content

Latest commit

 

History

History
61 lines (43 loc) · 1.61 KB

RELEASING.md

File metadata and controls

61 lines (43 loc) · 1.61 KB

Releasing and publishing vodozemac

While the release process can be handled manually, cargo-release has been configured to make it more convenient.

By default, cargo-release assumes that no pull request is required to cut a release. However, since the vodozemac repo is set up so that each push requires a pull request, we need to slightly deviate from the default workflow.

The procedure is as follows:

  1. Switch to a release branch:
git switch -c release-x.y.z
  1. Prepare the release. This will update the README.md, prepend the CHANGELOG.md file using git cliff, and bump the version in the Cargo.toml file.
cargo release --no-publish --no-tag --no-push --execute major|minor|patch|rc
  1. Double-check and edit the changelog and README if necessary. Once you are satisfied, push the branch and open a PR.
git push --set-upstream origin/release-x.y.z
  1. Pass the review and merge the branch as you would with any other branch.

  2. Create a tag for your new release:

# Switch to main first.
git switch main
# Pull in the now-merged release commit(s).
git pull
# Run cargo-release to tag the commit, push the tag, and publish vodozemac on crates.io.
cargo release tag --execute
  1. Publish the release to crates.io:
cargo release publish --execute
  1. Push the tag to the repository:
cargo release push --execute
  1. Create a GitHub release from the pushed tag and copy the updates from the changelog to the GitHub release.

For more information on cargo-release: https://github.com/crate-ci/cargo-release