Skip to content

ci: pin mcpp 2026.8.25.1 - #7

Open
Sunrisepeak wants to merge 8 commits into
mainfrom
ci/pin-2026-8-24-6
Open

ci: pin mcpp 2026.8.25.1#7
Sunrisepeak wants to merge 8 commits into
mainfrom
ci/pin-2026-8-24-6

Conversation

@Sunrisepeak

Copy link
Copy Markdown
Member

The pin was several releases behind, so what CI validated was not what the ecosystem resolves. 2026.8.24.6 is the version this package's current contents were released alongside — openkal 0.7.0 and the implementations that follow it.

The pin was several releases behind, so what CI validated was not what
the ecosystem resolves. 2026.8.24.6 is the version this package's
current contents were released alongside — openkal 0.7.0 and the
implementations that follow it.

A version verified to build this package, not a measured minimum: the
pin exists for reproducibility rather than because an older mcpp is
known to fail.
@Sunrisepeak Sunrisepeak changed the title ci: pin the build tool this package was released against ci: pin mcpp 2026.8.25.1 Aug 25, 2026
Several mcpp releases went out green and only then turned this ecosystem
red. The engine's own CI cannot see a defect that appears only in a real
dependency graph, and this repository could not see the engine until it had
been published — so the first place the two met was after the release.

`MCPP_SOURCE_REF` (a workflow_dispatch input, or a repository variable)
names a branch of mcpp-community/mcpp. When set, every job builds that
source with the released mcpp as bootstrap and puts the result first on
PATH; when empty the job tests the released pin exactly as before.

Also re-pins to 2026.8.25.2, which fixes what this repository last failed on.
The pin may name the very release the run is validating, which does not
exist yet — that is what MCPP_SOURCE_REF is for. Bootstrap from whatever
the index has; the build under review replaces it a step later.
`.xlings.json` at mcpp's root pins the mcpp that compiles mcpp, and that
pin does not move when mcpp is released — a build inside the checkout obeys
it and installs a version the index may no longer carry. What this step
wants is the source compiled by the mcpp installed a moment earlier.
The mcpp side of this cross-validation had to sort by mtime — its target/
is restored from a cache and `find … | head -1` returned a binary an
earlier push had left, with the right version string and the wrong code.
Here $src is a fresh clone, so the plain form is correct; `-printf` is a
GNU extension and one of the runners reaching this line is macOS.
The matrix reaches Windows and macOS. Measured on the Windows row:
`Finished release [optimized] in 173.44s` followed by "mcpp did not
build" — the build had succeeded and the search was looking for a name
that filesystem does not use.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant