Skip to content

Commit bf6417b

Browse files
committed
ci: the clone's workspace pin does not decide which mcpp builds it
`.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.
1 parent 4d7d026 commit bf6417b

1 file changed

Lines changed: 24 additions & 0 deletions

File tree

.github/workflows/ci.yml

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,18 @@ jobs:
9999
[ -d "$src" ] || git clone --quiet --depth 1 \
100100
--branch "$MCPP_SOURCE_REF" \
101101
https://github.com/mcpp-community/mcpp.git "$src"
102+
# ⚠️ THE CLONE'S OWN WORKSPACE PIN MUST NOT DECIDE WHICH mcpp
103+
# BUILDS IT. `.xlings.json` at mcpp's root pins the mcpp that
104+
# compiles mcpp, and that pin does not move when mcpp is released —
105+
# so a build inside the checkout obeys it and tries to install a
106+
# version the index may no longer carry:
107+
#
108+
# [error] xlings: version '2026.8.17.1' not found for 'mcpp'
109+
# available: 2026.8.25.1
110+
#
111+
# What is wanted here is the source compiled by the mcpp installed
112+
# above, which is exactly what removing the file leaves.
113+
rm -f "$src/.xlings.json"
102114
( cd "$src" && mcpp build --release )
103115
built=$(find "$src/target" -type f -name mcpp -perm -u+x | head -1)
104116
[ -n "$built" ] || { echo "::error::mcpp did not build from $MCPP_SOURCE_REF"; exit 1; }
@@ -305,6 +317,18 @@ jobs:
305317
[ -d "$src" ] || git clone --quiet --depth 1 \
306318
--branch "$MCPP_SOURCE_REF" \
307319
https://github.com/mcpp-community/mcpp.git "$src"
320+
# ⚠️ THE CLONE'S OWN WORKSPACE PIN MUST NOT DECIDE WHICH mcpp
321+
# BUILDS IT. `.xlings.json` at mcpp's root pins the mcpp that
322+
# compiles mcpp, and that pin does not move when mcpp is released —
323+
# so a build inside the checkout obeys it and tries to install a
324+
# version the index may no longer carry:
325+
#
326+
# [error] xlings: version '2026.8.17.1' not found for 'mcpp'
327+
# available: 2026.8.25.1
328+
#
329+
# What is wanted here is the source compiled by the mcpp installed
330+
# above, which is exactly what removing the file leaves.
331+
rm -f "$src/.xlings.json"
308332
( cd "$src" && mcpp build --release )
309333
built=$(find "$src/target" -type f -name mcpp -perm -u+x | head -1)
310334
[ -n "$built" ] || { echo "::error::mcpp did not build from $MCPP_SOURCE_REF"; exit 1; }

0 commit comments

Comments
 (0)