Skip to content
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

Use self-hosted macOS M2 runner to build macOS arm64 or universal wheels #3772

Closed
agriyakhetarpal opened this issue Jan 28, 2024 · 1 comment · Fixed by #3789
Closed

Use self-hosted macOS M2 runner to build macOS arm64 or universal wheels #3772

agriyakhetarpal opened this issue Jan 28, 2024 · 1 comment · Fixed by #3789
Assignees
Labels
feature priority: medium To be resolved if time allows

Comments

@agriyakhetarpal
Copy link
Member

agriyakhetarpal commented Jan 28, 2024

@BradyPlanden and I, in conversation about the usage of the runner for the repository – have decided to look into building wheels for M-series platforms starting with PyBaMM v24.5rcX. This is since cross-compilation for SuiteSparse requires at least a version of 7.2.1, and we support 6.0.3, so we might not be able to do that yet on the standard GitHub Actions runners (see #3462).

In this scenario, this requires setting up a job in the PyPI workflows where the wheels can be built and passed as artifacts to the job that uploads them.

Whether to build a universal macOS wheel or an architecture-specific wheel can be discussed based on the wheel tags we are able to achieve, the macOS X version constraints for such wheels, and the size of the binaries generated.

@agriyakhetarpal
Copy link
Member Author

From @Saransh-cpp on Slack: https://github.blog/changelog/2024-01-30-github-actions-introducing-the-new-m1-macos-runner-available-to-open-source/

We can use GitHub Actions M1 runners for building the wheels since an ephemeral CI system will be preferred. We can continue to use the self-hosted M2 runner for testing purposes, though – it is certainly faster than regular runners.

kratman pushed a commit that referenced this issue Jan 31, 2024
…3789)

* Add configuration for macOS arm64 wheels

See #3772

* Build on Python 3.10+ for now

* Possibly incorrect version string parsing

* Missed adding link for `pybind11`

* pipx invocation is missing, installed by default on other runners

* Add user-facing CHANGELOG entry about M-series wheels

Python 3.8 wheels cannot be tested on arm64 devices but Python 3.9+ wheels can be. It would be a good idea to test all wheels across all Python versions.

* Add `always()` condition to ensure job will run
js1tr3 pushed a commit to js1tr3/PyBaMM that referenced this issue Aug 12, 2024
…ybamm-team#3789)

* Add configuration for macOS arm64 wheels

See pybamm-team#3772

* Build on Python 3.10+ for now

* Possibly incorrect version string parsing

* Missed adding link for `pybind11`

* pipx invocation is missing, installed by default on other runners

* Add user-facing CHANGELOG entry about M-series wheels

Python 3.8 wheels cannot be tested on arm64 devices but Python 3.9+ wheels can be. It would be a good idea to test all wheels across all Python versions.

* Add `always()` condition to ensure job will run
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature priority: medium To be resolved if time allows
Projects
None yet
1 participant