-
-
Notifications
You must be signed in to change notification settings - Fork 368
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
Fix use of "%matplotlib osx" #1237
Conversation
Do you have an ETA to release this fix? |
@ivanlen It looks like this could be in a release in about 2 weeks time. |
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.
Thank you!
@ianthomas23 can you please try running this workflow with the default settings? https://github.com/ipython/ipykernel/actions/workflows/publish-release.yml. It should finalize the draft release I made over the weekend. |
@blink1073 Done! Workflow run is https://github.com/ipython/ipykernel/actions/runs/9745716039/job/26894339146 and 6.29.5 is up on PyPI. |
Woohoo! |
Thanks for your help! |
Fixes #1124 which is that the use of
%matplotlib osx
crashesipykernel
and downstream libraries whereasipython
is fine.The fix is to specify the
argtypes
of eachobjc_msgSend
call just before the call. This is consistent with howipython
successfully handles it. I have tested this manually usingspyder
andjupyter console
,qtconsole
,lab
andnbclassic
: usingipykernel 6.29.4
(the latest release) they all crash, using this branch they all work as expected.This PR is opened against the
6.x
branch rather thanmain
as issue #1235 means it is not possible to test anymatplotlib
GUI loops onmain
. It would be good to get this into a release (6.29.5?) as soon as possible and not have to wait for #1235 and the other AnyIO fallout issues to be fixed beforehand. This PR will therefore need to be forward ported tomain
.There is no explicit test for this as you need to actually render a macos window to trigger the failure, and this is not an easy thing to do on headless CI. Essentially this functionality sits in the grey area between
matplotlib
andipython/ipykernel/jupyter
rather than in any individual project.