fix(release): chore/docs-only ranges yield none (revert #38 patch floor)#42
Merged
Conversation
_parse_conventional_commits classified a chore-only commit range as a patch bump instead of none, so chore/docs/refactor-only merges cut a release. The "patch floor" added in #38 (2b693ab) flipped any none bump to patch to keep "merge = release", but that contradicts conventional- commit rules, the documented release process, and the test at release.bats:66 (present since the parser's first commit 81558d2) which was never updated and started failing. Remove the patch floor: only feat/fix/breaking cut a release. A chore/docs-only range returns none. To force a release for an otherwise non-releasable range, dispatch release.yml with bump_override (the escape hatch #38 was working around). Also fix the stale test 14 (bump_all_versions): #38 changed the command badge format from [devflow vX.Y.Z] to bare [X.Y.Z], but the fixture (description: "[devflow v0.1.0]...") and its grep ([devflow v0.2.0]) were not updated, so the sed never matched and the badge assertion failed under bats. Aligned the fixture + grep to the bare [X.Y.Z] format used by the real devflow-plugin/commands/*.md files. bats tests/unit/release.bats: 16/16 green. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Fixes two failing tests in
tests/unit/release.batson the v0.3.0 baseline.Test 5 —
_parse_conventional_commits(the real bug)A chore-only commit range was classified as a patch bump instead of none, so chore/docs/refactor-only merges cut a release. Root cause: the "patch floor" added in #38 (
2b693ab) flipped anynonebump topatchto keep "merge = release". That contradicts conventional-commit rules, the documented release process, and the test atrelease.bats:66(present since the parser's first commit81558d2, never updated → started failing).Fix: removed the patch floor. Only
feat/fix/breaking cut a release now; a chore/docs-only range returnsnone.Test 14 —
bump_all_versions(stale fixture, same #38 cause)Not a harness quirk. #38 changed the command badge format from
[devflow vX.Y.Z]to bare[X.Y.Z], but test 14's fixture (description: "[devflow v0.1.0]...") and grep ([devflow v0.2.0]) were left stale, so the sed never matched and the badge assertion failed under bats. Aligned the fixture + grep to the bare[X.Y.Z]format the realdevflow-plugin/commands/*.mdfiles use.Behavior change
Removing the patch floor reverts #38's "merge = release": a docs/chore-only merge to
mainno longer auto-releases (matches conventional rules + the documented process). To force a release for such a range, dispatchrelease.ymlwithbump_override— the escape hatch #38 was working around.Verification
Follow-up (not in this PR)
CLAUDE.mdstill documents the old[devflow v0.1.0]badge format — stale from #38. Tracked separately to keep this diff scoped to the test failures.🤖 Generated with Claude Code