Uh oh!
There was an error while loading.Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork8.1k
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 ourterms of service andprivacy statement. We’ll occasionally send you account related emails.
Already on GitHub?Sign in to your account
Uh oh!
There was an error while loading.Please reload this page.
Conversation
QuLogic commentedJan 31, 2024
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. |
QuLogic commentedJan 31, 2024
I've de-conditionalized all optional GUI dependencies so I can verify whether they should be skipped or not. |
QuLogic commentedJan 31, 2024
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. |
QuLogic commentedJan 31, 2024
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, |
QuLogic commentedJan 31, 2024
Ah, looking at thepytest 8 changelog, xfails are now fully reported with backtraces. This seems far too noisy, and we may have to disable that. |
030f350 toe722c5fComparetacaswell commentedFeb 1, 2024
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. |
QuLogic commentedFeb 8, 2024
OK, I removed the debugging, and pushed the screen check to#27761. |
ffaf00e tod6169f8Compare6afde26 to154fba8CompareQuLogic commentedMar 28, 2024 • edited
Loading Uh oh!
There was an error while loading.Please reload this page.
edited
Uh oh!
There was an error while loading.Please reload this page.
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. |
QuLogic commentedMar 28, 2024
Because this fixes the wheel names, this is important to get in to 3.9 before the rc. |
Uh oh!
There was an error while loading.Please reload this page.
tacaswell commentedMar 29, 2024
I only half understand the comment in the svg backend. |
We are only interested in whether we emitted the warning, and don't careif the test segfaults or otherwise crashes. Thus it is better to checkthe output from the parent process, instead of `pytest.warns` in thesubprocess and checking the return code.
We aren't testing on macOS 10.12 any more, but macos-latest, which isnow macOS 12. Wheels for Python 3.12 should be available everywhere bynow as well.Only PySide2 remains conditional, as it is deprecated, but providesuniversal wheels that install but don't work on Python 3.12.
These are mostly just single bit changes in antialiasing portions ofdiagonal lines.
We currently special-case the SVG converter depending on if it usedfonttype='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 atconversion time), but on whether the SVG text contains the font styling[1]. This check for styling uses the _current_ version, which waschanged way back inmatplotlib#19253.These files were never re-generated though, and used the old version ofthe style, meaning the expected images never triggered the specialconverter. The result images are written with the current style, and_do_ trigger the special conveter.Evidentally, this never was a problem for most developers, becauseeveryone had DejaVu Sans installed globally, so the expected imagesmatched. However, on the clean macOS CI, it's not installed globally, sothe expected images get converted with the wrong font, and the testfails.[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 thedeployment target is correct. This would have been needed for a releaseanyway, but can be removed once meson-python 0.16.0 is out.
QuLogic commentedMar 29, 2024
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