fix(release): drop [skip ci] so the required check can run - #578
Merged
Conversation
The bump commit carried `[skip ci]`, which suppresses EVERY workflow on the pull request it opens - including merge-hygiene.yml. That workflow's job, "Conflict markers and PHP syntax", is the single required status check on `development` in all 17 fleet repos. A required check that never runs is never satisfied. The release PR sat at MERGEABLE/BLOCKED indefinitely: auto-merge enabled, every check that did run green, and still unmergeable. Only CodeQL reported, because default-setup CodeQL ignores the marker. That is the mechanism behind #562. The loop opened one PR per run and nothing ever closed them. Measured across the fleet on 2026-08-26, 73 of the 74 green open PRs were release bumps in exactly this state. The original reasoning - a version-string change does not warrant a second full pipeline - was sound about cost and wrong about consequence. The cost objection is also weaker than it looked: these are public repositories, where Actions minutes bill at $0. The suite now runs on the release PR, verifying the tree actually being tagged, and the required check appears so auto-merge completes.
This was referenced Aug 26, 2026
This was referenced Aug 26, 2026
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.
Closes the second half of #562.
The mechanism
The release job commits the version bump with
[skip ci]. That marker suppresses every workflow on the pull request it then opens — includingmerge-hygiene.yml, whose job "Conflict markers and PHP syntax" is the single required status check ondevelopmentin all 17 fleet repos:A required check that never runs is never satisfied. So the release PR parks at
MERGEABLE/BLOCKEDforever — auto-merge enabled, every check that did run green, and still unmergeable:Only CodeQL reported at all — default-setup CodeQL ignores the marker. That's why these look green but never land.
This is the mechanism behind #562: the loop opens one PR per run and nothing ever closes them. Measured fleet-wide on 2026-08-26, 73 of the 74 green open PRs were release bumps in exactly this state.
The auto-merge guard added in #566 was working correctly — every release PR created today carries
auto=YES. It simply had nothing to fire on.The change
One line, plus the comments that justified it:
The original reasoning — a one-number change in one XML file does not warrant a second full pipeline — was sound about cost and wrong about consequence. The cost objection is also weaker than it looked: these are public repositories, where Actions minutes bill at $0.
The suite now runs on the release PR, so it verifies the tree actually being tagged, the required check appears, and auto-merge completes on its own.