Skip to content

Commit 006124b

Browse files
committed
ci: the engine pin moves to 2026.9.11.2, which is what makes dist-apple reachable
The red macOS lane was the dependency, not a convention. Under 2026.9.11.1: error: cannot package the Mach-O program 'app-consumer' yet. `mcpp pack` staged unconditionally before dispatching and let a staging failure fail the command, and its built-in closure walk uses `LD_TRACE_LOADED_OBJECTS` -- which dyld answers by RUNNING the program. So every dispatched format was unreachable on macOS, including one that reads no staged tree at all. 2026.9.11.2 makes staging a service to the provider, so `dist-apple` has been unreachable rather than broken since it was written. The README floor for `dist-apple` moves with it and says why it is one release higher than its siblings: the reason is not this member.
1 parent ef861a3 commit 006124b

2 files changed

Lines changed: 22 additions & 8 deletions

File tree

.github/workflows/ci.yml

Lines changed: 21 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -9,13 +9,27 @@ on:
99
env:
1010
# The mcpp release the consumers build with. Raising it is what admits a
1111
# member that relies on a newer engine; the README states each member's floor.
12-
# 2026.9.11.1 is what `dist-*` needs: `mcpp::provides_pack_format`,
13-
# `mcpp::pack_format`, `${mcpp.stage_dir}` and `mcpp::package_version` all
14-
# arrived in it. Raising this is what admits a member relying on a newer
15-
# engine; the README states each member's floor, and the index descriptor's
16-
# own `min_mcpp` is a different question -- it bounds the DESCRIPTOR's
17-
# syntax, and raising it would brick every older client's whole index.
18-
MCPP_VERSION: 2026.9.11.1
12+
# 2026.9.11.1 is what `dist-*` needs at the API level:
13+
# `mcpp::provides_pack_format`, `mcpp::pack_format`, `${mcpp.stage_dir}` and
14+
# `mcpp::package_version` all arrived in it. Raising this is what admits a
15+
# member relying on a newer engine; the README states each member's floor,
16+
# and the index descriptor's own `min_mcpp` is a different question -- it
17+
# bounds the DESCRIPTOR's syntax, and raising it would brick every older
18+
# client's whole index.
19+
#
20+
# 2026.9.11.2 IS WHAT `dist-apple` NEEDS TO BE REACHABLE AT ALL, and the red
21+
# lane was the dependency rather than a convention. Under 2026.9.11.1 the
22+
# macOS job failed with
23+
#
24+
# error: cannot package the Mach-O program 'app-consumer' yet.
25+
#
26+
# because `mcpp pack` staged unconditionally before dispatching and let a
27+
# staging failure fail the command -- and its built-in closure walk uses
28+
# `LD_TRACE_LOADED_OBJECTS`, which dyld answers by RUNNING the program. So
29+
# every dispatched format was unreachable on macOS, including one that never
30+
# reads the staged tree. Staging is a service to the provider in 2026.9.11.2,
31+
# and `dist-apple` has been unreachable, not broken, since it was written.
32+
MCPP_VERSION: 2026.9.11.2
1933
# PINNED, AND WITHOUT IT THE CACHE BELOW CACHED NOTHING.
2034
#
2135
# A released mcpp is self-contained: with no `MCPP_HOME`, `mcpp self env`

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ engine's own module family and is not used here.
7373
| `tools-island` | `mcpp.tools.island` | 2026.9.7.1 | nothing beyond mcpp: it reads marked entry points out of an island's own source and writes the `extern "C"` boundary header its compiler reads and the module the C++ side imports. Not a device rule -- it claims no extension, and a project calls it from its own `build.mcpp` |
7474
| `dist-appimage` | `mcpp.dist.appimage` | 2026.9.11.1 | `xim:appimagetool`, which this feature declares on the `cfg(linux)` axis. Linux only. Turns the tree `mcpp pack` staged into one AppImage: the staged bundle is already an AppDir bar three files, so the member writes an `AppRun`, a `.desktop` entry and an icon into it and invokes one tool -- it never copies or re-lays-out a tree that can be hundreds of megabytes |
7575
| `dist-wix` | `mcpp.dist.wix` | 2026.9.11.1 | the WiX 6 CLI on `PATH` or in `MCPP_WIX`, which is not redistributable through this ecosystem and is therefore located rather than installed -- the `msvc@system` shape. Windows only. Renders a `.wxs` and passes the program in as a preprocessor variable, because a bind path that resolves to nothing is silent |
76-
| `dist-apple` | `mcpp.dist.apple` | 2026.9.11.1 | the base macOS install (`ditto`, and `codesign` only when an identity is given). macOS now; iOS when the target row is wired, which is a payload rather than a redesign |
76+
| `dist-apple` | `mcpp.dist.apple` | 2026.9.11.2 | the base macOS install (`ditto`, and `codesign` only when an identity is given). macOS now; iOS when the target row is wired, which is a payload rather than a redesign. **The floor is one release higher than its siblings** and the reason is not this member: under 2026.9.11.1 `mcpp pack` staged before dispatching and let a staging failure fail the command, so on a Mach-O program -- which the built-in closure walk refuses, because it uses `LD_TRACE_LOADED_OBJECTS` and dyld answers that by running the program -- every dispatched format was unreachable, including one that reads no staged tree. 2026.9.11.2 makes staging a service to the provider |
7777

7878
### Each rule brings its own environment
7979

0 commit comments

Comments
 (0)