- Notifications
You must be signed in to change notification settings - Fork108
Publish Rust crates from CI with a Release PR.
License
Apache-2.0, MIT licenses found
Licenses found
release-plz/release-plz
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Release-plz helps you release your Rust packages by automating:
- CHANGELOG generation (withgit-cliff).
- Creation of GitHub/Gitea/GitLab 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, followingConventional commits.
- API breaking changes (detected bycargo-semver-checks).
Release-plz maintains Release PRs, keeping them up-to-date as you merge additional commits. When you'reready to create a release, simply merge the release PR.
When you merge the Release PR (or when you edit theCargo.toml
versions by yourself),release-plz:
- Creates a git tag named
<package_name>-v<version>
(e.g.tokio-v1.8.1
). - Publishes the package to the cargo registry by running
cargo publish
. - Publishes a GitHub/Gitea/GitLab release based on the git tag.
Learn how to use release-plz in thedocs.
There are two ways to run release-plz:
- GitHub Action: Run Release-plz from CI. The action both updates and releases your packages.
- CLI: Run release-plz from your terminal or other CI systems (Gitea and GitLab supported).
Here you can find the public repositories using the release-plz GitHub action in CI:
- GitHub search1and2
- Dependency graph
In RustLab 23, I showed how release-plz simplifies releasing Rust packages, why I created it, and what lessons I learned:
- release-please: release-plz is inspired by release-please,but instead of determining the next versions based on git tags, release-plz compares local packages withthe ones published in the cargo registry.Plus, release-plz doesn't need any configuration and is optimized for Rust projects.
- cargo-smart-release:Fearlessly release workspace crates and with beautiful semi-handcrafted changelogs.
Parts of the codebase are inspired by:
Licensed under either ofApache License, Version 2.0orMIT license at your option.
Unless you explicitly state otherwise, any contribution intentionally submittedfor inclusion in the work by you, as defined in the Apache-2.0 license, shall bedual licensed as above, without any additional terms or conditions.
About
Publish Rust crates from CI with a Release PR.