manifest: add python + node tool registrations (closes #931, #932, #933, #944)#947
Open
zackees wants to merge 1 commit into
Open
manifest: add python + node tool registrations (closes #931, #932, #933, #944)#947zackees wants to merge 1 commit into
zackees wants to merge 1 commit into
Conversation
…, #944) Adds two new tool entries to soldr's manifest branch — first wave of the bootstrap-completeness work tracked in #930. Both follow the existing cargo-zigbuild/manifest.json pointer-manifest pattern (URLs point at upstream releases; sha256 verified against upstream checksum files). python/manifest.json Tool: python (astral-sh/python-build-standalone, tag 20260610, cpython 3.13.14) Covers all 8 canonical triples — Windows MSVC (x64/arm64), Apple darwin (x64/arm64), Linux gnu/musl (x64/arm64). install_only tarball layout gives consumers Python.h headers, libpython3.13.{so,dylib}, and python3.lib on Windows in one fetch per target. Addresses sub-issues: #931 Windows python3.lib (per arch) #932 Python 3 headers + libs for darwin #933 Python 3 headers + libs for linux gnu/musl node/manifest.json Tool: node (nodejs/node, tag v22.23.0) Covers Windows node.lib for x64 + arm64 + x86 (legacy), plus the platform-agnostic headers tarball (node.h, napi.h). Sourced from nodejs.org/dist/ — note that Node publishes win-<arch>/node.lib outside the GitHub release attachments, so the URLs point at nodejs.org rather than github.com. Addresses sub-issue: #944 Node.js node.lib for native addon cross-compile Top-level manifest.json Registers both new tools alongside the existing cargo-chef, cargo-xwin, cargo-zigbuild, crgx, zccache, apple-sdk entries. schema_version unchanged (still 5 — same shape as the others). asset-index.json Appends 12 new flat entries (8 Python triples + 3 Node arches + 1 headers tarball). Total entries: 343 -> 355. Follow-up work tracked in #930: - The build_manifest.py script on main does not yet know about these two tools, so a future PR against main will teach it (probably with a pluggable source-type: github-releases vs nodejs-dist vs direct-url). Until that lands, these entries are maintained by hand on this branch. - Bundling additional Python versions (3.10, 3.11, 3.12) is a future concern — single-version is enough to unblock #931/#932/#933 on the canonical pin. - Additional Node LTS lines (18, 20) similarly future. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Part of #930 bootstrap meta. First wave of asset registrations on the
manifestbranch — addresses the four cleanest sub-issues (no producer infrastructure needed, just pointer manifests against well-hosted upstreams).Summary
Adds two new tool entries to the manifest branch, following the existing
cargo-zigbuild/manifest.jsonpointer-manifest pattern:pythonnodewin-<arch>/node.lib+ headers tarballFiles changed
python/manifest.json— cpython 3.13.14 (release tag20260610), 8 platforms, each with sha256-verified URL pointing at github.com/astral-sh/python-build-standalone/releases.node/manifest.json— Node v22.23.0, 3 Windows arches (x64/arm64/x86), each with sha256-verified URL pointing at nodejs.org/dist + the platform-agnostic headers tarball.manifest.json— registerspythonandnodein the top-leveltoolsmap.asset-index.json— appends 12 new flat entries (8 Python + 3 Node libs + 1 Node headers).Why pointer manifests (not mirrored binaries)
cargo-zigbuild/manifest.jsonwhich already does the same (URLs point at github.com/rust-cross/cargo-zigbuild/releases).SHA256 provenance
Python hashes pulled from
https://github.com/astral-sh/python-build-standalone/releases/download/20260610/SHA256SUMS. Node hashes pulled fromhttps://nodejs.org/dist/v22.23.0/SHASUMS256.txt. Sizes are the raw content-length from aHEADagainst each URL.What this PR does NOT do
.github/scripts/build_manifest.pyon main. That script currently knows only about GitHub-Releases-shaped tools; teaching it about python-build-standalone and nodejs.org/dist is a follow-up PR against main. Until that lands, these entries are hand-maintained on this branch — but the file shapes are wire-compatible with what the script produces for the other tools, so a future merge is straightforward.prepare, cargo-front-door PYO3 auto-set, andsoldr envsubcommand are tracked in bootstrap: new soldr env --target <triple> subcommand (export SDKROOT, PYO3_CROSS_*) #938/bootstrap: auto-set PYO3_CROSS_* when cargo front door detects PyO3 in workspace #939/etc. and need code changes against main. This PR just stages the assets so those consumers have something to fetch.Verification
Schema-equivalent to
cargo-zigbuild/manifest.json— same top-level keys (tool,owner,repo,tag,version,name,draft,prerelease,created_at,published_at,release_html_url,platforms,assets).Test plan
curl -fsSLI <one of the URLs from python/manifest.json>returns the expected Content-Length matching the manifest'ssizefield.manifest.jsonschema_version is still 5 (no breaking change).🤖 Generated with Claude Code