docs: switch merge policy to squash-only for reliable release-plz - #480
Merged
Conversation
Merge commits put a PR's feature commit on the merge's second parent. When release-plz cuts a release between two such merges, a feature branched before that release and merged after lands beside the release commit, and release-plz's version walk over `v<prev>..HEAD` does not traverse into it — `git log --first-parent` of that range is empty. That stranded #478's `feat(routing)`: release-plz reported "no commit matches the release_commits regex" and never cut v0.36.84, with no way to re-run short of a new push to `main`. Repo settings now disable merge commits and squash with the PR title as the commit subject, so every PR is one conventional commit on a linear `main` that release-plz reads reliably. Also documents the new manual `workflow_dispatch` trigger (#479). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Destynova2
enabled auto-merge (squash)
July 26, 2026 08:38
Merged
Destynova2
added a commit
that referenced
this pull request
Jul 27, 2026
## 🤖 New release * `grob`: 0.36.83 -> 0.36.84 <details><summary><i><b>Changelog</b></i></summary><p> <blockquote> ## [0.36.84](v0.36.83...v0.36.84) - 2026-07-27 ### Fixed - *(cli)* make grob stop recognise its daemon on macOS ([#481](#481)) ### Other - switch merge policy to squash-only for reliable release-plz ([#480](#480)) - *(release-plz)* allow manual workflow_dispatch </blockquote> </p></details> --- This PR was generated with [release-plz](https://github.com/release-plz/release-plz/).
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.
The CI/CD bug this fixes
feat(routing)(#478) merged cleanly but never produced a release. release-plzkept reporting
grob: no commit matches the release_commits regexand there wasno way to cut v0.36.84.
Root cause
Every PR was merged with a merge commit (
gh pr merge --merge), so thefeature commit sits on the merge's second parent:
When release-plz cut v0.36.83 between the routing branch's creation and its
merge,
de4b690ended up beside the release commit rather than after it. Itsversion walk over
v0.36.83..HEADdoesn't traverse into that second parent —git log --first-parent v0.36.83..mainis empty — so thefeatcommit isinvisible to the bump calc. It works for most PRs only because they're released
immediately after merging, before the next merge buries them.
Fix
Squash-merge only. Repo settings now:
allow_merge_commit = falsesquash_merge_commit_title = PR_TITLEEvery PR becomes one conventional commit on a linear
main, which release-plzreads reliably — the second-parent hiding place no longer exists. Applied to the
repo already; this PR aligns CLAUDE.md (
--auto --merge→--auto --squash,plus a note on why the PR title must be a conventional commit) and documents the
manual
gh workflow run release-plz.ymltrigger added in #479.For the currently-stranded routing fix
It's on
mainand ships with the next release cut for any releasable commit(now reliably, thanks to squash). Meanwhile it has a trivial workaround — name
the config entry
gpt-5-5instead ofgpt-5.5.Note
This PR is the first squash-only merge — its single commit validates the new
policy end to end.
🤖 Generated with Claude Code