Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,8 @@ This file was started retroactively on 2026-07-03 at v0.4.0; entries for

## [Unreleased]

## [0.17.0] - 2026-08-13

### Breaking

- **`ElectronicsData.product_category` is a closed `DeviceType`, not a
Expand Down
26 changes: 21 additions & 5 deletions docs/governance/RELEASE.md
Original file line number Diff line number Diff line change
Expand Up @@ -81,18 +81,34 @@ release, instead of cargo-release's default of one tag per publishable crate.

## Release Command

**Check `Cargo.toml` first.** In this project the version bump usually rides in
on a feature PR rather than being made at release time, so by the time you get
here `[workspace.package] version` is often *already* the version you intend to
ship. Passing a bump level in that state releases the version **after** the one
you meant:

```sh
# Dry run first — always
cargo release patch --workspace --exclude dpp-benches --dry-run
# The version in Cargo.toml is already the one you are shipping — the
# usual case here. No level argument: publish and tag what is there.
cargo release --workspace --exclude dpp-benches --dry-run
cargo release --workspace --exclude dpp-benches --execute
```

# If the dry run is clean
cargo release patch --workspace --exclude dpp-benches --execute
```sh
# The version in Cargo.toml is still the last *released* one, and you want
# cargo-release to bump it for you.
cargo release minor --workspace --exclude dpp-benches --dry-run
cargo release minor --workspace --exclude dpp-benches --execute
```

Replace `patch` with `minor` or `major` as appropriate per the
Replace `minor` with `patch` or `major` as appropriate per the
[versioning policy](VERSIONING.md). `--execute` also pushes the commit and tag
to `origin` unless `--no-push` is given.

Read the dry run's output rather than skimming it: it names the exact version
each crate will be published at. That line is the check on which of the two
cases above you are actually in.

## Post-Release

1. Verify the crates appear on [crates.io](https://crates.io/) and that
Expand Down