Commit 3a7c504
committed
fix: a dependency's [feature-xlings] tools must be installed before its build.mcpp runs
The root's `[xlings.workspace]` declarations are provisioned early. The GRAPH's
were provisioned about 1700 lines further down, after every build.mcpp had
already run. So a package that declares a tool under the feature that needs it
and then asks for it with `xpkg_dir` worked as the ROOT and was refused as a
DEPENDENCY -- with the very declaration it had already made quoted back at it.
Measured on the published `ggml-org:llamacpp@b10069.2`, which is exactly this
shape:
[feature-xlings.backend-vulkan]
"xim:shaderc" = "2026.3"
A consumer that writes the one line its README asks for could not build on a
clean machine:
error: dependency 'llamacpp': build.mcpp exited with 2 (build aborted):
ggml-org:llamacpp backend-vulkan needs glslc. Declare it: ...
With an isolated MCPP_HOME the unfixed engine pulled twenty-four xim payloads
for that graph and not shaderc; the fixed one pulls it and the consumer builds,
1921 shaders compiled.
WHY NOTHING CAUGHT IT. Once the tool is in the registry for any reason, and
building the package itself puts it there, `xpkg_dir` finds it and the ordering
stops mattering. llama.cpp-m's own CI builds it as the root; every machine that
had touched the package had the payload. Only an empty registry can see this,
which is what the sandbox run is for.
The split is now computed once, beside `activeFeaturesByPackage`, and read by
both the early provisioning pass and the later record-writing pass, so the two
cannot disagree about what "the graph declared" means. The late provisioning
call is kept: the stamp is keyed by content, so it is normally a hit, and it
remains the site that makes the record true if the early pass did not run.
e2e 618 is the criterion, and its first version was a false green worth
recording: it used `xim:ninja`, which mcpp installs to run its own builds, so
`xpkg_dir` answered on the broken engine too. It now uses the tool the defect
was actually found with.1 parent 145a3f2 commit 3a7c504
4 files changed
Lines changed: 193 additions & 22 deletions
File tree
- modules/versioning/src
- src/build
- tests/e2e
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | | - | |
| 3 | + | |
4 | 4 | | |
5 | 5 | | |
6 | 6 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
31 | 31 | | |
32 | 32 | | |
33 | 33 | | |
34 | | - | |
| 34 | + | |
35 | 35 | | |
36 | 36 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
3708 | 3708 | | |
3709 | 3709 | | |
3710 | 3710 | | |
| 3711 | + | |
| 3712 | + | |
| 3713 | + | |
| 3714 | + | |
| 3715 | + | |
| 3716 | + | |
| 3717 | + | |
| 3718 | + | |
| 3719 | + | |
| 3720 | + | |
| 3721 | + | |
| 3722 | + | |
| 3723 | + | |
| 3724 | + | |
| 3725 | + | |
| 3726 | + | |
| 3727 | + | |
| 3728 | + | |
| 3729 | + | |
| 3730 | + | |
| 3731 | + | |
| 3732 | + | |
| 3733 | + | |
3711 | 3734 | | |
3712 | 3735 | | |
3713 | 3736 | | |
| |||
7034 | 7057 | | |
7035 | 7058 | | |
7036 | 7059 | | |
| 7060 | + | |
| 7061 | + | |
| 7062 | + | |
| 7063 | + | |
| 7064 | + | |
| 7065 | + | |
| 7066 | + | |
| 7067 | + | |
| 7068 | + | |
| 7069 | + | |
| 7070 | + | |
| 7071 | + | |
| 7072 | + | |
| 7073 | + | |
| 7074 | + | |
| 7075 | + | |
| 7076 | + | |
| 7077 | + | |
| 7078 | + | |
| 7079 | + | |
| 7080 | + | |
| 7081 | + | |
| 7082 | + | |
| 7083 | + | |
| 7084 | + | |
| 7085 | + | |
| 7086 | + | |
| 7087 | + | |
| 7088 | + | |
| 7089 | + | |
| 7090 | + | |
| 7091 | + | |
| 7092 | + | |
| 7093 | + | |
| 7094 | + | |
| 7095 | + | |
| 7096 | + | |
7037 | 7097 | | |
7038 | 7098 | | |
7039 | 7099 | | |
| |||
9301 | 9361 | | |
9302 | 9362 | | |
9303 | 9363 | | |
9304 | | - | |
9305 | | - | |
9306 | | - | |
9307 | | - | |
9308 | | - | |
9309 | | - | |
9310 | | - | |
9311 | | - | |
9312 | | - | |
9313 | | - | |
9314 | | - | |
9315 | | - | |
9316 | | - | |
9317 | | - | |
9318 | | - | |
9319 | | - | |
9320 | | - | |
9321 | | - | |
9322 | | - | |
9323 | | - | |
| 9364 | + | |
| 9365 | + | |
| 9366 | + | |
| 9367 | + | |
| 9368 | + | |
9324 | 9369 | | |
9325 | 9370 | | |
9326 | 9371 | | |
9327 | 9372 | | |
9328 | 9373 | | |
| 9374 | + | |
| 9375 | + | |
| 9376 | + | |
| 9377 | + | |
| 9378 | + | |
9329 | 9379 | | |
9330 | 9380 | | |
9331 | 9381 | | |
| |||
Lines changed: 121 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
| 116 | + | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
| 120 | + | |
| 121 | + | |
0 commit comments