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.
@joerick: The question of whether to default building both universal2 and arm64 on the arm runner is still open, in my mind. I'm still mostly of the opinion that building both is good, because universal2 packages are preferred in some contexts (e.g. distributable GUI apps), and that most packages are small and the extra build time isn't much of a hit. Of course, people building big libraries would be wise to change this to just build arm64.
@henryiii: Personally, I think the default should be native only. Eventually no one will care about Intel / universal and will only produce native binaries again. Also, there are still workarounds related to cross compiling for universal (like requiring all dependencies to also be universal). And we don鈥檛 support it yet, but there are two ways to make a universal binary, the default way and merging two native binaries. And finally universal vs. native is a choice, and I鈥檇 you pick universal, you don鈥檛 need native. You can always add tags for the native arch鈥檚 to a universal binary. And pip won鈥檛 even ever download universal if both native wheels exist.
So I鈥檇 recommend native being default, and only producing native binaries with it.
Let's get a decision on this before we release CirrusCI support, which would be our first officially supported arm64 CI.
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.