-
-
Notifications
You must be signed in to change notification settings - Fork 7.9k
Always use PyQT/PySide6 for GitHub CI #23597
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
2f9da0c
to
77439f1
Compare
@@ -70,6 +72,8 @@ def test_bold_font_output(): | |||
ax.set_title('bold-title', fontweight='bold') | |||
|
|||
|
|||
@pytest.mark.skipif(sys.platform == 'darwin', | |||
reason="Fails on darwin") |
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.
This is related to the svg to png conversion. The resulting svg file is identical to a local test, but the png is slightly different.
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.
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.
I think this will be fixed by one of the last commits in #23559 which adds quotes to the font name in the expected svg.
I think they were always mal-formed (missing quotes on the family name), but inkscape (probably actually librsvg) is getting crankier about it. At some point we fixed the bug of not putting in quotes so the rest image is correct and the expected image is wrong 🤦🏻 .
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.
I think this will be fixed by one of the last commits in #23559 which adds quotes to the font name in the expected svg.
Seems like that didn't help. Should I simply go back to skipping (or possible better xfail-ing if that can be done on a platform-specific basis)?
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.
xfail for now and I'll look into if I can reproduce this on a local mac.
@@ -114,6 +114,7 @@ def interrupter(): | |||
print('SUCCESS', flush=True) | |||
|
|||
|
|||
@pytest.mark.skipif(sys.platform == 'darwin', reason="Does not work on darwin") |
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.
Possibly the wrong signal is sent on OSX?
69e4d77
to
debf525
Compare
@@ -114,6 +114,7 @@ def interrupter(): | |||
print('SUCCESS', flush=True) | |||
|
|||
|
|||
@pytest.mark.xfail(sys.platform == "darwin", reason='Fails on OSX') |
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.
I don't think this should fail on darwin? It may on CI, but I think we should put that somewhere else if possible... Especially because this will fail me locally.
Running on darwin I get:
lib/matplotlib/tests/test_backend_qt.py::test_sigint[show-kwargs0] PASSED [ 5%]
lib/matplotlib/tests/test_backend_qt.py::test_sigint[pause-kwargs1] PASSED [ 7%]
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.
I have pyqt5, version 5.15.4 installed in this env if that is any help.
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.
You can check for 'CI' in os.environ
if you think it's going to be CI-specific.
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.
Interesting, I thought I saw these locally as well. I'll try to check tomorrow when I get home.
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.
I think it started failing with qt6. The current CI uses qt5 and there it passes.
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.
Now it XPASS:es, but it is not clear which qt-version is used.
XPASS lib/matplotlib/tests/test_backend_qt.py::test_sigint[pause-kwargs1] Fails on OSX
XPASS lib/matplotlib/tests/test_backends_interactive.py::test_interactive_thread_safety[{'MPLBACKEND': 'qtagg', 'QT_API': 'PySide2'}]
XPASS lib/matplotlib/tests/test_backends_interactive.py::test_interactive_thread_safety[{'MPLBACKEND': 'qtcairo', 'QT_API': 'PyQt5'}]
XPASS lib/matplotlib/tests/test_backends_interactive.py::test_interactive_thread_safety[{'MPLBACKEND': 'qtcairo', 'QT_API': 'PyQt6'}]
XPASS lib/matplotlib/tests/test_backends_interactive.py::test_interactive_thread_safety[{'MPLBACKEND': 'qtcairo', 'QT_API': 'PySide6'}]
XPASS lib/matplotlib/tests/test_backends_interactive.py::test_interactive_thread_safety[{'MPLBACKEND': 'qtcairo', 'QT_API': 'PySide2'}]
I'll remove that line in the web interface and see what happens (so please squash merge...).
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.
There seems to be some xfail that can be removed in test_interactive_thread_safety
as well, but I cannot really figure out which...
So it seems to be possible to build wxPython on OSX, but quite time consuming (about an hour). I guess it really doesn't make sense to even try to install it (still a 73 MB download) for the OSX tests. Will sort it out properly from a computer with a recent git (which this one isn't). |
Why are we building wxPython now; there should be wheels? |
There are no wheels for OSX. Here, I was basically just trying it out, but bad idea and better to skip even trying to install wx on OSX. (Unless we want to provide our own OSX wheel, but I have no idea how to do that. Should open an issue at them, asking for OSX wheels though since it seems to, at least, build without problems.) |
I moved this to 3.7 so we do not backport it. Lets keep going with the current CI on the bug-fix branch (if anything we need to freeze the packages more aggressively). |
It seems like despite it looking to be wheels for
so plain "pip install wxPython"
|
I do not fully get why |
1472a35
to
81bc7cf
Compare
The latest version has GTK3 installed for OSX, but gives the following failing tests:
Not much info in the transcript. |
Moved to 3.8, but if this is passing we can obviously merge it. |
Needs a rebase, as the logs are gone, though I may have looked before and found nothing else to add. |
It looks like there's a Traceback in |
@oscargus are you going to push this through? |
I believe this was effectively replaced by #27723. |
PR Summary
#23584 (comment)
Also, inkscape and the extra test dependencies are added to OSX so the number of skipped tests is drastically decreased.
ffmpeg
can be installed, but is rather time consuming (lots of additional dependencies).dvipng
cannot be installed via brew (butbasictex
can and GhostScript is already installed).PR Checklist
Tests and Styling
pytest
passes).flake8-docstrings
and runflake8 --docstring-convention=all
).Documentation
doc/users/next_whats_new/
(follow instructions in README.rst there).doc/api/next_api_changes/
(follow instructions in README.rst there).