mirror of
https://github.com/matrix-org/matrix-rust-sdk.git
synced 2026-02-08 14:42:14 -05:00
49 lines
1.5 KiB
Markdown
49 lines
1.5 KiB
Markdown
# Releasing and publishing the SDK
|
|
|
|
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 SDK
|
|
repo is set up so that each push requires a pull request, we need to slightly
|
|
deviate from the default workflow. A `cargo-xtask` has been created to make the
|
|
process as smooth as possible.
|
|
|
|
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`, set the versions in
|
|
the `CHANGELOG.md` file, and bump the version in the `Cargo.toml` file.
|
|
|
|
```bash
|
|
cargo xtask release prepare --execute minor|patch|rc
|
|
```
|
|
|
|
3. Double-check and edit the `CHANGELOG.md` and `README.md` 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 tags for your new release, publish the release on crates.io and push
|
|
the tags:
|
|
|
|
```bash
|
|
# Switch to main first.
|
|
git switch main
|
|
# Pull in the now-merged release commit(s).
|
|
git pull
|
|
# Create tags, publish the release on crates.io, and push the tags.
|
|
cargo xtask release publish --execute
|
|
```
|
|
|
|
For more information on cargo-release: https://github.com/crate-ci/cargo-release
|