fix(release-decide): squash-merge silently drops release cut (prep-commit subject mismatch) #331
Labels
No labels
bump
major
bump
minor
bump
patch
kind/bug
kind/chore
kind/docs
kind/feature
priority/critical
priority/high
priority/low
priority/medium
size/L
size/M
size/S
size/XL
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
frankenbit/release-toolkit#331
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Finding
scripts/release-decide.sh:321-323acknowledges: "Squash merges drop the prepare subject entirely and are NOT covered here."Prep commit at
scripts/release-prep.sh:651uses subjectchore(release): prepare vX.Y.Z. PR title at line 684 ischore(release): vX.Y.Z. Forgejo default squash-merge uses PR title → commit subject does NOT match expected pattern. Fallback API safeguards evaluate AFTER CUT_VERSION discovered from subject → they do NOT rescue squash merges.Blocking rationale
release-please handles both squash and merge commits + RECOMMENDS squash for clean history. Users following standard Git conventions will silently lose their release cut. Buried comment ≠ sufficient for v1.0.0.
Fix
Option A (preferred): fix detection to handle squash merges — normalize PR title vs prep commit subject.
Option B (fallback): required pre-merge check rejecting rolling PR squash-merges with operator guidance.
Anchor
External correctness cold-read (anonymous ChatGPT session, uploaded to operator 2026-07-03). Full review surfaced 10 findings across 5 blocking-v1.0.0 + 2 should-fix pre-v1.0.0 + 3 post-v1.0.0 backlog. This tracker addresses one of them.
BLOCKING v1.0.0.