Skip to content

Commit 922fa28

Browse files
committed
fix(ci): require self-contained helpers for llamacpp
1 parent 4211a06 commit 922fa28

3 files changed

Lines changed: 28 additions & 8 deletions

File tree

.github/workflows/validate.yml

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,10 @@ on:
1414
workflow_dispatch:
1515

1616
env:
17+
# 2026.7.28.2: mcpp#298 makes build.mcpp host helpers self-contained for
18+
# musl and MinGW toolchains. This is required for ggml-org.llamacpp's
19+
# Linux aarch64 source build, whose helper otherwise requires a missing
20+
# musl dynamic loader on a glibc host.
1721
# 0.0.109: a bare dependency's wire address takes BOTH halves from the
1822
# descriptor the identity gate accepted (mcpp#286). This is the client-side
1923
# other half of the SPEC-001 migration below: mcpp used to take the NAME from
@@ -75,7 +79,7 @@ env:
7579
# 0.0.94 fixed feature-gated `sources` under `mcpp test` (mcpp#218); 0.0.91
7680
# added standard = "c++fly" to the resolver grammar, so c++fly descriptors
7781
# get the lint WARN below, not a hard grammar-parse rejection.
78-
MCPP_VERSION: "0.0.109"
82+
MCPP_VERSION: "2026.7.28.2"
7983

8084
jobs:
8185
lint:
@@ -258,21 +262,21 @@ jobs:
258262
ext: tar.gz
259263
mcpp: bin/mcpp
260264
xlings: registry/bin/xlings
261-
mcpp_version: "0.0.109" # keep in sync with env.MCPP_VERSION
265+
mcpp_version: "2026.7.28.2" # keep in sync with env.MCPP_VERSION
262266
- platform: macos
263267
os: macos-15
264268
suffix: macosx-arm64
265269
ext: tar.gz
266270
mcpp: bin/mcpp
267271
xlings: registry/bin/xlings
268-
mcpp_version: "0.0.109" # keep in sync with env.MCPP_VERSION
272+
mcpp_version: "2026.7.28.2" # keep in sync with env.MCPP_VERSION
269273
- platform: windows
270274
os: windows-latest
271275
suffix: windows-x86_64
272276
ext: zip
273277
mcpp: bin/mcpp.exe
274278
xlings: registry/bin/xlings.exe
275-
mcpp_version: "0.0.109" # keep in sync with env.MCPP_VERSION
279+
mcpp_version: "2026.7.28.2" # keep in sync with env.MCPP_VERSION
276280
env:
277281
MCPP_EFFECTIVE: ${{ matrix.mcpp_version }}
278282
steps:
@@ -398,7 +402,7 @@ jobs:
398402
- name: Cold-start llama.cpp package
399403
shell: bash
400404
run: |
401-
package_store="ggml-org-x-ggml-org.llamacpp"
405+
package_store="ggml-org-x-llamacpp"
402406
rm -rf "$HOME/.mcpp/registry/data/xpkgs/$package_store"
403407
rm -rf ".mcpp/.xlings/data/xpkgs/$package_store"
404408
members="$MEMBERS"

index.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,5 +7,5 @@
77
# "floor first, new grammar after" rollout rule mechanically.
88
[index]
99
spec = "1"
10-
min_mcpp = "0.0.109"
11-
latest_mcpp = "0.0.109"
10+
min_mcpp = "2026.7.28.2"
11+
latest_mcpp = "2026.7.28.2"

tests/test_llamacpp_package_contract.py

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,9 @@
88

99
ROOT = pathlib.Path(__file__).resolve().parents[1]
1010
DESCRIPTOR = ROOT / "pkgs/g/ggml-org.llamacpp.lua"
11+
INDEX = ROOT / "index.toml"
1112
WORKFLOW = ROOT / ".github/workflows/validate.yml"
13+
REQUIRED_MCPP = "2026.7.28.2"
1214
CONSUMERS = (
1315
ROOT / "tests/examples/llamacpp-internal-cpu/mcpp.toml",
1416
ROOT / "tests/examples/llamacpp-internal-metal/mcpp.toml",
@@ -115,9 +117,23 @@ def test_workflow_dependency_match_is_exact(self):
115117

116118
def test_workflow_forces_cold_llamacpp_materialization(self):
117119
workflow = WORKFLOW.read_text()
118-
self.assertIn("ggml-org-x-ggml-org.llamacpp", workflow)
120+
self.assertIn('package_store="ggml-org-x-llamacpp"', workflow)
121+
self.assertNotIn("ggml-org-x-ggml-org.llamacpp", workflow)
119122
self.assertIn("Cold-start llama.cpp package", workflow)
120123

124+
def test_linux_arm64_requires_the_self_contained_helper_release(self):
125+
index = tomllib.loads(INDEX.read_text())["index"]
126+
self.assertEqual(index["min_mcpp"], REQUIRED_MCPP)
127+
self.assertEqual(index["latest_mcpp"], REQUIRED_MCPP)
128+
129+
workflow = WORKFLOW.read_text()
130+
self.assertIn(f'MCPP_VERSION: "{REQUIRED_MCPP}"', workflow)
131+
self.assertEqual(
132+
workflow.count(f'mcpp_version: "{REQUIRED_MCPP}"'),
133+
3,
134+
"all active workspace matrix pins must match the index floor",
135+
)
136+
121137

122138
if __name__ == "__main__":
123139
unittest.main()

0 commit comments

Comments
 (0)