release-utils-rs
This repo contains a Rust crate with utilities for automatically releasing Rust code.
The intended usage is something like this (but not necessarily exactly this):
- All code changes needed for a release are made by a developer in a
regular git commit. The commit includes bumping the version in
Cargo.toml, and any updates toCargo.lock, changelog files, etc. - The commit message is prefixed with
release:to mark the commit as a release trigger. - The commit is reviewed and merged through the normal pull request process.
- Once merged, an automatic job sees the specially-marked commit and
triggers any actions necessary to push the release. The building
blocks for this automated part are what
release-utils-rsprovides.
Comparison with other projects
This is primarily a library crate; the intention is that projects can incorporate it into an xtask-style package that includes a release command, triggered by a GitHub Action or some similar job runner.
Unlike cargo-release and release-plz, this crate does not modify any code in the repo. It does not bump versions, update changelogs, or make any other change to files in the repo. It only handles releasing to hosts such as crates.io and github.
License
Licensed under either of Apache License, Version 2.0 or MIT license at your option.
Contributing
See the code of conduct and contributing.md.
Disclaimer
This project is not an official Google project. It is not supported by Google and Google specifically disclaims all warranties as to its quality, merchantability, or fitness for a particular purpose.