-
-
Notifications
You must be signed in to change notification settings - Fork 7.9k
ci: Enable testing on M1 macOS #27723
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
Conversation
Minimum Python available there is 3.10 now, so bumped that up. It looks like We do seem to be getting a lot more failures here than we did when trying Cirrus in #24597. |
I've de-conditionalized all optional GUI dependencies so I can verify whether they should be skipped or not. |
The results are the following:
Most are available everywhere. The PyGObject 3/4 split doesn't have any effect, as the dependencies are the same either way (the only difference is the native dependency.) Only PyGObject 4 on macOS 14 arm64 is missing wheels, but appears to be available regardless after building them. PySide2 on Python 3.12 installs a wheel, but crashes. I believe PySide2 is no longer supported so they didn't bother fixing it for Python 3.12, and because it's some kind of universal thing, it still installed. On the other hand the M1 was new enough that there were no wheels for it. |
I rebased #24597 for comparison, and it doesn't seem to fail nearly as many tests. I can't see any tolerance issues at all. For a reason I don't understand, |
Ah, looking at the pytest 8 changelog, xfails are now fully reported with backtraces. This seems far too noisy, and we may have to disable that. |
030f350
to
e722c5f
Compare
That is the result for me running over ssh with:
The account I was logged in via and the account I was ssh'd to were the same. My guess is that being logged in as a different user on the screen would still result in no screens being reported via ssh (but I have not tested that if we care I can). We should definitely adapt this and use it the same way we use the "do we have a screen" check on linux to auto fallback to Agg. |
OK, I removed the debugging, and pushed the screen check to #27761. |
ffaf00e
to
d6169f8
Compare
6afde26
to
154fba8
Compare
We decided to xfail the Also, contrary to our call @ksunden / @tacaswell, I decided to keep the native arm64 build here. In fact, the cross-compiled one is brokenly-named as well, so we need to fix it one way or the other, and might as well do it now. |
Because this fixes the wheel names, this is important to get in to 3.9 before the rc. |
I only half understand the comment in the svg backend. |
We are only interested in whether we emitted the warning, and don't care if the test segfaults or otherwise crashes. Thus it is better to check the output from the parent process, instead of `pytest.warns` in the subprocess and checking the return code.
We aren't testing on macOS 10.12 any more, but macos-latest, which is now macOS 12. Wheels for Python 3.12 should be available everywhere by now as well. Only PySide2 remains conditional, as it is deprecated, but provides universal wheels that install but don't work on Python 3.12.
These are mostly just single bit changes in antialiasing portions of diagonal lines.
We currently special-case the SVG converter depending on if it used fonttype='none', and use one that has our base fonts available. However, this is not based on the rcParam setting (because we don't have that at conversion time), but on whether the SVG text contains the font styling [1]. This check for styling uses the _current_ version, which was changed way back in matplotlib#19253. These files were never re-generated though, and used the old version of the style, meaning the expected images never triggered the special converter. The result images are written with the current style, and _do_ trigger the special conveter. Evidentally, this never was a problem for most developers, because everyone had DejaVu Sans installed globally, so the expected images matched. However, on the clean macOS CI, it's not installed globally, so the expected images get converted with the wrong font, and the test fails. [1] https://github.com/matplotlib/matplotlib/blob/de1102668dbc0694e98653bd17641e9d99394e57/lib/matplotlib/testing/compare.py#L303
Now that we are running a (simple) test, we'll have to ensure the deployment target is correct. This would have been needed for a release anyway, but can be removed once meson-python 0.16.0 is out.
I made some edits to those comments. |
PR summary
Just added in beta today:
https://github.blog/changelog/2024-01-30-github-actions-introducing-the-new-m1-macos-runner-available-to-open-source/
Need to see which of the optional dependencies are okay with this.
PR checklist