Files
matrix-rust-sdk/RELEASING.md
Ivan Enderlin 8abd9fb303 doc(releasing): Fixing markdown.
Remove unbreakable spaces, and add indentations.
2025-04-11 10:42:37 +02:00

1.5 KiB

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 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:

    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.

    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.

    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:

    # 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