From 75206389f43c2572589b624720b0299d9c9a0863 Mon Sep 17 00:00:00 2001 From: James Addison Date: Tue, 11 Mar 2025 23:03:00 +0000 Subject: [PATCH 1/4] ci: temporarily upper-bound the `PyGObject` Python package version --- .github/workflows/tests.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 3e36a7197907..90c9ad3fbd7c 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -273,7 +273,7 @@ jobs: # (sometimes, the install appears to be successful but shared # libraries cannot be loaded at runtime, so an actual import is a # better check). - python -m pip install --upgrade pycairo 'cairocffi>=0.8' PyGObject && + python -m pip install --upgrade pycairo 'cairocffi>=0.8' 'PyGObject<3.52.0' && ( python -c 'import gi; gi.require_version("Gtk", "4.0"); from gi.repository import Gtk' && echo 'PyGObject 4 is available' || echo 'PyGObject 4 is not available' From 8d62733bfff95e686134f0e0aac7846e838fe67f Mon Sep 17 00:00:00 2001 From: James Addison Date: Tue, 11 Mar 2025 23:07:07 +0000 Subject: [PATCH 2/4] ci: temporarily disable non-MacOS runners during verification, to minimize CI resource --- .github/workflows/tests.yml | 55 ------------------------------------- 1 file changed, 55 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 90c9ad3fbd7c..bdf4bd68eae0 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -47,61 +47,6 @@ jobs: fail-fast: false matrix: include: - - name-suffix: "(Minimum Versions)" - os: ubuntu-20.04 - python-version: '3.10' - extra-requirements: '-c requirements/testing/minver.txt' - delete-font-cache: true - # Oldest versions with Py3.10 wheels. - pyqt5-ver: '==5.15.5 sip==6.3.0' - pyqt6-ver: '==6.2.0 PyQt6-Qt6==6.2.0' - pyside2-ver: '==5.15.2.1' - pyside6-ver: '==6.2.0' - - os: ubuntu-20.04 - python-version: '3.10' - # One CI run tests ipython/matplotlib-inline before backend mapping moved to mpl - extra-requirements: - -r requirements/testing/extra.txt - "ipython==7.29.0" - "ipykernel==5.5.6" - "matplotlib-inline<0.1.7" - CFLAGS: "-fno-lto" # Ensure that disabling LTO works. - # https://github.com/matplotlib/matplotlib/pull/26052#issuecomment-1574595954 - # https://www.riverbankcomputing.com/pipermail/pyqt/2023-November/045606.html - pyqt6-ver: '!=6.5.1,!=6.6.0,!=6.7.1' - # https://bugreports.qt.io/projects/PYSIDE/issues/PYSIDE-2346 - pyside6-ver: '!=6.5.1' - - os: ubuntu-22.04 - python-version: '3.11' - # https://www.riverbankcomputing.com/pipermail/pyqt/2023-November/045606.html - pyqt6-ver: '!=6.6.0' - # https://bugreports.qt.io/projects/PYSIDE/issues/PYSIDE-2346 - pyside6-ver: '!=6.5.1' - extra-requirements: '-r requirements/testing/extra.txt' - - os: ubuntu-22.04-arm - python-version: '3.12' - # https://www.riverbankcomputing.com/pipermail/pyqt/2023-November/045606.html - pyqt6-ver: '!=6.6.0' - # https://bugreports.qt.io/projects/PYSIDE/issues/PYSIDE-2346 - pyside6-ver: '!=6.5.1' - - os: ubuntu-22.04 - python-version: '3.13' - # https://www.riverbankcomputing.com/pipermail/pyqt/2023-November/045606.html - pyqt6-ver: '!=6.6.0' - # https://bugreports.qt.io/projects/PYSIDE/issues/PYSIDE-2346 - pyside6-ver: '!=6.5.1' - - name-suffix: "Free-threaded" - os: ubuntu-22.04 - python-version: '3.13t' - # https://www.riverbankcomputing.com/pipermail/pyqt/2023-November/045606.html - pyqt6-ver: '!=6.6.0' - # https://bugreports.qt.io/projects/PYSIDE/issues/PYSIDE-2346 - pyside6-ver: '!=6.5.1' - - os: macos-13 # This runner is on Intel chips. - # merge numpy and pandas install in nighties test when this runner is dropped - python-version: '3.10' - # https://bugreports.qt.io/projects/PYSIDE/issues/PYSIDE-2346 - pyside6-ver: '!=6.5.1' - os: macos-14 # This runner is on M1 (arm64) chips. python-version: '3.12' # https://bugreports.qt.io/projects/PYSIDE/issues/PYSIDE-2346 From 1fadd9e6ec9725d3eeaf095564763a8a9ba0682c Mon Sep 17 00:00:00 2001 From: James Addison Date: Tue, 11 Mar 2025 23:31:07 +0000 Subject: [PATCH 3/4] Revert "ci: temporarily disable non-MacOS runners during verification, to minimize CI resource" This reverts commit 8d62733bfff95e686134f0e0aac7846e838fe67f. --- .github/workflows/tests.yml | 55 +++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index bdf4bd68eae0..90c9ad3fbd7c 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -47,6 +47,61 @@ jobs: fail-fast: false matrix: include: + - name-suffix: "(Minimum Versions)" + os: ubuntu-20.04 + python-version: '3.10' + extra-requirements: '-c requirements/testing/minver.txt' + delete-font-cache: true + # Oldest versions with Py3.10 wheels. + pyqt5-ver: '==5.15.5 sip==6.3.0' + pyqt6-ver: '==6.2.0 PyQt6-Qt6==6.2.0' + pyside2-ver: '==5.15.2.1' + pyside6-ver: '==6.2.0' + - os: ubuntu-20.04 + python-version: '3.10' + # One CI run tests ipython/matplotlib-inline before backend mapping moved to mpl + extra-requirements: + -r requirements/testing/extra.txt + "ipython==7.29.0" + "ipykernel==5.5.6" + "matplotlib-inline<0.1.7" + CFLAGS: "-fno-lto" # Ensure that disabling LTO works. + # https://github.com/matplotlib/matplotlib/pull/26052#issuecomment-1574595954 + # https://www.riverbankcomputing.com/pipermail/pyqt/2023-November/045606.html + pyqt6-ver: '!=6.5.1,!=6.6.0,!=6.7.1' + # https://bugreports.qt.io/projects/PYSIDE/issues/PYSIDE-2346 + pyside6-ver: '!=6.5.1' + - os: ubuntu-22.04 + python-version: '3.11' + # https://www.riverbankcomputing.com/pipermail/pyqt/2023-November/045606.html + pyqt6-ver: '!=6.6.0' + # https://bugreports.qt.io/projects/PYSIDE/issues/PYSIDE-2346 + pyside6-ver: '!=6.5.1' + extra-requirements: '-r requirements/testing/extra.txt' + - os: ubuntu-22.04-arm + python-version: '3.12' + # https://www.riverbankcomputing.com/pipermail/pyqt/2023-November/045606.html + pyqt6-ver: '!=6.6.0' + # https://bugreports.qt.io/projects/PYSIDE/issues/PYSIDE-2346 + pyside6-ver: '!=6.5.1' + - os: ubuntu-22.04 + python-version: '3.13' + # https://www.riverbankcomputing.com/pipermail/pyqt/2023-November/045606.html + pyqt6-ver: '!=6.6.0' + # https://bugreports.qt.io/projects/PYSIDE/issues/PYSIDE-2346 + pyside6-ver: '!=6.5.1' + - name-suffix: "Free-threaded" + os: ubuntu-22.04 + python-version: '3.13t' + # https://www.riverbankcomputing.com/pipermail/pyqt/2023-November/045606.html + pyqt6-ver: '!=6.6.0' + # https://bugreports.qt.io/projects/PYSIDE/issues/PYSIDE-2346 + pyside6-ver: '!=6.5.1' + - os: macos-13 # This runner is on Intel chips. + # merge numpy and pandas install in nighties test when this runner is dropped + python-version: '3.10' + # https://bugreports.qt.io/projects/PYSIDE/issues/PYSIDE-2346 + pyside6-ver: '!=6.5.1' - os: macos-14 # This runner is on M1 (arm64) chips. python-version: '3.12' # https://bugreports.qt.io/projects/PYSIDE/issues/PYSIDE-2346 From 38cf5549927f96597f827ffafd1dce8d43229546 Mon Sep 17 00:00:00 2001 From: James Addison Date: Tue, 11 Mar 2025 23:37:18 +0000 Subject: [PATCH 4/4] ci: apply PyGObject upper-bounding only on affected platforms --- .github/workflows/tests.yml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 90c9ad3fbd7c..626cb6e2d628 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -104,10 +104,14 @@ jobs: pyside6-ver: '!=6.5.1' - os: macos-14 # This runner is on M1 (arm64) chips. python-version: '3.12' + # https://github.com/matplotlib/matplotlib/issues/29732 + pygobject-ver: '<3.52.0' # https://bugreports.qt.io/projects/PYSIDE/issues/PYSIDE-2346 pyside6-ver: '!=6.5.1' - os: macos-14 # This runner is on M1 (arm64) chips. python-version: '3.13' + # https://github.com/matplotlib/matplotlib/issues/29732 + pygobject-ver: '<3.52.0' # https://bugreports.qt.io/projects/PYSIDE/issues/PYSIDE-2346 pyside6-ver: '!=6.5.1' @@ -273,7 +277,7 @@ jobs: # (sometimes, the install appears to be successful but shared # libraries cannot be loaded at runtime, so an actual import is a # better check). - python -m pip install --upgrade pycairo 'cairocffi>=0.8' 'PyGObject<3.52.0' && + python -m pip install --upgrade pycairo 'cairocffi>=0.8' PyGObject${{ matrix.pygobject-ver }} && ( python -c 'import gi; gi.require_version("Gtk", "4.0"); from gi.repository import Gtk' && echo 'PyGObject 4 is available' || echo 'PyGObject 4 is not available'