Skip to content

Commit 4bd862d

Browse files
committed
bump(mcpp.plugins): 0.6.0 adds the dist-* family and embed table()
0.6.0 introduces a third member family. The prefix states which of three questions a member answers: `rules-*` how a translation unit is compiled, `tools-*` what the build program does itself, `dist-*` what comes out of the link and in what form a user installs it. A `dist-*` member compiles nothing and does nothing while the build program runs; it consumes link outputs through a `role = "artifact"` action, reached with `mcpp pack --format <name>`. Three dist members ship: `dist-appimage` (Linux), `dist-wix` (Windows) and `dist-apple` (macOS). `mcpp.tools.embed` gains `table()`: N inputs, one header, one table, each row carrying its input's key alongside the contents. The floor remains documentation rather than a gate, unchanged. Nothing here records a per-package engine floor and index-level `min_mcpp` does not move. What an older client gets is legible at the point of use, and for these three members it is the best case of that rule: `mcpp::provides_pack_format` does not exist in an older engine's bundled `mcpp` module, so a consumer that activates a `dist-*` feature fails at the build.mcpp compile naming the missing function rather than at a link or, worse, in an artifact. The descriptor points at the source archive of the tag. The CN asset holds the identical bytes, verified by download-back, so one sha256 names both hosts. No package in this index pins `mcpp.plugins`, so moving `latest` re-pins no consumer.
1 parent 3a231f3 commit 4bd862d

1 file changed

Lines changed: 85 additions & 4 deletions

File tree

‎pkgs/m/mcpp.plugins.lua‎

Lines changed: 85 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
-- each member selected by a feature.
33
--
44
-- [dependencies.mcpp]
5-
-- plugins = { version = "0.5.2", features = ["rules-spirv"], host-module = true }
5+
-- plugins = { version = "0.6.0", features = ["rules-spirv"], host-module = true }
66
--
77
-- // build.mcpp
88
-- import mcpp;
@@ -297,6 +297,66 @@
297297
-- shares that function and had the same defect latent -- its Windows fixture
298298
-- keeps every payload in one directory, so a segment was never derived there.
299299
--
300+
-- 0.6.0 adds a THIRD FAMILY, and the prefix is which of three questions a
301+
-- member answers: `rules-*` how a translation unit is compiled, `tools-*` what
302+
-- the build program does itself, `dist-*` what comes out of the LINK and in
303+
-- what form a user installs it. A `dist-*` member compiles nothing and does
304+
-- nothing while the build program runs: it consumes link outputs through a
305+
-- `role = "artifact"` action, reached with `mcpp pack --format <name>`.
306+
--
307+
-- mcpp.dist.appimage `dist-appimage` >= 2026.9.11.1, Linux. Declares
308+
-- `xim:appimagetool` on the `cfg(linux)`
309+
-- axis and turns the tree `mcpp pack`
310+
-- staged into one AppImage. The staged
311+
-- bundle is already an AppDir bar three
312+
-- files, so the member writes an
313+
-- `AppRun`, a `.desktop` entry and an
314+
-- icon into it and invokes one tool --
315+
-- it never copies or re-lays-out a tree
316+
-- that can be hundreds of megabytes.
317+
-- `xim:appimagetool` carves its type-2
318+
-- runtime stub out of itself, because
319+
-- appimagetool otherwise downloads one on
320+
-- every invocation and a build must not
321+
-- reach the network
322+
-- mcpp.dist.wix `dist-wix` >= 2026.9.11.1, Windows. The WiX 6 CLI
323+
-- is a .NET tool and is not
324+
-- redistributable through this ecosystem,
325+
-- so it is LOCATED rather than installed
326+
-- -- the `msvc@system` shape. It renders
327+
-- a `.wxs` and passes the program in as a
328+
-- preprocessor variable rather than
329+
-- binding a directory: a bind path that
330+
-- resolves to nothing produced a valid,
331+
-- empty, 52 KB installer with no
332+
-- diagnostic at all
333+
-- mcpp.dist.apple `dist-apple` >= 2026.9.11.1, macOS. A `.app` bundle,
334+
-- its `Info.plist`, and `codesign` only
335+
-- when an identity is given -- a member
336+
-- that signed by default would fail every
337+
-- build on a machine with no identity in
338+
-- its keychain. iOS is the same shape
339+
-- plus a target row, which is a payload
340+
-- rather than a redesign
341+
--
342+
-- 0.6.0 also adds `table()` to `mcpp.tools.embed`: N inputs, ONE header, ONE
343+
-- table, where each row carries the input's key alongside its contents and the
344+
-- consumer iterates. `file()` writes one header per input and `files()` writes
345+
-- several; neither can express the shape a shader set wants. A duplicate key is
346+
-- refused naming BOTH inputs, and the bytes are a numeric array rather than a
347+
-- raw string literal, because a raw literal cannot carry arbitrary binary and
348+
-- its delimiter is terminable by the input -- which is the defect in the CMake
349+
-- code this shape replaces.
350+
--
351+
-- THE FLOOR IS STILL DOCUMENTATION AND NOT A GATE, unchanged from the note
352+
-- below: nothing here records a per-package engine floor and the index-level
353+
-- `min_mcpp` does not move for a package. What an older client gets is legible
354+
-- at the point of use and is, for these three members, the best case of that
355+
-- rule: `mcpp::provides_pack_format` does not exist in an older engine's
356+
-- bundled `mcpp` module, so a consumer activating `dist-*` fails at the
357+
-- build.mcpp COMPILE naming the missing function, rather than at a link or in
358+
-- an artifact.
359+
--
300360
-- The descriptor points at the source archive of the tag, the shape `grpcgen`
301361
-- established; the CN asset is the same bytes, so one sha256 names both.
302362
package = {
@@ -310,6 +370,13 @@ package = {
310370

311371
xpm = {
312372
linux = {
373+
["0.6.0"] = {
374+
url = {
375+
GLOBAL = "https://github.com/mcpp-community/mcpp-plugins/archive/refs/tags/v0.6.0.tar.gz",
376+
CN = "https://gitcode.com/mcpp-res/mcpp-plugins/releases/download/0.6.0/mcpp-plugins-0.6.0.tar.gz",
377+
},
378+
sha256 = "503594d5938a39709af98f606053b00caa275c5a9946c87e2ee98276c96aeb23",
379+
},
313380
["0.5.2"] = {
314381
url = {
315382
GLOBAL = "https://github.com/mcpp-community/mcpp-plugins/archive/refs/tags/v0.5.2.tar.gz",
@@ -408,9 +475,16 @@ package = {
408475
},
409476
sha256 = "adf1f9d6691a5d05a8a4a94e83c733ea39caee1510ce2c9af4cb23bebabea9f5",
410477
},
411-
["latest"] = { ref = "0.5.2" },
478+
["latest"] = { ref = "0.6.0" },
412479
},
413480
macosx = {
481+
["0.6.0"] = {
482+
url = {
483+
GLOBAL = "https://github.com/mcpp-community/mcpp-plugins/archive/refs/tags/v0.6.0.tar.gz",
484+
CN = "https://gitcode.com/mcpp-res/mcpp-plugins/releases/download/0.6.0/mcpp-plugins-0.6.0.tar.gz",
485+
},
486+
sha256 = "503594d5938a39709af98f606053b00caa275c5a9946c87e2ee98276c96aeb23",
487+
},
414488
["0.5.2"] = {
415489
url = {
416490
GLOBAL = "https://github.com/mcpp-community/mcpp-plugins/archive/refs/tags/v0.5.2.tar.gz",
@@ -509,9 +583,16 @@ package = {
509583
},
510584
sha256 = "adf1f9d6691a5d05a8a4a94e83c733ea39caee1510ce2c9af4cb23bebabea9f5",
511585
},
512-
["latest"] = { ref = "0.5.2" },
586+
["latest"] = { ref = "0.6.0" },
513587
},
514588
windows = {
589+
["0.6.0"] = {
590+
url = {
591+
GLOBAL = "https://github.com/mcpp-community/mcpp-plugins/archive/refs/tags/v0.6.0.tar.gz",
592+
CN = "https://gitcode.com/mcpp-res/mcpp-plugins/releases/download/0.6.0/mcpp-plugins-0.6.0.tar.gz",
593+
},
594+
sha256 = "503594d5938a39709af98f606053b00caa275c5a9946c87e2ee98276c96aeb23",
595+
},
515596
["0.5.2"] = {
516597
url = {
517598
GLOBAL = "https://github.com/mcpp-community/mcpp-plugins/archive/refs/tags/v0.5.2.tar.gz",
@@ -610,7 +691,7 @@ package = {
610691
},
611692
sha256 = "adf1f9d6691a5d05a8a4a94e83c733ea39caee1510ce2c9af4cb23bebabea9f5",
612693
},
613-
["latest"] = { ref = "0.5.2" },
694+
["latest"] = { ref = "0.6.0" },
614695
},
615696
},
616697

0 commit comments

Comments
 (0)