cibuildwheel
cibuildwheel copied to clipboard
Update macOS "What to provide" guidance
Description
The FAQ says "Generally speaking, because Pip 20.3 is required for the universal2 wheel, most packages should provide both x86_64 and one of universal2/arm64 wheels. When Pip 20.3+ is common on macOS, then it might be possible to ship only the universal2 wheel."
Is Pip 20.3+ now common enough on macOS? I think the answer is yes, since a few paragraphs above it says that Pip 20.3+ is required to install an x86_64 binary wheel on Big Sur and above, and Big Sur was released in 2020. The only time you'd be able to install an x86_64 binary wheel but unable to install a universal2 one would be if you were running a 5+ year old operating system on an intel mac (and have not updated pip in that time).
I think this recommendation can be updated to specify that the two reasonable options are either universal2 alone, or x86_64 and arm64, and remove references to the combination of x86_64 and universal2.
Build log
No response
CI config
No response
That's really not accurate anyway, you can actually just tag a wheel instead of making multiple wheels. With scikit-build-core, that's just:
[tool.scikit-build]
wheel.expand-macos-universal-tags = true
It's still a choice though if you want dual wheels or a universal wheel; especially with native runners now, I think quite a few packages go with dual wheels.
You can merge a wheel into a universal wheel, which someone should research and put a guide on probably.
especially with native runners now, I think quite a few packages go with dual wheels.
Dual wheels are appealing because that's what we're doing on linux and windows. But the native runner issue will turn the other way one day as the intel macOS runners are decommissioned (I haven't seen any public timelines from github but patterns from older macOS images suggest macos-13 could be gone in less than a year, and they haven't made newer images for intel hardware).
GitHub now has a public timeline and you were correct with "gone in less than a year":
macos-13is closing downThe macOS 13 hosted runner image is closing down, following our N-1 OS support policy. This process will begin September 1, 2025, and the image will be fully retired on November 14, 2025. We recommend updating workflows to use
macos-14ormacos-15.
https://github.blog/changelog/2025-07-11-upcoming-changes-to-macos-hosted-runners-macos-latest-migration-and-xcode-support-policy-updates/
It looks like this has been done. The docs in question have been moved to https://cibuildwheel.pypa.io/en/stable/platforms/#what-to-provide and no longer have the warnings about "when Pip 20.3 is common".