chore: derive release bump only from the title bang marker#268
Conversation
The release workflow scanned the PR title and body for "BREAKING CHANGE(S)" and forced a major bump on any match. Prose that merely mentioned the phrase, including a sentence stating there was no breaking change, tripped it. This is the same footgun that mis-cut a major in getstream-ruby. Treat the `\!` marker in the conventional-commits title (e.g. `feat\!:`) as the sole breaking-change signal and stop reading the PR body entirely. Drop the now-unused --body / --body-file options and the body plumbing in release.yml.
📝 WalkthroughWalkthroughThe PR strips PR-body-based breaking-change detection from the version bump pipeline. ChangesRemove PR body from version bump detection
Estimated code review effort🎯 1 (Trivial) | ⏱️ ~5 minutes Possibly related PRs
Poem
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Problem
scripts/release/bump_version.py(determine_bump_type) forced a major bump whenever the substring "BREAKING CHANGE(S)" appeared anywhere in the PR title or body (/BREAKING[ -]CHANGES?/iover free text). Any PR that merely mentions the phrase, including a sentence saying there is none, trips it. This is the same footgun that mis-cut a major release in getstream-ruby.Fix
Trust only the conventional-commits
!marker in the title (e.g.feat!:) as the breaking-change signal. Stop reading the PR body entirely, and remove the now-dead--body/--body-fileoptions plus the body plumbing inrelease.yml.Bump rules after this change (title-only):
feat!:/fix!:/type(scope)!:-> majorfeat:-> minorfix:/bug:-> patchRelease note
This PR is intentionally titled
feat:so the auto-release cuts a minor (latest tagv3.4.0->v3.5.0), which matches theversion = "3.5.0"already set inpyproject.tomland publishes the features merged since v3.4.0. Afix:title would have computed3.4.1and regressedpyproject.Verification
Loaded the real module and tested
determine_bump_typedirectly:feat:-> minor,feat!:/feat(mod)!:/fix!:-> major,fix:/bug:-> patch,chore:-> nonefeat: mentions BREAKING CHANGE in prose-> minor (the regression),BREAKING CHANGES: prose title-> noneruff checkandruff format --check: clean.Summary by CodeRabbit