From 054461961733013c73ed0bac0e3219607c21c319 Mon Sep 17 00:00:00 2001 From: sunrisepeak Date: Wed, 16 Sep 2026 10:48:49 +0800 Subject: [PATCH] mcpp:plugins 0.12.0, and CI builds against mcpp 2026.9.16.1 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. --- .github/workflows/validate.yml | 22 ++++++++++++++- pkgs/m/mcpp.plugins.lua | 50 +++++++++++++++++++++++++++++++--- 2 files changed, 67 insertions(+), 5 deletions(-) diff --git a/.github/workflows/validate.yml b/.github/workflows/validate.yml index 0eb2ebb..543d943 100644 --- a/.github/workflows/validate.yml +++ b/.github/workflows/validate.yml @@ -241,7 +241,27 @@ env: # manifests. One pin move, batched with the two descriptors. # # `index.toml` min_mcpp does not move: no descriptor grammar changed. - MCPP_VERSION: "2026.9.15.2" + # ── 2026-09-16: raised 2026.9.15.2 -> 2026.9.16.1 ───────────────────────── + # + # `mcpp.plugins` 0.12.0 is added below, and it reads the resolved graph the + # root build program receives from mcpp 2026.9.16.1 (`MCPP_GRAPH_FILE`). It + # does not need that engine to build here -- a member reads the variable and + # finds it absent under an older one, which is the pre-0.12.0 behaviour -- so + # the descriptor is not what moves the pin. + # + # What moves it is that 2026.9.16.1 changes how images and runtimes are + # decided, and this index is where that meets five hundred real manifests. + # On ELF every C++ image a plan loads into one process now shares one C++ + # runtime, so a program over a plan-built C++ shared library takes the + # library's contract instead of a static one (mcpp-community/mcpp#646 F3a); a + # static package reached from several shared images is refused where the link + # or the load cannot succeed (F1); and a package whose targets are all + # programs no longer contributes its dependencies to a consumer's target + # graph (#649 E6). Each of those decides what a real manifest links, and the + # only place they are exercised at this scale is here. + # + # `index.toml` min_mcpp does not move: no descriptor grammar changed. + MCPP_VERSION: "2026.9.16.1" jobs: lint: diff --git a/pkgs/m/mcpp.plugins.lua b/pkgs/m/mcpp.plugins.lua index 94f9e2d..f044ba8 100644 --- a/pkgs/m/mcpp.plugins.lua +++ b/pkgs/m/mcpp.plugins.lua @@ -2,12 +2,33 @@ -- each member selected by a feature. -- -- [dependencies.mcpp] --- plugins = { version = "0.11.1", features = ["rules-spirv"], host-module = true } +-- plugins = { version = "0.12.0", features = ["rules-spirv"], host-module = true } -- -- // build.mcpp -- import mcpp; -- import mcpp.rules.spirv; -- +-- 0.12.0 requires **mcpp 2026.9.16.1** for the members that read the resolved +-- graph, and nothing newer for the rest. A package states what it contributes +-- to an application in its own manifest -- `[package.metadata.dist-apk]` +-- (Android source roots, resources, assets, a manifest, jars and aars) and +-- `[package.metadata.dist-apple]` (an Info.plist fragment) -- and the root +-- build program reads them from the graph mcpp hands it, applying each package +-- above the packages it depends on, with the application's own options above +-- all of them. `options::graph_libraries` and `options::graph_info_plist` turn +-- the collection off. Under an older engine there is no graph, the variable is +-- absent, and a package is built without the contribution exactly as before. +-- +-- `dist-apk` also follows the engine's strip decision from that release +-- (`MCPP_PACK_STRIP`, `MCPP_PACK_DEBUG_SYMBOLS_DIR`): a library the engine +-- staged is packed as staged, because the engine has already applied +-- `--no-strip` or `--debug-symbols` to it, and the member strips only what it +-- stages itself. `dist-apple` gains `options::omit_keys`, which leaves out a +-- key the member only defaults; `dist-web` gains `options::page`, which names +-- the page (`index.html` by default). `rules-swift` compiles a package's +-- `.swift` sources in one whole-module `swiftc` action on macOS, the iOS +-- simulator and the iOS device row, refusing every other row by name. +-- -- 0.11.1 (same mcpp floor): `dist-apk` strips each native library with the -- build's own `llvm-strip --strip-unneeded` (`options::keep_debug_symbols` -- keeps them as staged) and, when the manifest states @@ -515,6 +536,13 @@ package = { xpm = { linux = { + ["0.12.0"] = { + url = { + GLOBAL = "https://github.com/mcpp-community/mcpp-plugins/archive/refs/tags/v0.12.0.tar.gz", + CN = "https://gitcode.com/mcpp-res/mcpp-plugins/releases/download/0.12.0/mcpp-plugins-0.12.0.tar.gz", + }, + sha256 = "90a70689b090be7208c1f1f35487e148ed353a1bef0cec33d391bd46d67ba13f", + }, ["0.11.1"] = { url = { GLOBAL = "https://github.com/mcpp-community/mcpp-plugins/archive/refs/tags/v0.11.1.tar.gz", @@ -697,9 +725,16 @@ package = { }, sha256 = "adf1f9d6691a5d05a8a4a94e83c733ea39caee1510ce2c9af4cb23bebabea9f5", }, - ["latest"] = { ref = "0.11.1" }, + ["latest"] = { ref = "0.12.0" }, }, macosx = { + ["0.12.0"] = { + url = { + GLOBAL = "https://github.com/mcpp-community/mcpp-plugins/archive/refs/tags/v0.12.0.tar.gz", + CN = "https://gitcode.com/mcpp-res/mcpp-plugins/releases/download/0.12.0/mcpp-plugins-0.12.0.tar.gz", + }, + sha256 = "90a70689b090be7208c1f1f35487e148ed353a1bef0cec33d391bd46d67ba13f", + }, ["0.11.1"] = { url = { GLOBAL = "https://github.com/mcpp-community/mcpp-plugins/archive/refs/tags/v0.11.1.tar.gz", @@ -882,9 +917,16 @@ package = { }, sha256 = "adf1f9d6691a5d05a8a4a94e83c733ea39caee1510ce2c9af4cb23bebabea9f5", }, - ["latest"] = { ref = "0.11.1" }, + ["latest"] = { ref = "0.12.0" }, }, windows = { + ["0.12.0"] = { + url = { + GLOBAL = "https://github.com/mcpp-community/mcpp-plugins/archive/refs/tags/v0.12.0.tar.gz", + CN = "https://gitcode.com/mcpp-res/mcpp-plugins/releases/download/0.12.0/mcpp-plugins-0.12.0.tar.gz", + }, + sha256 = "90a70689b090be7208c1f1f35487e148ed353a1bef0cec33d391bd46d67ba13f", + }, ["0.11.1"] = { url = { GLOBAL = "https://github.com/mcpp-community/mcpp-plugins/archive/refs/tags/v0.11.1.tar.gz", @@ -1067,7 +1109,7 @@ package = { }, sha256 = "adf1f9d6691a5d05a8a4a94e83c733ea39caee1510ce2c9af4cb23bebabea9f5", }, - ["latest"] = { ref = "0.11.1" }, + ["latest"] = { ref = "0.12.0" }, }, },