Skip to content

Commit 338c8bc

Browse files
committed
docs: document the release procedure, including the GitHub Release step
1 parent 9dde403 commit 338c8bc

1 file changed

Lines changed: 27 additions & 1 deletion

File tree

CONTRIBUTING.md

Lines changed: 27 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ Thanks for your interest in improving `cobs_codec_rs`!
44

55
## Getting started
66

7-
A stable Rust toolchain (>= 1.81, the crate's MSRV) with `rustfmt` and `clippy`:
7+
A stable Rust toolchain (>= 1.85, the crate's MSRV) with `rustfmt` and `clippy`:
88

99
```console
1010
git clone https://github.com/firechip/cobs_codec_rs.git
@@ -73,6 +73,32 @@ use `!` (`feat!:`) or a `BREAKING CHANGE:` footer.
7373
This is enforced locally by `tbdflow commit` and in CI by the **Commit lint**
7474
workflow.
7575

76+
## Releasing
77+
78+
Publishing to crates.io is automated from a signed `v*` tag, but the **GitHub
79+
Release is created by hand — don't skip it.** The full checklist:
80+
81+
1. Bump `version` in **`Cargo.toml`** *and* the `cobs_codec_rs` entry in
82+
**`Cargo.lock`** (a `cargo build` syncs it). Skipping the lockfile makes
83+
`cargo publish` fail on a dirty working tree.
84+
2. Add a `## X.Y.Z` section to [`CHANGELOG.md`](CHANGELOG.md).
85+
3. Commit (`chore: release X.Y.Z`) and tag it **signed**:
86+
`git tag -s vX.Y.Z -m "cobs_codec_rs X.Y.Z"`; push `main` and the tag.
87+
4. The tag triggers [`release.yml`](.github/workflows/release.yml), which
88+
publishes to **crates.io** via Trusted Publishing (OIDC) — no token secret.
89+
5. Create the **GitHub Release** and attach the exact published artifact:
90+
91+
```console
92+
curl -fsSL -H "User-Agent: you@example.com" \
93+
https://crates.io/api/v1/crates/cobs_codec_rs/X.Y.Z/download \
94+
-o cobs_codec_rs-X.Y.Z.crate
95+
gh release create vX.Y.Z --verify-tag --title "cobs_codec_rs X.Y.Z" \
96+
--notes-file notes.md cobs_codec_rs-X.Y.Z.crate
97+
```
98+
99+
The description should mirror the crates.io release: the `CHANGELOG.md`
100+
highlights, an install snippet, and the crates.io / docs.rs links.
101+
76102
## License
77103

78104
By contributing, you agree that your contributions are licensed under the

0 commit comments

Comments
 (0)