Repository navigation
ci(release): set --latest explicitly and check the Latest badge for drift - #23
Merged
Merged
Conversation
…rift 0.13.0 was released late, the day after 0.16.0, and GitHub made it "Latest", so `mise use github:chussenot/pact@latest` has installed 0.13.0 ever since. release.yml left --latest to GitHub, which favours the newest-published release over the highest version; a late release of an old tag is exactly what release-drift.yml prescribes, so that is the normal path, not an edge case. - release.yml: pass --latest=true only when no published release outranks the tag, --latest=false otherwise. - release-drift.yml: also fail when Latest is not the highest published version, and end the missing-tag remedy with `gh release edit <highest> --latest`, because a re-pushed tag runs release.yml as it was at that tag and cannot benefit from the fix above. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WDW95M96SdZCAn2CAyr8ub
The `commits` job installs cog through cocogitto-action v4.2.0, which pins cog 7.0.0. cog 7 renamed the monorepo table and rejects `packages` as an unknown field, so `cog check` fails on config parsing before it reads a single commit, on every PR regardless of its contents. The table was empty, so removing it changes nothing for cog 6 either. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WDW95M96SdZCAn2CAyr8ub (cherry picked from commit 7e404c1)
Owner
Author
|
The Generated by Claude Code |
chussenot
marked this pull request as ready for review
October 18, 2026 06:44
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.
Why
Release drifthas failed every day since late August (runs #49–#53): tags 0.14.0, 0.15.0, 0.15.1 are on master but have no GitHub release. That part is a real finding, and the job is right to report it.Looking into it turned up a worse problem that nothing reports: GitHub's "Latest" release is 0.13.0, not 0.16.0. 0.13.0 was recovered by re-pushing its tag, as the drift job says to do, and was published on Aug 27, the day after 0.16.0.
release.ymldidn't pass--latest, so GitHub gave the badge to the newest-published release. Since then,mise use -g github:chussenot/pact@latest(the documented install path) has installed 0.13.0. Following the job's current advice for the remaining three tags would move the badge again, this time to 0.15.1.Changes
release.yml: always passes--latest. It istrueonly when no published release has a higher version than the tag, andfalseotherwise.release-drift.yml:gh release edit <highest> --latest. A re-pushed tag runsrelease.ymlas it was at that tag, so the fix above does nothing for 0.14.0–0.15.1.Validation
I extracted the
run:scripts from both workflows and ran them against a stubghthat returns the repo's real release list:release.ymlpublish step: a late 0.14.0 gets--latest=false; a new 0.17.0 gets--latest=true; the first release in an empty repo gets--latest=true.$missingword-split, the same idiom the existing script uses.Still needed (manual, outside this PR)
gh release edit 0.16.0 --latest: fixes@latestimmediately.git push origin :refs/tags/0.14.0 && git push origin 0.14.0(same for 0.15.0 and 0.15.1)gh release edit 0.16.0 --latestagain, because those tags run the oldrelease.yml.Generated by Claude Code