From 006f4cdb530b63156e6dd3bdfb094f2065f4c7bb Mon Sep 17 00:00:00 2001 From: Ulf Lilleengen Date: Mon, 14 Jul 2025 12:00:17 +0200 Subject: [PATCH] chore: add release docs --- RELEASE.md | 59 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 RELEASE.md diff --git a/RELEASE.md b/RELEASE.md new file mode 100644 index 000000000..711a93ae4 --- /dev/null +++ b/RELEASE.md @@ -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)