fix(ci): accept release/vX.Y maintenance branches in release-notes validation - #3924
Conversation
|
Claude finished @insipx's task —— View job Code Review — July 29, 2026 17:57 UTCTodo List:
SummaryThe changes are correct and well-documented. The regex properly handles both branch formats, and the version extraction logic is sound. Detailed AnalysisRegex Pattern ( ^release/v?[0-9]+\.[0-9]+(\.[0-9]+)?(-[a-zA-Z0-9.]+)?$✅ Correctly accepts:
✅ Correctly rejects:
Version Extraction (lines 83-84) VERSION="${BRANCH#release/}"
VERSION="${VERSION#v}"✅ The Minor Observations
ConclusionNo issues found. The fix is minimal, targeted, and properly addresses the stated problem without introducing new risks. |
ApprovabilityVerdict: Approved 1e4d82f Minor CI workflow change that relaxes branch name validation to accept maintenance branch formats. The author owns this workflow file. No production runtime impact - only affects which branch names pass release notes validation. You can customize Macroscope's approvability policy. Learn more. |
Found by the adversarial review of the 1.11.0 postmortem: renaming the release branch to
release/v1.11(matching therelease/v1.9/release/v1.10maintenance convention) broke the release-notes workflow for it — the validate step required exactlyrelease/X.Y.Z, so any future drafting run on this branch (e.g. for a 1.11.1 patch) would error out immediately.Changes in
release-notes.yml:release/X.Y.Z[-suffix]and maintenance linesrelease/vX.Y[.Z]. Still rejectsmain,release/foo,release/v1(tested all shapes).v. The extracted value is label-only downstream (commit messages, PR titles, theai-release-notes/*suggestion branch name), so a partial1.11is fine — noted in a comment.Audit of other parsers:
release.ymlonly checks therelease/prefix (already fine — it's why the final release ran from the renamed branch), andcreate-release-branchconstructsrelease/${version}without parsing. This regex was the only strict one.🤖 Generated with Claude Code
Note
Fix release-notes CI to accept
release/vX.Ymaintenance branches in branch validationrelease/X.Y.Zandrelease/vX.Y(with optional patch) formats.vfrom the extracted version after removing therelease/prefix, so the emittedversionoutput is always numeric (e.g.1.11notv1.11).Macroscope summarized 1e4d82f.