|
| 1 | +# Add libxpkg 0.0.44 to mcpp-index |
| 2 | + |
| 3 | +**Date**: 2026-07-12 |
| 4 | + |
| 5 | +**Package**: `mcpplibs.xpkg` |
| 6 | + |
| 7 | +**Upstream release**: `openxlings/libxpkg` `v0.0.44` |
| 8 | + |
| 9 | +**Upstream commit**: `343a1fd9a697ba868af209b43862899b05a580c8` |
| 10 | + |
| 11 | +## Package shape |
| 12 | + |
| 13 | +libxpkg is an external Form-A C++23 module repository. The release contains its |
| 14 | +own `mcpp.toml`; the index descriptor therefore remains a resource pointer and |
| 15 | +does not duplicate upstream build metadata. Version 0.0.44 exports the existing |
| 16 | +`mcpplibs.xpkg` module surface and adds the resource-normalization work required |
| 17 | +by xlings. |
| 18 | + |
| 19 | +No feature is added: this is a version registration for an upstream module |
| 20 | +package, not a source-gated optional component. |
| 21 | + |
| 22 | +## Resources and mirrors |
| 23 | + |
| 24 | +All three platforms use the same GitHub tag archive and SHA256: |
| 25 | + |
| 26 | +- GLOBAL: `https://github.com/openxlings/libxpkg/archive/refs/tags/v0.0.44.tar.gz` |
| 27 | +- CN: `https://gitcode.com/mcpp-res/xpkg/releases/download/0.0.44/xpkg-0.0.44.tar.gz` |
| 28 | +- SHA256: `152a27425ba418312182bddb316c8c5bc636bbd8a37faf30e75390dc844e2e95` |
| 29 | + |
| 30 | +The GLOBAL archive was downloaded independently twice. The CN release asset was |
| 31 | +uploaded from those exact bytes and then downloaded publicly: HTTP 200, equal |
| 32 | +size (127252 bytes), equal SHA256, and byte-identical by `cmp`. |
| 33 | + |
| 34 | +Version 0.0.43 is intentionally not registered. The ecosystem integration uses |
| 35 | +the final 0.0.44 release, which includes the target-platform context required by |
| 36 | +the xpkg normalization boundary. |
| 37 | + |
| 38 | +## Example decision |
| 39 | + |
| 40 | +No new workspace example is committed for this version-only update. `mcpplibs` |
| 41 | +is mcpp's default remote index name: the resolver can see an unpublished version |
| 42 | +through `[indices].mcpplibs.path`, but the fetch subprocess asks xlings for the |
| 43 | +same named registry and resolves the already-published remote tree. Giving the |
| 44 | +path index a different alias cannot find a descriptor whose declared namespace |
| 45 | +is `mcpplibs`. This is the same default-index local-override class that keeps the |
| 46 | +public `imgui` module outside the workspace in `validate.yml`. |
| 47 | + |
| 48 | +A local experiment reached this boundary after resolving the toolchain and then |
| 49 | +failed at `fetch 'mcpplibs.xpkg@0.0.44'`; therefore it is not presented as an |
| 50 | +end-to-end pass. Adding a git dependency would only test upstream and would not |
| 51 | +exercise this descriptor, so it would be misleading. The existing full |
| 52 | +workspace remains the regression gate; the new descriptor is covered directly |
| 53 | +by strict parsing, mirror validation, and resource byte verification. |
| 54 | + |
| 55 | +## Verification plan |
| 56 | + |
| 57 | +1. Parse `pkgs/x/xpkg.lua` with Lua and CI-pinned mcpp 0.0.87. |
| 58 | +2. Run the repository mirror lint and confirm the new CN URL is reachable. |
| 59 | +3. Run the repository's existing `mcpp test --workspace` CI matrix to prove the |
| 60 | + version addition does not regress current consumers. |
| 61 | +4. Open a PR and require all validation jobs to pass before merge. |
0 commit comments