Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # 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
# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
feature priority: medium To be resolved if time allows
Projects
None yet
1 participant