Skip to content
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

Merged
merged 1 commit into from
Jun 14, 2024
Merged

Conversation

ianthomas23
Copy link
Collaborator

Fixes #1124 which is that the use of %matplotlib osx crashes ipykernel and downstream libraries whereas ipython is fine.

The fix is to specify the argtypes of each objc_msgSend call just before the call. This is consistent with how ipython successfully handles it. I have tested this manually using spyder and jupyter console, qtconsole, lab and nbclassic: using ipykernel 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 than main as issue #1235 means it is not possible to test any matplotlib GUI loops on main. 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 to main.

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 and ipython/ipykernel/jupyter rather than in any individual project.

@ivanlen
Copy link

ivanlen commented Jun 9, 2024

Do you have an ETA to release this fix?

@ianthomas23
Copy link
Collaborator Author

@ivanlen It looks like this could be in a release in about 2 weeks time.

Copy link
Contributor

@blink1073 blink1073 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you!

@blink1073 blink1073 merged commit 22d4e58 into ipython:6.x Jun 14, 2024
29 of 33 checks passed
@ianthomas23 ianthomas23 deleted the 1124_mpl_osx branch June 14, 2024 07:48
@blink1073
Copy link
Contributor

@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.

@ianthomas23
Copy link
Collaborator Author

@blink1073 Done! Workflow run is https://github.com/ipython/ipykernel/actions/runs/9745716039/job/26894339146 and 6.29.5 is up on PyPI.

@blink1073
Copy link
Contributor

Woohoo!

@ianthomas23
Copy link
Collaborator Author

Thanks for your help!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants