|
| 1 | +# Add Galay 5.0.0 (`gzj-creator.galay`) |
| 2 | + |
| 3 | +Date: 2026-08-29 |
| 4 | +Upstream: <https://github.com/gzj-creator/galay> |
| 5 | +Tag: `v5.0.0` (`a9e81ce8239695a8dae68314ee991339839d5409`) |
| 6 | +Status: local Linux validation passed with mcpp 2026.8.27.1 and the CI-pinned 2026.8.27.2 check. |
| 7 | + |
| 8 | +## 1. Shape and identity |
| 9 | + |
| 10 | +Galay is source type (b), a library already developed for mcpp. Its v5.0.0 |
| 11 | +release carries a complete `mcpp.toml`, so the index entry is Form A and does |
| 12 | +not duplicate its build recipe. |
| 13 | + |
| 14 | +- Package identity: `namespace = "gzj-creator"`, `name = "galay"`. The |
| 15 | + namespace names the upstream owner; the package name remains one atomic |
| 16 | + segment. |
| 17 | +- The upstream manifest builds the default `galay.utils` and `galay.kernel` |
| 18 | + named modules plus their C++ implementations. SSL, HTTP, WebSocket, HTTP/2, |
| 19 | + database, RPC, MCP, and tracing sources remain opt-in features in that |
| 20 | + manifest, with the corresponding feature dependencies preserved. |
| 21 | +- The release manifest declares `platforms = ["linux", "macos"]`. The index |
| 22 | + therefore publishes `linux` and `macosx` entries only; Windows is omitted |
| 23 | + until the upstream manifest gains a Windows-compatible build. |
| 24 | +- License and description are taken from the upstream manifest: Apache-2.0, |
| 25 | + C++23 coroutine networking and protocol framework. |
| 26 | + |
| 27 | +## 2. Source and hash |
| 28 | + |
| 29 | +Both platform entries use the immutable GitHub tag archive: |
| 30 | + |
| 31 | + https://github.com/gzj-creator/galay/archive/refs/tags/v5.0.0.tar.gz |
| 32 | + |
| 33 | +The archive is 5,227,585 bytes. `sha256sum` was run twice on the complete |
| 34 | +archive and returned: |
| 35 | + |
| 36 | + 8e410d97b0615333c92192633f9495acdc8eb1d56dd94f1eeecd8e68e5a4f73e |
| 37 | + |
| 38 | +`tar -tzf` succeeds and confirms the root `mcpp.toml`, the tracked include |
| 39 | +layout, and the fifteen named C++23 module interfaces are present. |
| 40 | + |
| 41 | +## 3. CN mirror |
| 42 | + |
| 43 | +`gtc` is not installed in this environment and no GitCode write credential is |
| 44 | +available. Following `docs/cn-mirror.md`, the descriptor uses the plain GLOBAL |
| 45 | +URL rather than inventing a mirror table. CN consumers fall back to GitHub; |
| 46 | +the `mcpp-res/galay` mirror can be added later without changing the package |
| 47 | +identity or version. |
| 48 | + |
| 49 | +## 4. Workspace member |
| 50 | + |
| 51 | +`tests/examples/galay` is a Unix-gated public-package consumer. Its member |
| 52 | +manifest has exactly one project index redirect: |
| 53 | + |
| 54 | + [indices] |
| 55 | + gzj-creator = { path = "../../.." } |
| 56 | + |
| 57 | +The test imports `galay.utils` and `galay.kernel`, checks Base64 and string |
| 58 | +helpers, links the out-of-line `kernel::Buffer` implementation, and validates |
| 59 | +IPv4 `kernel::Host` construction. Windows compiles a no-op `main()` because |
| 60 | +the upstream package has no Windows platform entry. |
| 61 | + |
| 62 | +The first RED run failed as expected before the descriptor existed: |
| 63 | + |
| 64 | + error: dependency 'gzj-creator.galay': no package found for exact selector |
| 65 | + |
| 66 | +After adding the descriptor, the first executable run caught an incorrect |
| 67 | +assumption about `Buffer::clear()` retaining its length; the assertion was |
| 68 | +changed to require the documented empty state. The corrected test then passed. |
| 69 | + |
| 70 | +## 5. Validation |
| 71 | + |
| 72 | +- `mcpp xpkg parse pkgs/g/gzj-creator.galay.lua` passed with the Form-A result |
| 73 | + and Linux/macOS version lists. |
| 74 | +- `mcpp test -p galay` passed with mcpp 2026.8.27.1 after a cold build: |
| 75 | + `test result ok. 1 passed; 0 failed`. |
| 76 | +- The CI-pinned `mcpp 2026.8.27.2` test also passed offline: |
| 77 | + `test result ok. 1 passed; 0 failed`. |
| 78 | +- The build compiled 26 Galay units, including both default module interfaces, |
| 79 | + the kernel implementation units, and the transitive libaio package. |
| 80 | +- All six descriptor lint checks passed, and all 134 package descriptors passed |
| 81 | + `mcpp xpkg parse` with the CI-pinned binary. |
| 82 | +- Optional Galay features are intentionally not enabled by this minimal |
| 83 | + member. They remain upstream-owned feature/dependency decisions and need |
| 84 | + dedicated protocol/database environments before being advertised as tested. |
| 85 | + |
| 86 | +## 6. Follow-up |
| 87 | + |
| 88 | +When upstream publishes Windows support or a maintainer creates the |
| 89 | +`mcpp-res/galay` release asset, add the platform/mirror entry with the same |
| 90 | +archive bytes and keep the version at `5.0.0` only if the bytes remain |
| 91 | +identical; otherwise publish a new upstream version/tag. |
0 commit comments