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
6 changes: 5 additions & 1 deletion CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down
1 change: 1 addition & 0 deletions release-please-config.json
Original file line number Diff line number Diff line change
Expand Up @@ -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": {
".": {}
}
Expand Down
Loading