Commit dea1f09
authored
0.12.0: omit_keys, a named web page, the engine's strip decision, rules-swift, and contributions from the resolved graph (#28)
* dist-web: options::page names the page (#649 P2)
* dist-apple: options::omit_keys leaves a defaulted Info.plist key out (#649 P1)
* dist-apk follows the engine's strip decision: --no-strip and --debug-symbols reach the packed libraries (#649 E5)
* rules-swift: one package's Swift sources compile into its images, with a generated header and the Swift runtime on the link (#647 E2)
* 0.12.0: the README states omit_keys, page, the engine's strip decision in dist-apk, and rules-swift
* dist-apk and dist-apple collect what the resolved graph's packages contribute; one JSON reader for both (#647 E1)
* dist-apk packs the libraries the engine staged as staged, and says so when keep_debug_symbols cannot restore them (#649 E5)
* rules-swift: the module's compilation declares its dependency file
The repository requires every rule to pass one: swiftc writes the same
Makefile-style file clang does, and without it a bridged header could change
with no rebuild.
* Two contributors naming one file: the closer one decides it, and one destination has one claimant
Review of the 0.12.0 branch before merge found the graph-contribution merge
inconsistent with the precedence its own documentation states.
`contributions` is ordered highest priority first: the application's own
libraries, then the graph's packages requesters first. The resources merge walks
it backwards, so a higher-priority contributor's resource overrides a lower
one's through `aapt2 -R`. The assets merge walked it forwards into
`collect_tree`, which copies with `overwrite_existing`, so the LAST write won
and the deepest dependency decided a file two packages name. Measured on the
fixture below: `assets/graph-asset.txt` held `from-the-deeper-library` where the
documented order gives `from-the-requester`. The walk is now backwards, for the
same reason the resources walk is.
`lib/<abi>/` is flat, so the application's own library, an archive's native
library of the same name, and a second archive's copy of it all address one
file. Each went through `place_library`, which emits a step whose id and output
are derived from the ABI and the leaf name: two claimants produced two steps
with one id writing one path. One destination now has one claimant, the first in
the priority order, and a later claim is reported by name rather than written.
`mcpp::plugins::json` decoded each `\u` escape on its own, so a code point above
U+FFFF -- which reaches JSON as a surrogate PAIR -- became two three-byte
sequences holding unpaired surrogates: not UTF-8, and silently wrong in whatever
`AndroidManifest.xml` or `Info.plist` the value was written into. Pairs are now
combined, and a surrogate that is not half of one is refused. mcpp's own writer
escapes only characters below 0x20 and passes UTF-8 through, so no producer
reaches this path today, which is why nothing reported it; the reader is shared
by `dist-apk` and `dist-apple` and should not corrupt what it cannot represent.
Criterion: `tests/apk-consumer-graph` gains `lib2/`, which `lib/` depends on, so
the two contribute one asset name at two distances. Leg (6) reads the packed
`assets/graph-asset.txt`. With the walk reverted it fails with
`from-the-deeper-library`; with it in place the five legs pass on 2026.9.16.1.
* CI builds against the released 2026.9.16.1, so the strip-decision legs run
`MCPP_VERSION` moves 2026.9.14.2 -> 2026.9.16.1, the release this collection's
0.12.0 members are written against.
The pin is what decides whether a leg runs or reports itself skipped.
`tests/apk-consumer` legs (m) and (n) -- `mcpp pack --no-strip` and
`--debug-symbols <dir>` reaching the packed libraries -- are gated inside the
script on an engine that publishes `MCPP_PACK_STRIP`, so under the old pin they
printed `skip: (m),(n) need an engine that publishes MCPP_PACK_STRIP` and the
member's central 0.12.0 change had no CI reading at all. It has one now.
The step's own comment carried a deferral that had already retired: it said the
Android packaging step was not yet green under the pinned version because
`kind = "app"` and `mcpp::min_platform_version()` are #622 engine additions.
The pin has been above that release since 2026.9.14.2. The note now states what
is true, and what the new pin adds.1 parent d6bee6a commit dea1f09
36 files changed
Lines changed: 1811 additions & 165 deletions
File tree
- .github/workflows
- dist
- rules
- src
- tests
- all-rules-compile
- apk-consumer-graph
- app-res/values
- lib2
- assets
- src
- lib
- assets
- res/values
- src
- src
- apk-consumer
- ios-app-consumer
- info-plist
- swift-consumer
- src
- swift
- web-consumer
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
44 | 44 | | |
45 | 45 | | |
46 | 46 | | |
47 | | - | |
| 47 | + | |
48 | 48 | | |
49 | 49 | | |
50 | 50 | | |
| |||
1249 | 1249 | | |
1250 | 1250 | | |
1251 | 1251 | | |
1252 | | - | |
1253 | | - | |
1254 | | - | |
1255 | | - | |
1256 | | - | |
| 1252 | + | |
| 1253 | + | |
| 1254 | + | |
| 1255 | + | |
| 1256 | + | |
| 1257 | + | |
1257 | 1258 | | |
1258 | 1259 | | |
1259 | 1260 | | |
| |||
1352 | 1353 | | |
1353 | 1354 | | |
1354 | 1355 | | |
| 1356 | + | |
| 1357 | + | |
| 1358 | + | |
| 1359 | + | |
| 1360 | + | |
| 1361 | + | |
| 1362 | + | |
| 1363 | + | |
| 1364 | + | |
| 1365 | + | |
| 1366 | + | |
| 1367 | + | |
| 1368 | + | |
1355 | 1369 | | |
1356 | 1370 | | |
1357 | 1371 | | |
| |||
2046 | 2060 | | |
2047 | 2061 | | |
2048 | 2062 | | |
| 2063 | + | |
| 2064 | + | |
| 2065 | + | |
| 2066 | + | |
| 2067 | + | |
| 2068 | + | |
| 2069 | + | |
| 2070 | + | |
| 2071 | + | |
| 2072 | + | |
| 2073 | + | |
| 2074 | + | |
2049 | 2075 | | |
2050 | 2076 | | |
2051 | 2077 | | |
| |||
Large diffs are not rendered by default.
Large diffs are not rendered by default.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
293 | 293 | | |
294 | 294 | | |
295 | 295 | | |
| 296 | + | |
| 297 | + | |
| 298 | + | |
| 299 | + | |
| 300 | + | |
| 301 | + | |
| 302 | + | |
| 303 | + | |
| 304 | + | |
| 305 | + | |
| 306 | + | |
| 307 | + | |
| 308 | + | |
| 309 | + | |
| 310 | + | |
| 311 | + | |
| 312 | + | |
| 313 | + | |
| 314 | + | |
| 315 | + | |
| 316 | + | |
| 317 | + | |
| 318 | + | |
| 319 | + | |
| 320 | + | |
| 321 | + | |
| 322 | + | |
| 323 | + | |
| 324 | + | |
296 | 325 | | |
297 | 326 | | |
298 | 327 | | |
| |||
662 | 691 | | |
663 | 692 | | |
664 | 693 | | |
665 | | - | |
666 | | - | |
667 | | - | |
668 | | - | |
| 694 | + | |
| 695 | + | |
| 696 | + | |
| 697 | + | |
| 698 | + | |
| 699 | + | |
| 700 | + | |
| 701 | + | |
| 702 | + | |
| 703 | + | |
| 704 | + | |
669 | 705 | | |
670 | 706 | | |
671 | 707 | | |
672 | 708 | | |
673 | | - | |
| 709 | + | |
674 | 710 | | |
675 | 711 | | |
676 | 712 | | |
677 | 713 | | |
678 | | - | |
| 714 | + | |
679 | 715 | | |
680 | 716 | | |
681 | 717 | | |
682 | 718 | | |
683 | | - | |
| 719 | + | |
684 | 720 | | |
685 | 721 | | |
686 | 722 | | |
687 | 723 | | |
688 | 724 | | |
689 | 725 | | |
690 | | - | |
691 | | - | |
| 726 | + | |
| 727 | + | |
692 | 728 | | |
693 | 729 | | |
694 | 730 | | |
695 | | - | |
| 731 | + | |
696 | 732 | | |
697 | 733 | | |
698 | 734 | | |
699 | | - | |
700 | | - | |
701 | | - | |
702 | | - | |
| 735 | + | |
| 736 | + | |
| 737 | + | |
| 738 | + | |
| 739 | + | |
703 | 740 | | |
704 | 741 | | |
705 | 742 | | |
| |||
938 | 975 | | |
939 | 976 | | |
940 | 977 | | |
| 978 | + | |
| 979 | + | |
| 980 | + | |
| 981 | + | |
941 | 982 | | |
942 | 983 | | |
943 | 984 | | |
944 | 985 | | |
945 | 986 | | |
946 | 987 | | |
947 | 988 | | |
948 | | - | |
| 989 | + | |
949 | 990 | | |
| 991 | + | |
| 992 | + | |
| 993 | + | |
| 994 | + | |
| 995 | + | |
| 996 | + | |
| 997 | + | |
| 998 | + | |
| 999 | + | |
| 1000 | + | |
| 1001 | + | |
| 1002 | + | |
| 1003 | + | |
| 1004 | + | |
| 1005 | + | |
| 1006 | + | |
| 1007 | + | |
| 1008 | + | |
| 1009 | + | |
| 1010 | + | |
| 1011 | + | |
| 1012 | + | |
| 1013 | + | |
| 1014 | + | |
| 1015 | + | |
| 1016 | + | |
| 1017 | + | |
| 1018 | + | |
| 1019 | + | |
| 1020 | + | |
| 1021 | + | |
| 1022 | + | |
| 1023 | + | |
| 1024 | + | |
| 1025 | + | |
| 1026 | + | |
| 1027 | + | |
| 1028 | + | |
| 1029 | + | |
| 1030 | + | |
| 1031 | + | |
| 1032 | + | |
| 1033 | + | |
| 1034 | + | |
| 1035 | + | |
| 1036 | + | |
| 1037 | + | |
| 1038 | + | |
| 1039 | + | |
| 1040 | + | |
| 1041 | + | |
| 1042 | + | |
| 1043 | + | |
| 1044 | + | |
| 1045 | + | |
| 1046 | + | |
| 1047 | + | |
| 1048 | + | |
| 1049 | + | |
| 1050 | + | |
| 1051 | + | |
| 1052 | + | |
| 1053 | + | |
| 1054 | + | |
| 1055 | + | |
| 1056 | + | |
| 1057 | + | |
| 1058 | + | |
| 1059 | + | |
| 1060 | + | |
| 1061 | + | |
| 1062 | + | |
| 1063 | + | |
| 1064 | + | |
| 1065 | + | |
| 1066 | + | |
| 1067 | + | |
| 1068 | + | |
| 1069 | + | |
| 1070 | + | |
| 1071 | + | |
| 1072 | + | |
| 1073 | + | |
| 1074 | + | |
| 1075 | + | |
| 1076 | + | |
| 1077 | + | |
| 1078 | + | |
950 | 1079 | | |
| 1080 | + | |
| 1081 | + | |
| 1082 | + | |
| 1083 | + | |
| 1084 | + | |
951 | 1085 | | |
952 | 1086 | | |
953 | 1087 | | |
| |||
0 commit comments