ci: name the build tool in one place, and remove a pin that resolved to 2026-05 - #13
Merged
Conversation
…to 2026-05
`mcpp build` ended at `package 'xim:glibc@>=2.39' not found` on every pull
request opened after 2026-07-11, before compiling a line. The change under
review was not involved.
`.xlings.json` declared `workspace.mcpp = 0.0.13`. That file is read from the
current directory, and `actions/checkout` places it there before any step runs,
so every `mcpp` invocation in this repository resolved to a build tool from
2026-05 rather than to the one the job installed. The index no longer serves the
toolchain packages a tool of that age asks for.
Reproduced outside CI: in a checkout of this repository, `mcpp --version`
reports
[warn] mcpp@0.0.13 is the version this project asks for, and it is not
installed yet
from ./.xlings.json -> workspace.mcpp
and reports 2026.8.28.2 once the file is removed.
The version is now an environment variable, so the install and the cache key
cannot drift apart; the cache path named 0.0.13 while the job installed
something else, so that cache had never once been hit.
A weekly schedule is added. The breakage occurred between 2026-07-11 and
2026-08-29 and nothing reported it, because master received no pushes in that
window: the first run to meet it was a contributor's, who had no way to
distinguish a broken environment from a broken change.
Measured locally against mcpp 2026.8.28.2: `mcpp build` resolves and completes,
`mcpp test` reports 9 tests from 3 suites passed.
`--retry` covers a transient HTTP status and a timeout and does not cover a failure of the transport. `curl: (35) Recv failure: Connection reset by peer` is what this ecosystem's runners actually meet, and it produces a red job that names no defect.
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.
Every pull request opened after 2026-07-11 fails at
mcpp buildwithbefore a line is compiled, so the failure belongs to no change under review. #12 is red for this reason alone.
Cause
.xlings.jsondeclaredworkspace.mcpp = 0.0.13. That file is read from the current directory, andactions/checkoutplaces it there before any step runs, so everymcppinvocation in this repository resolved to a build tool from 2026-05 rather than to the one the job had installed. The index no longer serves the toolchain packages a tool of that age asks for.Reproduced outside CI. In a clean worktree of
master:What changes
env.MCPP_VERSION, read by both the install and the cache key. They named different versions before, which is whyCache not found for input keys: mcpp-sandbox-Linux-mcpp0.0.13appears in every log: that cache had never once been hit.mcpp --versionis printed. The version a job runs is now the version it reports.mcpp self config --mirror GLOBAL, which is what a runner outside China needs.masterreceived no pushes in that window. The first run to meet it was a contributor's, who had no way to distinguish a broken environment from a broken change.compile_commands.jsonis ignored.mcpp buildwrites it beside the manifest.Measured
Locally against mcpp 2026.8.28.2, in a clean worktree of
master:CI on this branch is the criterion for the pinned version, 2026.8.29.1, which is not the one measured above.