Pin CI to a known-good Mojo nightly; check drift weekly - #5
Merged
Conversation
Both workflows installed `mojo` from the nightly index unpinned, so every run resolved whatever nightly was current. That is why this repo went green on 7/29 and red on 7/31 with no commits in between -- a frozen library's CI decayed on its own, and the breakage surfaced on an unrelated docs PR. CI now installs exactly the nightly the repo is known to pass on. Upstream churn can no longer turn a green repo red without a commit. Pinning alone would trade one problem for a worse one: silence. So test.yml also runs weekly against the LATEST nightly. That run is advisory -- it fires on main, so it never gates a PR -- and on failure it opens (or comments on) a drift issue, because a red X on the Actions tab of a repo nobody is watching is not a signal. The weekly check reuses test.yml rather than living in its own file. A separate workflow would have to duplicate this repo's bespoke test steps and would drift out of sync with them. docs.yaml is pinned but not scheduled -- it deploys Pages, and a weekly redeploy is not wanted. `mojo doc` compiles the sources, so the test job catches the same stdlib breakage anyway. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
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.
Both workflows installed
mojofrom the nightly index with--prerelease allowand no version pin, so every run resolved whatever nightly was current. That's why six repos in this suite went green on 7/29 and red on 7/31 with no commits in between — a frozen library's CI decaying on its own, surfacing on unrelated docs PRs.Pin.
MOJO_VERSION: 1.0.0b3.dev2026073014— the nightly all 11 repos went green on today. Pushes and PRs install exactly it, so upstream churn can't turn a green repo red without a commit.Weekly drift check. Pinning alone trades one problem for a worse one — silence. So
test.ymlalso runs Mondays against the latest nightly:main, so it never gates a PR.Why this reuses
test.ymlinstead of a new workflow file. Each repo's test steps are bespoke. A separatenightly-latest.ymlwould have to duplicate them and would silently drift out of sync. One workflow, one branch ongithub.event_name.docs.yamlis pinned but not scheduled — it deploys Pages and a weekly redeploy isn't wanted.mojo doccompiles the sources, so the test job catches the same stdlib breakage regardless.Verified before pushing: all 22 workflow files parse as valid YAML with the correct pin and distinct cron minutes; the drift step's script was extracted from parsed YAML and executed with
ghstubbed, confirming it creates an issue when none exists and comments when one does. Landed and CI-verified on conorbronsdon/mojo-feed#6 first, where the run log shows+ mojo==1.0.0b3.dev2026073014— the pin, not latest.When this fires: fix the breakage, then bump
MOJO_VERSIONin both files to the nightly that passes.🤖 Generated with Claude Code