Skip to content

Commit

Permalink
Document our release process
Browse files Browse the repository at this point in the history
  • Loading branch information
poljar committed Oct 1, 2024
1 parent d94965e commit 65e6f0c
Showing 1 changed file with 61 additions and 0 deletions.
61 changes: 61 additions & 0 deletions RELEASING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
# 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`](https://github.com/crate-ci/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:

```bash
git switch -c release-x.y.z
```

2. 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.

```bash
cargo release --no-publish --no-tag --no-push --execute major|minor|patch|rc
```

3. Double-check and edit the changelog and README if necessary. Once you are
satisfied, push the branch and open a PR.

```bash
git push --set-upstream origin/release-x.y.z
```

4. Pass the review and merge the branch as you would with any other branch.

5. Create a tag for your new release:

```bash
# 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
```

6. Publish the release to crates.io:

```bash
cargo release publish --execute
```

7. Push the tag to the repository:

```bash
cargo release push --execute
```

8. 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

0 comments on commit 65e6f0c

Please sign in to comment.