-
-
Notifications
You must be signed in to change notification settings - Fork 565
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
Build M-series (arm64) macOS wheels on GitHub Actions hosted runners #3789
Conversation
Note to self:
Not needed because we are not cross-compiling at this time. CMake sets the variable
We don't need dual-architecture 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.
We should start testing PyBaMM on M1 runners as well if we are going to be distributing them – I can do that in a follow-up PR, though I am not sure if #3140 (particle cracking submodels) has been resolved or not. |
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## develop #3789 +/- ##
========================================
Coverage 99.59% 99.59%
========================================
Files 257 257
Lines 20802 20802
========================================
Hits 20718 20718
Misses 84 84 ☔ View full report in Codecov by Sentry. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks, @agriyakhetarpal! This looks really good!
Also, all green ticks in this PR, nice! |
I put in a stop-gap fix for that ticket. I did not mark it as closed because all I did was adjust the grid. Not really a full fix or investigation. Having tests that would alert us sooner would probably make fixing stuff like that more visible and we could discuss closing that issue if we start testing more thoroughly on M-series hardware. |
Sure, happy to merge this after you can download and test a wheel or two (I tested them, they are working for me since the |
@agriyakhetarpal I downloaded the wheels to test them. I think they are working
|
…#3791) * Add macOS M1 runner configuration for PR and scheduled tests See #3789, #3462 * Add `macos-14` to test conditions * Exclude Python 3.8 and 3.9 for now from testing * Apply suggestions from code review Co-authored-by: Eric G. Kratz <[email protected]> * Remove some missed comments --------- Co-authored-by: Eric G. Kratz <[email protected]>
…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
…pybamm-team#3791) * Add macOS M1 runner configuration for PR and scheduled tests See pybamm-team#3789, pybamm-team#3462 * Add `macos-14` to test conditions * Exclude Python 3.8 and 3.9 for now from testing * Apply suggestions from code review Co-authored-by: Eric G. Kratz <[email protected]> * Remove some missed comments --------- Co-authored-by: Eric G. Kratz <[email protected]>
Description
GitHub Actions M1 runners are free for open-source repositories now – I have configured the PyPI workflow to add a job for these runners.
Important
The wheels can be tested on M-series hardware via the following link: https://github.com/pybamm-team/PyBaMM/actions/runs/7721068374/
Closes #3772, related to #3462
Type of change
Please add a line in the relevant section of CHANGELOG.md to document the change (include PR #) - note reverse order of PR #s. If necessary, also add to the list of breaking changes.
Key checklist:
$ pre-commit run
(or$ nox -s pre-commit
) (see CONTRIBUTING.md for how to set this up to run automatically when committing locally, in just two lines of code)$ python run-tests.py --all
(or$ nox -s tests
)$ python run-tests.py --doctest
(or$ nox -s doctests
)You can run integration tests, unit tests, and doctests together at once, using
$ python run-tests.py --quick
(or$ nox -s quick
).Further checks: