Skip to content

manifest: add python + node tool registrations (closes #931, #932, #933, #944)#947

Open
zackees wants to merge 1 commit into
manifestfrom
add-python-and-node-manifests
Open

manifest: add python + node tool registrations (closes #931, #932, #933, #944)#947
zackees wants to merge 1 commit into
manifestfrom
add-python-and-node-manifests

Conversation

@zackees

@zackees zackees commented Jun 22, 2026

Copy link
Copy Markdown
Owner

Part of #930 bootstrap meta. First wave of asset registrations on the manifest branch — 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.json pointer-manifest pattern:

Tool Upstream Asset shape Sub-issues
python astral-sh/python-build-standalone install_only tarball for all 8 canonical triples #931, #932, #933
node nodejs/node (nodejs.org/dist) win-<arch>/node.lib + headers tarball #944

Files changed

  • python/manifest.json — cpython 3.13.14 (release tag 20260610), 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 — registers python and node in the top-level tools map.
  • asset-index.json — appends 12 new flat entries (8 Python + 3 Node libs + 1 Node headers).

Why pointer manifests (not mirrored binaries)

  • python-build-standalone publishes ~853 assets per release on github.com — well-CDN'd, stable URLs, sha256 sums published. Mirroring would add ~660 MB to this branch.
  • nodejs.org/dist has been the canonical Node distribution for 15+ years; stable URLs, SHASUMS256.txt sidecar.
  • Pattern matches cargo-zigbuild/manifest.json which already does the same (URLs point at github.com/rust-cross/cargo-zigbuild/releases).
  • If upstream reliability becomes an issue, mirroring is a future, additive PR — no migration needed.

SHA256 provenance

Python hashes pulled from https://github.com/astral-sh/python-build-standalone/releases/download/20260610/SHA256SUMS. Node hashes pulled from https://nodejs.org/dist/v22.23.0/SHASUMS256.txt. Sizes are the raw content-length from a HEAD against each URL.

What this PR does NOT do

Verification

python3 -c "
import json
d = json.load(open('python/manifest.json'))
print('platforms:', sorted(d[0]['platforms'].keys()))
"
# → ['darwin-arm64', 'darwin-x64', 'linux-arm64-gnu', 'linux-arm64-musl',
#    'linux-x64-gnu', 'linux-x64-musl', 'windows-arm64-msvc', 'windows-x64-msvc']

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

  • CI on the manifest branch (if any — most checks are on main).
  • Spot-check: curl -fsSLI <one of the URLs from python/manifest.json> returns the expected Content-Length matching the manifest's size field.
  • Verify top-level manifest.json schema_version is still 5 (no breaking change).

🤖 Generated with Claude Code

…, #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>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant