Releasing a new version of a Rust crate is tedious and error-prone, just like most IT manual tasks. For every package you want to release, you need to:
- Check for breaking changes and increase the `Cargo.toml` version accordingly.
- Update the changelog.
- Publish to crates.io.
- Create and push the git tag.
Meet release-plz, a Rust open-source project that automates these tasks.
It allows maintainers to release Rust packages from CI, saving valuable time and removing the fear of making typos and other careless mistakes typical of manual releases from the terminal.
Release-plz makes releasing Rust packages as easy as clicking the pull request "merge" button.
> This is a great project to contribute to, it's so incredibly valuable for other maintainers like myself to be able to automate project releases and provide a better experience for our contributors. I'm already using it in octocrab and plan to adopt it in all my projects eventually and going forward.
In this talk, I will show:
- How release-plz works.
- How you can integrate release-plz in your project.
- Git-cliff: the Rust library that powers release-plz changelog generation.
- Cargo-semver-checks: the Rust library that powers release-plz API breaking changes detection.
- The main challenges I faced while building release-plz.