Repository navigation
Add Apple Silicon Python wheels - #291
Open
jsturtevant wants to merge 7 commits into
Open
jsturtevant wants to merge 7 commits into
jsturtevant wants to merge 7 commits into
Conversation
jsturtevant
force-pushed
the
jsturtevant-macos-python-wheels
branch
from
November 11, 2026 20:07
37b3bc4 to
3e7f4a8
Compare
jsturtevant
force-pushed
the
jsturtevant-macos-python-wheels
branch
from
November 11, 2026 21:40
3e7f4a8 to
572090f
Compare
jsturtevant
force-pushed
the
jsturtevant-macos-python-wheels
branch
from
November 11, 2026 22:18
572090f to
e6b0db4
Compare
jsturtevant
force-pushed
the
jsturtevant-macos-python-wheels
branch
2 times, most recently
from
November 12, 2026 03:27
ac2d694 to
8763a54
Compare
jsturtevant
changed the base branch from
main
to
jsturtevant-dev-sandbox-host
November 12, 2026 03:28
jsturtevant
force-pushed
the
jsturtevant-macos-python-wheels
branch
4 times, most recently
from
November 12, 2026 17:28
a1279fe to
95119ed
Compare
jsturtevant
force-pushed
the
jsturtevant-macos-python-wheels
branch
3 times, most recently
from
November 12, 2026 22:37
aec8d8a to
14ae400
Compare
jsturtevant
force-pushed
the
jsturtevant-macos-python-wheels
branch
2 times, most recently
from
November 12, 2026 23:11
44e4da5 to
1466b0a
Compare
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>
jsturtevant
force-pushed
the
jsturtevant-macos-python-wheels
branch
from
November 12, 2026 23:56
1466b0a to
b9970c3
Compare
Contributor
There was a problem hiding this comment.
🟢 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
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.
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.