Skip to content

Conversation

@tacaswell
Copy link
Member

The VM is being dropped by GH [1] on macOS is no longer supported by homebrew or Apple.

This job is starting to fail on installing homebrew dependencies. Rather than try to fix this, move on to the next image which we need to do by the end of the CY anyway.

This means we no longer are testing on intel macs.

[1] https://github.blog/changelog/2025-07-11-upcoming-changes-to-macos-hosted-runners-macos-latest-migration-and-xcode-support-policy-updates/#macos-13-is-closing-down

The VM is being dropped by GH [1] on macOS is no longer supported by homebrew
or Apple.

This job is starting to fail on installing homebrew dependencies.  Rather than
try to fix this, move on to the next image which we need to do by the end of
the CY anyway.

This means we no longer are testing on intel macs.

[1] https://github.blog/changelog/2025-07-11-upcoming-changes-to-macos-hosted-runners-macos-latest-migration-and-xcode-support-policy-updates/#macos-13-is-closing-down
@tacaswell tacaswell added this to the v3.10.7 milestone Sep 16, 2025
Copy link
Member

@timhoffm timhoffm left a comment

Choose a reason for hiding this comment

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

Sounds reasonable. Should we move one of the other configs to macos-15?

@tacaswell
Copy link
Member Author

FAILED lib/matplotlib/tests/test_backends_interactive.py::test_interactive_backend[toolbar2-MPLBACKEND=gtk4agg-BACKEND_DEPS=cairo,gi] - Failed: Subprocess failed to test intended behavior

(process:20556): GLib-GIRepository-WARNING **: 20:02:19.767: Failed to load shared library 'libgobject-2.0.0.dylib' referenced by the typelib: dlopen(libgobject-2.0.0.dylib, 0x0009): tried: 'libgobject-2.0.0.dylib' (no such file), '/System/Volumes/Preboot/Cryptexes/OSlibgobject-2.0.0.dylib' (no such file), '/usr/lib/libgobject-2.0.0.dylib' (no such file, not in dyld cache), 'libgobject-2.0.0.dylib' (no such file)

(process:20556): GLib-GIRepository-WARNING **: 20:02:19.767: Failed to load shared library 'libglib-2.0.0.dylib' referenced by the typelib: dlopen(libglib-2.0.0.dylib, 0x0009): tried: 'libglib-2.0.0.dylib' (no such file), '/System/Volumes/Preboot/Cryptexes/OSlibglib-2.0.0.dylib' (no such file), '/usr/lib/libglib-2.0.0.dylib' (no such file, not in dyld cache), 'libglib-2.0.0.dylib' (no such file)
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/Users/runner/work/matplotlib/matplotlib/lib/matplotlib/tests/test_backends_interactive.py", line 198, in _test_interactive_impl
    fig, ax = plt.subplots()
              ^^^^^^^^^^^^^^
  File "/Users/runner/work/matplotlib/matplotlib/lib/matplotlib/pyplot.py", line 1856, in subplots
    fig = figure(**fig_kw)
          ^^^^^^^^^^^^^^^^
  File "/Users/runner/work/matplotlib/matplotlib/lib/matplotlib/pyplot.py", line 1088, in figure
    manager = new_figure_manager(
              ^^^^^^^^^^^^^^^^^^^
  File "/Users/runner/work/matplotlib/matplotlib/lib/matplotlib/pyplot.py", line 569, in new_figure_manager
    _warn_if_gui_out_of_main_thread()
  File "/Users/runner/work/matplotlib/matplotlib/lib/matplotlib/pyplot.py", line 546, in _warn_if_gui_out_of_main_thread
    canvas_class = cast(type[FigureCanvasBase], _get_backend_mod().FigureCanvas)
                                                ^^^^^^^^^^^^^^^^^^
  File "/Users/runner/work/matplotlib/matplotlib/lib/matplotlib/pyplot.py", line 383, in _get_backend_mod
    switch_backend(rcParams._get("backend"))
  File "/Users/runner/work/matplotlib/matplotlib/lib/matplotlib/pyplot.py", line 439, in switch_backend
    module = backend_registry.load_backend_module(newbackend)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/runner/work/matplotlib/matplotlib/lib/matplotlib/backends/registry.py", line 317, in load_backend_module
    return importlib.import_module(module_name)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "<frozen importlib._bootstrap>", line 1204, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1176, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1147, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 690, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 940, in exec_module
  File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
  File "/Users/runner/work/matplotlib/matplotlib/lib/matplotlib/backends/backend_gtk4agg.py", line 4, in <module>
    from . import backend_agg, backend_gtk4
  File "/Users/runner/work/matplotlib/matplotlib/lib/matplotlib/backends/backend_gtk4.py", line 32, in <module>
    from gi.repository import Gio, GLib, Gtk, Gdk, GdkPixbuf
  File "<frozen importlib._bootstrap>", line 1176, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1147, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 676, in _load_unlocked
  File "<frozen importlib._bootstrap>", line 573, in module_from_spec
  File "/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/gi/importer.py", line 144, in create_module
    importlib.import_module("gi.repository." + dep.split("-")[0])
  File "/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "<frozen importlib._bootstrap>", line 1204, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1176, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1147, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 676, in _load_unlocked
  File "<frozen importlib._bootstrap>", line 573, in module_from_spec
  File "/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/gi/importer.py", line 145, in create_module
    return load_overrides(introspection_module)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/gi/overrides/__init__.py", line 128, in load_overrides
    override_mod = importlib.import_module(override_package_name)
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/gi/overrides/GLib.py", line 39, in <module>
    from gi import _option as option
  File "/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/gi/_option.py", line 46, in <module>
    OPTION_CONTEXT_ERROR_QUARK = GLib.quark_to_string(GLib.option_error_quark())
                                                      ^^^^^^^^^^^^^^^^^^^^^^^^^
gi._error.GError: gi-invoke-error-quark: Could not locate g_option_error_quark: dlopen(libglib-2.0.0.dylib, 0x0009): tried: 'libglib-2.0.0.dylib' (no such file), '/System/Volumes/Preboot/Cryptexes/OSlibglib-2.0.0.dylib' (no such file), '/usr/lib/libglib-2.0.0.dylib' (no such file, not in dyld cache), 'libglib-2.0.0.dylib' (no such file) (1)

These look real, I assume related to the recent changes in glib that we dealt with else where?

@QuLogic QuLogic merged commit 22a9c55 into matplotlib:main Sep 17, 2025
49 of 50 checks passed
@lumberbot-app
Copy link

lumberbot-app bot commented Sep 17, 2025

Owee, I'm MrMeeseeks, Look at me.

There seem to be a conflict, please backport manually. Here are approximate instructions:

  1. Checkout backport branch and update it.
git checkout v3.10.x
git pull
  1. Cherry pick the first parent branch of the this PR on top of the older branch:
git cherry-pick -x -m1 22a9c55481c9e643612cae44c8146652d1a0ee10
  1. You will likely have some merge/cherry-pick conflict here, fix them and commit:
git commit -am 'Backport PR #30571: CI: remove macos13'
  1. Push to a named branch:
git push YOURFORK v3.10.x:auto-backport-of-pr-30571-on-v3.10.x
  1. Create a PR against branch v3.10.x, I would have named this PR:

"Backport PR #30571 on branch v3.10.x (CI: remove macos13)"

And apply the correct labels and milestones.

Congratulations — you did some good work! Hopefully your backport PR will be tested by the continuous integration and merged soon!

Remember to remove the Still Needs Manual Backport label once the PR gets merged.

If these instructions are inaccurate, feel free to suggest an improvement.

QuLogic added a commit to QuLogic/matplotlib that referenced this pull request Sep 17, 2025
@QuLogic QuLogic added CI: testing CI configuration and testing Maintenance and removed Still Needs Manual Backport labels Sep 17, 2025
timhoffm added a commit that referenced this pull request Sep 17, 2025
…3.10.x

Backport PR #30571 on branch v3.10.x (CI: remove macos13)
@tacaswell tacaswell deleted the ci/drop_osx13 branch September 18, 2025 19:20
@ksunden ksunden mentioned this pull request Oct 9, 2025
5 tasks
@jayaddison
Copy link
Contributor

jayaddison commented Nov 22, 2025

gi._error.GError: gi-invoke-error-quark: Could not locate g_option_error_quark: dlopen(libglib-2.0.0.dylib, 0x0009): tried: 'libglib-2.0.0.dylib' (no such file), '/System/Volumes/Preboot/Cryptexes/OSlibglib-2.0.0.dylib' (no such file), '/usr/lib/libglib-2.0.0.dylib' (no such file, not in dyld cache), 'libglib-2.0.0.dylib' (no such file) (1)

These look real, I assume related to the recent changes in glib that we dealt with else where?

@tacaswell a belated response while researching my open issues: yep, that is a genuine error/failure that was occurring - it's reported as #29732 and seems to affect MacOS 14 too.

I hadn't managed to figure out how to resolve the problem; it began appearing from version v3.52.0 of the Python PyGObject library -- and I had a sense that some Brew/package selection tweaks might be the way to fix it, but without a suitable MacOS machine locally I explored as many attempts as I could think of and was unable to find a satisfying upgrade/resolution path.

Edit: attempt to rephrase for clarity.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CI: testing CI configuration and testing Maintenance

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants