Skip to content

Commit c176883

Browse files
authored
mcpp:plugins 0.12.0, and CI builds against mcpp 2026.9.16.1 (#433)
0.12.0 is published (mcpp-community/mcpp-plugins v0.12.0). The descriptor points at the source archive of the tag, and the GitCode asset is the same bytes: both were downloaded and compared, and 90a70689b090be7208c1f1f35487e148ed353a1bef0cec33d391bd46d67ba13f names each. The release: a package states what it contributes to an application in its own manifest, and the root build program reads those statements from the resolved graph mcpp 2026.9.16.1 hands it; `dist-apk` follows that engine's strip decision; `dist-apple` gains `options::omit_keys`, `dist-web` gains `options::page`, and `rules-swift` compiles a package's Swift sources on the Apple rows. Under an older engine there is no graph and a package builds without the contribution, as before. The CI pin moves with it, for the reason stated beside it: 2026.9.16.1 changes how images and runtimes are decided, and this index is where that meets five hundred real manifests. `index.toml` min_mcpp does not move; no descriptor grammar changed.
1 parent 0cbac96 commit c176883

2 files changed

Lines changed: 67 additions & 5 deletions

File tree

‎.github/workflows/validate.yml‎

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -241,7 +241,27 @@ env:
241241
# manifests. One pin move, batched with the two descriptors.
242242
#
243243
# `index.toml` min_mcpp does not move: no descriptor grammar changed.
244-
MCPP_VERSION: "2026.9.15.2"
244+
# ── 2026-09-16: raised 2026.9.15.2 -> 2026.9.16.1 ─────────────────────────
245+
#
246+
# `mcpp.plugins` 0.12.0 is added below, and it reads the resolved graph the
247+
# root build program receives from mcpp 2026.9.16.1 (`MCPP_GRAPH_FILE`). It
248+
# does not need that engine to build here -- a member reads the variable and
249+
# finds it absent under an older one, which is the pre-0.12.0 behaviour -- so
250+
# the descriptor is not what moves the pin.
251+
#
252+
# What moves it is that 2026.9.16.1 changes how images and runtimes are
253+
# decided, and this index is where that meets five hundred real manifests.
254+
# On ELF every C++ image a plan loads into one process now shares one C++
255+
# runtime, so a program over a plan-built C++ shared library takes the
256+
# library's contract instead of a static one (mcpp-community/mcpp#646 F3a); a
257+
# static package reached from several shared images is refused where the link
258+
# or the load cannot succeed (F1); and a package whose targets are all
259+
# programs no longer contributes its dependencies to a consumer's target
260+
# graph (#649 E6). Each of those decides what a real manifest links, and the
261+
# only place they are exercised at this scale is here.
262+
#
263+
# `index.toml` min_mcpp does not move: no descriptor grammar changed.
264+
MCPP_VERSION: "2026.9.16.1"
245265

246266
jobs:
247267
lint:

‎pkgs/m/mcpp.plugins.lua‎

Lines changed: 46 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,33 @@
22
-- each member selected by a feature.
33
--
44
-- [dependencies.mcpp]
5-
-- plugins = { version = "0.11.1", features = ["rules-spirv"], host-module = true }
5+
-- plugins = { version = "0.12.0", features = ["rules-spirv"], host-module = true }
66
--
77
-- // build.mcpp
88
-- import mcpp;
99
-- import mcpp.rules.spirv;
1010
--
11+
-- 0.12.0 requires **mcpp 2026.9.16.1** for the members that read the resolved
12+
-- graph, and nothing newer for the rest. A package states what it contributes
13+
-- to an application in its own manifest -- `[package.metadata.dist-apk]`
14+
-- (Android source roots, resources, assets, a manifest, jars and aars) and
15+
-- `[package.metadata.dist-apple]` (an Info.plist fragment) -- and the root
16+
-- build program reads them from the graph mcpp hands it, applying each package
17+
-- above the packages it depends on, with the application's own options above
18+
-- all of them. `options::graph_libraries` and `options::graph_info_plist` turn
19+
-- the collection off. Under an older engine there is no graph, the variable is
20+
-- absent, and a package is built without the contribution exactly as before.
21+
--
22+
-- `dist-apk` also follows the engine's strip decision from that release
23+
-- (`MCPP_PACK_STRIP`, `MCPP_PACK_DEBUG_SYMBOLS_DIR`): a library the engine
24+
-- staged is packed as staged, because the engine has already applied
25+
-- `--no-strip` or `--debug-symbols` to it, and the member strips only what it
26+
-- stages itself. `dist-apple` gains `options::omit_keys`, which leaves out a
27+
-- key the member only defaults; `dist-web` gains `options::page`, which names
28+
-- the page (`index.html` by default). `rules-swift` compiles a package's
29+
-- `.swift` sources in one whole-module `swiftc` action on macOS, the iOS
30+
-- simulator and the iOS device row, refusing every other row by name.
31+
--
1132
-- 0.11.1 (same mcpp floor): `dist-apk` strips each native library with the
1233
-- build's own `llvm-strip --strip-unneeded` (`options::keep_debug_symbols`
1334
-- keeps them as staged) and, when the manifest states
@@ -515,6 +536,13 @@ package = {
515536

516537
xpm = {
517538
linux = {
539+
["0.12.0"] = {
540+
url = {
541+
GLOBAL = "https://github.com/mcpp-community/mcpp-plugins/archive/refs/tags/v0.12.0.tar.gz",
542+
CN = "https://gitcode.com/mcpp-res/mcpp-plugins/releases/download/0.12.0/mcpp-plugins-0.12.0.tar.gz",
543+
},
544+
sha256 = "90a70689b090be7208c1f1f35487e148ed353a1bef0cec33d391bd46d67ba13f",
545+
},
518546
["0.11.1"] = {
519547
url = {
520548
GLOBAL = "https://github.com/mcpp-community/mcpp-plugins/archive/refs/tags/v0.11.1.tar.gz",
@@ -697,9 +725,16 @@ package = {
697725
},
698726
sha256 = "adf1f9d6691a5d05a8a4a94e83c733ea39caee1510ce2c9af4cb23bebabea9f5",
699727
},
700-
["latest"] = { ref = "0.11.1" },
728+
["latest"] = { ref = "0.12.0" },
701729
},
702730
macosx = {
731+
["0.12.0"] = {
732+
url = {
733+
GLOBAL = "https://github.com/mcpp-community/mcpp-plugins/archive/refs/tags/v0.12.0.tar.gz",
734+
CN = "https://gitcode.com/mcpp-res/mcpp-plugins/releases/download/0.12.0/mcpp-plugins-0.12.0.tar.gz",
735+
},
736+
sha256 = "90a70689b090be7208c1f1f35487e148ed353a1bef0cec33d391bd46d67ba13f",
737+
},
703738
["0.11.1"] = {
704739
url = {
705740
GLOBAL = "https://github.com/mcpp-community/mcpp-plugins/archive/refs/tags/v0.11.1.tar.gz",
@@ -882,9 +917,16 @@ package = {
882917
},
883918
sha256 = "adf1f9d6691a5d05a8a4a94e83c733ea39caee1510ce2c9af4cb23bebabea9f5",
884919
},
885-
["latest"] = { ref = "0.11.1" },
920+
["latest"] = { ref = "0.12.0" },
886921
},
887922
windows = {
923+
["0.12.0"] = {
924+
url = {
925+
GLOBAL = "https://github.com/mcpp-community/mcpp-plugins/archive/refs/tags/v0.12.0.tar.gz",
926+
CN = "https://gitcode.com/mcpp-res/mcpp-plugins/releases/download/0.12.0/mcpp-plugins-0.12.0.tar.gz",
927+
},
928+
sha256 = "90a70689b090be7208c1f1f35487e148ed353a1bef0cec33d391bd46d67ba13f",
929+
},
888930
["0.11.1"] = {
889931
url = {
890932
GLOBAL = "https://github.com/mcpp-community/mcpp-plugins/archive/refs/tags/v0.11.1.tar.gz",
@@ -1067,7 +1109,7 @@ package = {
10671109
},
10681110
sha256 = "adf1f9d6691a5d05a8a4a94e83c733ea39caee1510ce2c9af4cb23bebabea9f5",
10691111
},
1070-
["latest"] = { ref = "0.11.1" },
1112+
["latest"] = { ref = "0.12.0" },
10711113
},
10721114
},
10731115

0 commit comments

Comments
 (0)