Skip to content

chore: bump the minor, not the major, for a pre-1.0 breaking change - #184

Merged
wavekat-eason merged 3 commits into
mainfrom
claude/remove-early-items-8c19yh
Sep 7, 2026
Merged

chore: bump the minor, not the major, for a pre-1.0 breaking change#184
wavekat-eason merged 3 commits into
mainfrom
claude/remove-early-items-8c19yh

Conversation

@wavekat-eason

@wavekat-eason wavekat-eason commented Sep 7, 2026

Copy link
Copy Markdown
Contributor

Follow-up to #182, which shipped v0.0.64. Safe to merge now — the release it would have disturbed is already out.

The gap

CLAUDE.md has always said:

  • feat!: / fix!: → minor bump (pre-1.0)

release-please-config.json never set bump-minor-pre-major, so that was not what happened. Without it, release-please treats a pre-1.0 breaking change as the promotion to 1.0.0. #181 was the first commit to test the gap — it removed a download-row badge under a feat!: title and produced a 1.0.0 release proposal, which had to be walked back by hand across six places in #182.

One line closes it, and the documented rule becomes the actual one.

Two things now written down

  • A ! in the PR title is the whole decision. The squash leaves no branch commit body to carry (or withhold) a BREAKING CHANGE: footer, so nothing downstream moderates it. Reach for ! only when something genuinely breaks; a copy tweak, a removed badge or a restyled control is a plain feat:.
  • Don't pin a version with Release-As:. It is read from a commit message on main, and the squash replaces every branch commit message with one composed from the PR — so a footer written in a branch commit never arrives. What survives beyond the title varies with how the PR is merged (feat!: drop the Early tag from the Windows download rows #181 landed as its title alone; chore(main): release wavekat-com 0.0.64 #182 kept its body), which is exactly what makes it the wrong home for a version override. Pin by editing the release PR instead: title, 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, package-lock.json.

Notes

  • Titled chore: deliberately, so it does not itself land in the changelog or move the version.
  • The second commit walks back an over-broad claim in the first: I initially wrote that the squash always drops the body, then watched chore(main): release wavekat-com 0.0.64 #182's merge keep its own. The doc says what is actually true.
  • main is merged in, so this is current with v0.0.64.

🤖 Generated with Claude Code

https://claude.ai/code/session_01Gtr5DLgddkeyaC3cHUQqgb

CLAUDE.md has always said `feat!:` bumps the minor before 1.0, but the
config never set `bump-minor-pre-major`, so release-please read a pre-1.0
breaking change as the 1.0.0 promotion instead. #181 was the first commit
to test that gap and it proposed 1.0.0 off a removed badge, which had to
be walked back by hand in #182.

Sets the option so the documented rule is the actual one, and writes down
the two squash-merge consequences that made the mistake unrecoverable
in-band: a `!` in a PR title is the whole decision (there is no body left
to carry a `BREAKING CHANGE:` footer), and `Release-As:` cannot work here
for exactly the same reason, so pinning a version means editing the
release PR in six places.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Gtr5DLgddkeyaC3cHUQqgb
@github-actions

github-actions Bot commented Sep 7, 2026

Copy link
Copy Markdown
Contributor

The first draft claimed the squash always drops the body. #181 did land
as its title alone, but #182 kept its body — so the honest rule is that
what survives beyond the title varies with how the PR is merged, which
is itself the reason a version override must not live there.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Gtr5DLgddkeyaC3cHUQqgb
@wavekat-eason
wavekat-eason marked this pull request as ready for review September 7, 2026 15:35
@wavekat-eason
wavekat-eason merged commit 9d1750e into main Sep 7, 2026
2 checks passed
@wavekat-eason
wavekat-eason deleted the claude/remove-early-items-8c19yh branch September 7, 2026 15:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants