mirror of
https://github.com/embassy-rs/embassy.git
synced 2025-09-26 20:00:27 +00:00
chore: add release docs
This commit is contained in:
parent
7e01c9bb4d
commit
006f4cdb53
59
RELEASE.md
Normal file
59
RELEASE.md
Normal file
@ -0,0 +1,59 @@
|
|||||||
|
# RELEASE.md
|
||||||
|
|
||||||
|
This document outlines the process for releasing Embassy crates using `cargo-release` and the `release/bump-dependency.sh` script.
|
||||||
|
|
||||||
|
When releasing a crate, keep in mind that you may need to recursively release dependencies as well.
|
||||||
|
|
||||||
|
## Prerequisites
|
||||||
|
|
||||||
|
- Install [`cargo-release`](https://github.com/crate-ci/cargo-release):
|
||||||
|
|
||||||
|
```sh
|
||||||
|
cargo binstall cargo-release
|
||||||
|
```
|
||||||
|
|
||||||
|
## Crate release
|
||||||
|
|
||||||
|
Check if there are changes to the public API since the last release. If there is a breaking change, follow
|
||||||
|
the process for creating a minor release. Otherewise, follow the process for creating a new patch release.
|
||||||
|
|
||||||
|
Keep in mind that some crates may need the --features and --target flags passed to cargo release. For more information on that,
|
||||||
|
look at the `Cargo.toml` files.
|
||||||
|
|
||||||
|
### Patch release (no breaking public API changes)
|
||||||
|
|
||||||
|
```
|
||||||
|
cd embassy-nrf/
|
||||||
|
cargo release patch --features time,defmt,unstable-pac,gpiote,time-driver-rtc1,nrf52840 --target thumbv7em-none-eabi
|
||||||
|
|
||||||
|
# If dry-run is OK (no missing dependencies on crates.io)
|
||||||
|
cargo release patch --execute --features time,defmt,unstable-pac,gpiote,time-driver-rtc1,nrf52840 --target thumbv7em-none-eabi
|
||||||
|
```
|
||||||
|
|
||||||
|
### Minor release
|
||||||
|
|
||||||
|
```
|
||||||
|
# Bump versions in crate files
|
||||||
|
./release/bump-dependency.sh embassy-nrf 0.4.0
|
||||||
|
|
||||||
|
# Commit version bump
|
||||||
|
git commit -am 'chore: update to `embassy-nrf` v0.4.0'
|
||||||
|
|
||||||
|
# Release crate
|
||||||
|
cd embassy-nrf/
|
||||||
|
cargo release minor --features time,defmt,unstable-pac,gpiote,time-driver-rtc1,nrf52840 --target thumbv7em-none-eabi
|
||||||
|
|
||||||
|
# If dry-run is OK (no missing dependencies on crates.io)
|
||||||
|
cargo release minor --execute --features time,defmt,unstable-pac,gpiote,time-driver-rtc1,nrf52840 --target thumbv7em-none-eabi
|
||||||
|
```
|
||||||
|
|
||||||
|
## Push tags
|
||||||
|
|
||||||
|
Push the git tags that `cargo release` created earlier:
|
||||||
|
|
||||||
|
```
|
||||||
|
git push --tags
|
||||||
|
```
|
||||||
|
## Reference
|
||||||
|
|
||||||
|
* [PR introducing release automation](https://github.com/embassy-rs/embassy/pull/4289)
|
Loading…
x
Reference in New Issue
Block a user