Skip to content

Commit 3acfc8b

Browse files
authored
feat(xpkg): add libxpkg 0.0.44 (#69)
1 parent 5cdae1c commit 3acfc8b

3 files changed

Lines changed: 83 additions & 1 deletion

File tree

Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
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.

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ mcpp self config --mirror CN # 切换至国内镜像,默认使用 GLOBAL 上
3232

3333
| 形态 | 示例 |
3434
|------|------|
35-
| 原生模块库(Form A) | [`mcpplibs.tinyhttps`](pkgs/t/tinyhttps.lua) · [`tensorvia-cpu`](pkgs/t/tensorvia-cpu.lua) |
35+
| 原生模块库(Form A) | [`mcpplibs.xpkg`](pkgs/x/xpkg.lua) · [`mcpplibs.tinyhttps`](pkgs/t/tinyhttps.lua) · [`tensorvia-cpu`](pkgs/t/tensorvia-cpu.lua) |
3636
| C 源码 compat(含 `features`) | [`compat.cjson`](pkgs/c/compat.cjson.lua) · [`compat.zlib`](pkgs/c/compat.zlib.lua) |
3737
| header-only(含 `features`) | [`compat.eigen`](pkgs/c/compat.eigen.lua) |
3838
| 外部构建系统(`install()` 从源码构建) | [`compat.openblas`](pkgs/c/compat.openblas.lua)(Make) · [`compat.opencv`](pkgs/c/compat.opencv.lua)(CMake) |

pkgs/x/xpkg.lua

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,13 @@ package = {
1212

1313
xpm = {
1414
linux = {
15+
["0.0.44"] = {
16+
url = {
17+
GLOBAL = "https://github.com/openxlings/libxpkg/archive/refs/tags/v0.0.44.tar.gz",
18+
CN = "https://gitcode.com/mcpp-res/xpkg/releases/download/0.0.44/xpkg-0.0.44.tar.gz",
19+
},
20+
sha256 = "152a27425ba418312182bddb316c8c5bc636bbd8a37faf30e75390dc844e2e95",
21+
},
1522
["0.0.42"] = {
1623
url = {
1724
GLOBAL = "https://github.com/openxlings/libxpkg/archive/refs/tags/v0.0.42.tar.gz",
@@ -42,6 +49,13 @@ package = {
4249
},
4350
},
4451
macosx = {
52+
["0.0.44"] = {
53+
url = {
54+
GLOBAL = "https://github.com/openxlings/libxpkg/archive/refs/tags/v0.0.44.tar.gz",
55+
CN = "https://gitcode.com/mcpp-res/xpkg/releases/download/0.0.44/xpkg-0.0.44.tar.gz",
56+
},
57+
sha256 = "152a27425ba418312182bddb316c8c5bc636bbd8a37faf30e75390dc844e2e95",
58+
},
4559
["0.0.42"] = {
4660
url = {
4761
GLOBAL = "https://github.com/openxlings/libxpkg/archive/refs/tags/v0.0.42.tar.gz",
@@ -72,6 +86,13 @@ package = {
7286
},
7387
},
7488
windows = {
89+
["0.0.44"] = {
90+
url = {
91+
GLOBAL = "https://github.com/openxlings/libxpkg/archive/refs/tags/v0.0.44.tar.gz",
92+
CN = "https://gitcode.com/mcpp-res/xpkg/releases/download/0.0.44/xpkg-0.0.44.tar.gz",
93+
},
94+
sha256 = "152a27425ba418312182bddb316c8c5bc636bbd8a37faf30e75390dc844e2e95",
95+
},
7596
["0.0.42"] = {
7697
url = {
7798
GLOBAL = "https://github.com/openxlings/libxpkg/archive/refs/tags/v0.0.42.tar.gz",

0 commit comments

Comments
 (0)