-
Notifications
You must be signed in to change notification settings - Fork 239
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Should arm64 runners build both universal2 and arm64 wheels by default? #1204
Comments
Notably, numpy doesn't distribute universal2 wheels currently. There's some discussion about that here: numpy/numpy#20787 |
Regarding wheel fusing (I had to look this up) - multibuild's implementation is here: It uses a tool built into delocate called delocate-fuse, called like I don't know how well this works, it seems like there could be cases where this fails (particularly I'm wondering what happens we hit the |
The other thing that's on my mind is whether we're even doing the universal2 thing at the right stage of the packaging process. As we know, universal2 wheels are ignored by pip when a native one is present. Packaged macOS apps are a pretty small percentage of Python deployment. If fusing is indeed possible, do we really need the universal2 wheels on PyPI at all? Can we push wheel fusing down the process to a distribution tool like py2app or pyinstaller? As @mattip says in the numpy thread linked above:
I suppose the only downside to this is that project-built universal2 wheels have the chance to be tested before release, whereas I might not be as confident in using a universal2 wheel that was fused 'in the wild'. I suppose that depends on how reliable the 'fuse' process is. A final thought - is wheel fusing the only option for macOS packagers? Could they build/distribute separate x86_64 and arm64 versions? |
+1 from me, until there is a real user-side demand for universal wheels. |
IMO, this means (for cibuildwheel) that we should never build PS: I would also recommend retagging a universal2 wheel like |
What are "AS runners" and "AS wheels"? The plan sounds reasonable in any case. |
AS is probably short for Apple Silicon. |
Continuing the discussion from #1191 (comment)
The current situation is that arm64 runners builds universal2 and arm64 by default. This discussion is whether we change that to just arm64.
Let's get a decision on this before we release CirrusCI support, which would be our first officially supported arm64 CI.
The text was updated successfully, but these errors were encountered: