AcademySoftwareFoundation / OpenTimelineIO

Open Source API and interchange format for editorial timeline information.
http://opentimeline.io
Apache License 2.0
1.45k stars 287 forks source link

Add Apple Silicon/ARM wheels #1672

Closed reinecke closed 5 months ago

reinecke commented 11 months ago

Feature Request

We'd like to distribute Apple Silicon/ARM wheels.

Description

Right now, we're still building only classic x86_64 wheels for macOS and Apple Silicon users are forced to build from the source tarball. Ideally, we'd offer a range of prebuilt wheels that includes Apple Silicon where applicable.

Context

We've resisted this in the past because we didn't have a mechanism to test Apple Silicon artifacts to make sure they worked correctly, this looks like it may be solved now.

Checking the 0.17.0.dev1 release, we're already cross-compiling a universal binary for the python bindings:

% lipo -archs _otio.cpython-37m-darwin.so
x86_64 arm64

We also may look at reshuffling py_build_test and package_wheels - we could consider building all the wheels in one step (using x86_64 to cross-build an Apple Silicon wheel). And have a separate action that pulls down the wheels and runs the test suite against them in a matrix fashion. This way, only the test suite would run on an expensive Apple Silicon runner and the rest can happen on free runners.

References:

JeanChristopheMorinPerso commented 11 months ago

Cross linking https://github.com/AcademySoftwareFoundation/OpenTimelineIO/issues/1027

JeanChristopheMorinPerso commented 5 months ago

GitHub now provides free M1 runners. Runners starting from macos-14 are M1 only. See https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners/about-github-hosted-runners#standard-github-hosted-runners-for-public-repositories.