Skip to content

Should arm64 runners build both universal2 and arm64 wheels by default?#1204

Description

@joerick

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.

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions