aboutsummaryrefslogtreecommitdiff
path: root/RELEASE.md
diff options
context:
space:
mode:
Diffstat (limited to 'RELEASE.md')
-rw-r--r--RELEASE.md59
1 files changed, 59 insertions, 0 deletions
diff --git a/RELEASE.md b/RELEASE.md
new file mode 100644
index 000000000..711a93ae4
--- /dev/null
+++ b/RELEASE.md
@@ -0,0 +1,59 @@
1# RELEASE.md
2
3This document outlines the process for releasing Embassy crates using `cargo-release` and the `release/bump-dependency.sh` script.
4
5When releasing a crate, keep in mind that you may need to recursively release dependencies as well.
6
7## Prerequisites
8
9- Install [`cargo-release`](https://github.com/crate-ci/cargo-release):
10
11 ```sh
12 cargo binstall cargo-release
13```
14
15## Crate release
16
17Check if there are changes to the public API since the last release. If there is a breaking change, follow
18the process for creating a minor release. Otherewise, follow the process for creating a new patch release.
19
20Keep in mind that some crates may need the --features and --target flags passed to cargo release. For more information on that,
21look at the `Cargo.toml` files.
22
23### Patch release (no breaking public API changes)
24
25```
26cd embassy-nrf/
27cargo release patch --features time,defmt,unstable-pac,gpiote,time-driver-rtc1,nrf52840 --target thumbv7em-none-eabi
28
29# If dry-run is OK (no missing dependencies on crates.io)
30cargo release patch --execute --features time,defmt,unstable-pac,gpiote,time-driver-rtc1,nrf52840 --target thumbv7em-none-eabi
31```
32
33### Minor release
34
35```
36# Bump versions in crate files
37./release/bump-dependency.sh embassy-nrf 0.4.0
38
39# Commit version bump
40git commit -am 'chore: update to `embassy-nrf` v0.4.0'
41
42# Release crate
43cd embassy-nrf/
44cargo release minor --features time,defmt,unstable-pac,gpiote,time-driver-rtc1,nrf52840 --target thumbv7em-none-eabi
45
46# If dry-run is OK (no missing dependencies on crates.io)
47cargo release minor --execute --features time,defmt,unstable-pac,gpiote,time-driver-rtc1,nrf52840 --target thumbv7em-none-eabi
48```
49
50## Push tags
51
52Push the git tags that `cargo release` created earlier:
53
54```
55git push --tags
56```
57## Reference
58
59* [PR introducing release automation](https://github.com/embassy-rs/embassy/pull/4289)