Release-plz helps you release your Rust packages by automating:
- CHANGELOG generation (with git-cliff).
- Creation of GitHub/Gitea releases.
- Publishing to a cargo registry (crates.io
by default).
- Version bumps in Cargo.toml
.
Release-plz updates your packages with a release Pull Request based on: - Your git history, following Conventional commits. - API breaking changes (detected by cargo-semver-checks).
Release-plz maintains Release PRs, keeping them up-to-date as you merge additional commits. When you're ready to create a release, simply merge the release PR.
When you merge the Release PR (or when you edit the Cargo.toml
versions by yourself),
release-plz:
<package_name>-v<version>
(e.g. tokio-v1.8.1
).cargo publish
.Learn how to use release-plz in the mdbook docs.
There are two ways to run release-plz:
This search and this page show the public GitHub repositories using release-plz in CI.
Parts of the codebase are inspired by: - cargo-clone - cargo-edit - cargo-release - cargo-workspaces - git-cliff
Licensed under either of Apache License, Version 2.0 or MIT license at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.