diff --git a/CLAUDE.md b/CLAUDE.md index 73605b2..8bdb232 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -46,7 +46,11 @@ All repos live under the `wavekat` GitHub org. SSH access uses the `github.com-w This repo uses **release-please**. Since GitHub squash-merges use the PR title as the commit message, the PR title must have a conventional prefix or release-please will silently ignore the commit. - `feat:` / `fix:` → patch bump (pre-1.0, per `bump-patch-for-minor-pre-major`) -- `feat!:` / `fix!:` → minor bump (pre-1.0) +- `feat!:` / `fix!:` → minor bump (pre-1.0, per `bump-minor-pre-major`) + +**A `!` in the PR title is the whole decision** — there is no `BREAKING CHANGE:` footer to reconsider later, and nothing else in the PR moderates it. Reach for `!` only for a change that genuinely breaks something; a copy tweak, a removed badge or a restyled control is a `feat:`. This is not theoretical: #181 removed a download-row badge, was titled `feat!:`, and — with `bump-minor-pre-major` then unset — release-please proposed **1.0.0**, which had to be walked back by hand in #182. + +For the same reason, **don't reach for `Release-As: x.y.z` to pin a version.** It is read from a commit message on `main`, and the squash replaces every commit message on the branch with one composed from the PR — so a footer written in a branch commit never arrives. What the squash keeps beyond the title varies with how the PR is merged (#181 landed as its title alone, body dropped; #182 kept its body), which makes it exactly the wrong place for a version override to live. Pin the version by editing the release PR instead — its title, its body (release-please parses the released version out of the body on merge, so the tag follows it), `CHANGELOG.md`, `.release-please-manifest.json`, `package.json` and `package-lock.json`. All six, or the tag and the manifest disagree. ## Tech decisions diff --git a/release-please-config.json b/release-please-config.json index f30bd5f..e900e77 100644 --- a/release-please-config.json +++ b/release-please-config.json @@ -2,6 +2,7 @@ "$schema": "https://raw.githubusercontent.com/googleapis/release-please/main/schemas/config.json", "release-type": "node", "bump-patch-for-minor-pre-major": true, + "bump-minor-pre-major": true, "packages": { ".": {} }