Skip to content

Add Apple Silicon Python wheels - #291

Open
jsturtevant wants to merge 7 commits into
mainfrom
jsturtevant-macos-python-wheels
Open

jsturtevant wants to merge 7 commits into
mainfrom
jsturtevant-macos-python-wheels

Conversation

@jsturtevant

@jsturtevant jsturtevant commented Nov 11, 2026 •

Copy link
Copy Markdown
Contributor

Build and publish macOS ARM64 backend and guest wheels, with installed-wheel tests on HVF for Python 3.10-3.15. Platform-tagged guest wheels prevent an ARM64 install from selecting x86-64 AOT guests.

Packages include the signed developer helper from #296, so Python does not need to be re-signed. macOS support is developer-only.

macOS setup repairs an unlinked LLVM installation. Helper staging uses a streaming copy to reduce startup memory use. The macOS regression measured 120 MiB of extra resident memory per pool before this change.

Depends on #296; followed by #293.

@jsturtevant
jsturtevant force-pushed the jsturtevant-macos-python-wheels branch from 37b3bc4 to 3e7f4a8 Compare November 11, 2026 20:07
@jsturtevant
jsturtevant added this pull request to stack #292 November 11, 2026 20:07
@jsturtevant
jsturtevant force-pushed the jsturtevant-macos-python-wheels branch from 3e7f4a8 to 572090f Compare November 11, 2026 21:40
@jsturtevant
jsturtevant force-pushed the jsturtevant-macos-python-wheels branch from 572090f to e6b0db4 Compare November 11, 2026 22:18
@jsturtevant
jsturtevant removed this pull request from stack #292 November 11, 2026 23:57
@jsturtevant
jsturtevant added this pull request to stack #295 November 11, 2026 23:57
Base automatically changed from jsturtevant-pin-wasm-macos-support to main November 12, 2026 00:01
@jsturtevant
jsturtevant force-pushed the jsturtevant-macos-python-wheels branch 2 times, most recently from ac2d694 to 8763a54 Compare November 12, 2026 03:27
@jsturtevant
jsturtevant removed this pull request from stack #295 November 12, 2026 03:28
@jsturtevant
jsturtevant changed the base branch from main to jsturtevant-dev-sandbox-host November 12, 2026 03:28
@jsturtevant
jsturtevant added this pull request to stack #297 November 12, 2026 03:28
@jsturtevant
jsturtevant force-pushed the jsturtevant-macos-python-wheels branch 4 times, most recently from a1279fe to 95119ed Compare November 12, 2026 17:28
@jsturtevant
jsturtevant force-pushed the jsturtevant-macos-python-wheels branch 3 times, most recently from aec8d8a to 14ae400 Compare November 12, 2026 22:37
@jsturtevant
jsturtevant force-pushed the jsturtevant-macos-python-wheels branch 2 times, most recently from 44e4da5 to 1466b0a Compare November 12, 2026 23:11
Base automatically changed from jsturtevant-dev-sandbox-host to main November 12, 2026 23:56
jsturtevant added a commit that referenced this pull request Nov 12, 2026
Run macOS SDK sandboxes in a signed Rust surrogate so Python and dotnet
do not need to be re-signed. Follow HIP-0004 with one sandbox per
surrogate, a bounded reusable pool, postcard frames over an inherited
socket, proxied tools, and file-backed snapshots.

This is developer-only support. macOS SDKs use this path by default;
Linux Rust callers can opt in to the process API. Other SDK defaults
stay unchanged. Windows transport is not included.

Native stack: #296 → #291 (Python wheels) → #293 (NuGet packages).

---------

Signed-off-by: James Sturtevant <jsturtevant@gmail.com>
Signed-off-by: James Sturtevant <jsturtevant@gmail.com>
Signed-off-by: James Sturtevant <jsturtevant@gmail.com>
Provide opt-in Just commands for checking GitHub Actions workflows without adding CI jobs or requiring actionlint for the other lint checks.

Signed-off-by: James Sturtevant <jsturtevant@gmail.com>

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟢 Approval recommended

No active review issues are reported for the developer-only Apple Silicon Python wheel changes.

No open issues 🎉

What changed in this PR

Adds developer-only Apple Silicon Python wheels, building on the signed macOS surrogate so Python itself does not need re-signing.

Changes:

  • Builds platform-tagged guest wheels to prevent ARM64 installations from selecting x86-64 AOT guests.
  • Adds macOS ARM64 wheel builds and installed-wheel tests on HVF for Python 3.10–3.15, integrated into CI and publishing.
  • Strengthens wheel-test isolation, documents macOS support, and adds workflow linting recipes.
File Description
src/​sdk/​python/​Justfile Uses platform-tagged guest builds and isolated tests across supported Python versions.
src/​sdk/​python/​core/​README.md Documents developer-only macOS 13+ support and the signed helper.
scripts/​build_guest_wheels.py Builds guest wheels with architecture-specific platform tags.
Justfile Exposes the workflow tooling module.
.github/​workflows/​python-macos.yml Builds and tests Apple Silicon wheels on an HVF runner.
.github/​workflows/​publish.yml Requires macOS wheel builds before publishing combined artifacts.
.github/​workflows/​ci.yml Adds the reusable macOS wheel workflow to CI.
.github/​Justfile Adds recipes to install and run actionlint.
.github/​actionlint.yaml Registers the custom hvf runner label for linting.

Review effort: Balanced

Signed-off-by: James Sturtevant <jsturtevant@gmail.com>
Signed-off-by: James Sturtevant <jsturtevant@gmail.com>
Signed-off-by: James Sturtevant <jsturtevant@gmail.com>
Signed-off-by: James Sturtevant <jsturtevant@gmail.com>

This branch has not been deployed

No deployments
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.

2 participants