ci: version declarations agree; release-drift waits for the release on push - #24
Conversation
…on agrees, and release-drift waits for the release on push The README badge said 3.8.2 while SKILL.md, package.json and the README's own "Current version" line said 3.9.5: nothing compared them. ci.yml gains a "Version declarations agree" job - SKILL.md version, README badge, package.json, and any "Current version: **x.y.z**" line must match - on pull requests too, so a bump that forgets one is caught before merge. release-drift.yml runs on push to main and starts the moment the merge lands, while the release is cut AFTER the merge. Failing on the first lookup turned every ordinary release into a red "SKILL.md version has a release" check on main's head that no later run could replace - here, v3.9.5 was cut 52 min after its merge and main's head has carried that red check since (hostinger-mcp v1.2.1: 19 s after, same result). On push the check now waits for the release, up to 20 x 30 s; a bump still unreleased after ten minutes is the drift the check exists for and fails exactly as before. Schedule and dispatch runs do not wait. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
|
@codex review |
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: db5a401d3f
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| # dispatch runs do not wait - nothing is in flight for them. | ||
| if [ "$GITHUB_EVENT_NAME" = "push" ]; then | ||
| for attempt in $(seq 1 20); do | ||
| [ "$STATE" = missing ] || break |
There was a problem hiding this comment.
Keep polling while the matching release is a draft
If the release flow creates a draft before publishing it, a polling lookup sets STATE=true, this condition exits the loop, and the subsequent true case fails the push check immediately—even when that draft would be published within the advertised ten-minute window. This means the new wait only handles a 404 and still produces a false red check for draft-then-publish release flows; keep polling both missing and true, then report a remaining draft after the timeout.
Useful? React with 👍 / 👎.
…the whole semver (Codex round 1) release-drift.yml: the push-time wait broke out of its loop on a DRAFT and failed at once, so a flow that creates the release as a draft and publishes it after its ClawHub publish succeeded (cloudways-mcp's release.yml), or a draft cut by hand before the merge and published moments after, still got the red check the wait was added to prevent. On push the loop now waits through missing AND draft; a draft still standing after the window fails below, as before. ci.yml: the badge regex took only the x.y.z core, and shields.io writes a dash inside a badge value as "--" (version-1.2.0--rc.1-blue renders "1.2.0-rc.1", measured), so a consistent prerelease bump would have been rejected. The badge is read whole and the "--" folded back; the "Current version" line likewise. Verified on a synthetic tree at 1.2.0-rc.1 (accepted) and with the badge left at 1.1.0 (rejected), and on this tree. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
|
Both taken, in cad63bd. Draft. Right — the loop broke on Whole semver in the badge (raised on meta-ads-mcp, applied to every repo that got this job). Measured: shields.io writes a dash inside the value as |
|
@codex review |
|
Codex Review: Didn't find any major issues. 🎉 Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
The suffix pattern accepted only segments beginning with the shields "--" (a prerelease), so a consistent bump to 1.2.0+build.7 - build metadata with no prerelease - read as 1.2.0 from the badge and was rejected. After the x.y.z core the regex now takes every character a prerelease or build suffix can carry, "--" included, and stops at the first single dash (the colour separator); "--" is folded back afterwards. Measured on shields.io: version-1.2.0+build.7-blue renders "1.2.0+build.7" and version-1.2.0+build--2-blue "1.2.0+build-2". Verified on synthetic trees at 1.2.0-rc.1, 1.2.0+build.7, 1.2.0-rc.1+build.7, 1.2.0+build-2 and 1.2.0 (accepted), a stale badge and a badge missing the suffix (rejected), and on this tree. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
|
Taken, in 69dad48 — raised on hostinger-mcp and meta-ads-mcp, applied to every repo carrying this job so the four stay identical. Measured on shields.io first: |
|
@codex review |
|
Codex Review: Didn't find any major issues. Can't wait for the next one! Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
Why
README badge was stale. It said 3.8.2 while
SKILL.md,package.jsonand the README's own "Current version" line said 3.9.5 — nothing compared them. Fixed, andci.ymlgains a Version declarations agree job:SKILL.mdversion, README badge,package.json, and anyCurrent version: **x.y.z**line must match — on pull requests too, so a bump that forgets one is caught before merge.Release drift went red on every release.
release-drift.ymlruns on push to main and starts the moment the merge lands, while the release is cut after the merge. Failing on the first lookup turned every ordinary release into a red "SKILL.md version has a release" check on main's head that no later run could replace — here v3.9.5 was cut 52 min after its merge, and main's head (bd93a1d) has shown that failed check since, beside the later successes. On push the check now waits for the release, up to 20 × 30 s; a bump still unreleased after ten minutes is the drift the check exists for and fails exactly as before. Schedule and dispatch runs do not wait.Verified
SKILL.md, README badge, package.json agree on 3.9.5.No skill payload change, no version bump, no release.
🤖 Generated with Claude Code