From 88bba3cf8d176795aa3a23123b869a1391d19eb3 Mon Sep 17 00:00:00 2001 From: Trevor Gamblin Date: Wed, 22 Jul 2026 14:16:55 -0400 Subject: [PATCH 1/2] workflows: build-matplotlib, test-matplotlib: update for v3.11.1 Signed-off-by: Trevor Gamblin --- .github/workflows/build-matplotlib.yml | 14 +++++++------- .github/workflows/test-matplotlib.yml | 10 +++++----- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/.github/workflows/build-matplotlib.yml b/.github/workflows/build-matplotlib.yml index 2e64221..47310f2 100644 --- a/.github/workflows/build-matplotlib.yml +++ b/.github/workflows/build-matplotlib.yml @@ -5,16 +5,16 @@ on: workflow_dispatch: inputs: version: - description: 'matplotlib version to build (git tag without leading v, e.g. 3.11.0)' + description: 'matplotlib version to build (git tag without leading v, e.g. 3.11.1)' required: true - default: '3.11.0' + default: '3.11.1' pull_request: paths: - '.github/workflows/build-matplotlib.yml' - '.github/workflows/test-matplotlib.yml' concurrency: - group: ${{ github.workflow }}-${{ inputs.version || '3.11.0' }}-${{ github.head_ref || github.run_id }} + group: ${{ github.workflow }}-${{ inputs.version || '3.11.1' }}-${{ github.head_ref || github.run_id }} cancel-in-progress: true permissions: @@ -22,7 +22,7 @@ permissions: env: # `inputs.version` is empty on pull_request events; default there. - MPL_VERSION: ${{ inputs.version || '3.11.0' }} + MPL_VERSION: ${{ inputs.version || '3.11.1' }} # Query PyPI + gitlab riscv64 mirror; pick best compatible wheel # (`unsafe-best-match` = pip-like). Refuse sdist for dependencies so uv # selects the gitlab riscv64 wheel when PyPI lacks one instead of falling @@ -33,7 +33,7 @@ env: jobs: build_sdist: - name: Build matplotlib ${{ inputs.version || '3.11.0' }} sdist + name: Build matplotlib ${{ inputs.version || '3.11.1' }} sdist runs-on: ubuntu-24.04-riscv permissions: contents: read @@ -97,7 +97,7 @@ jobs: build_wheels: needs: build_sdist - name: Build matplotlib ${{ inputs.version || '3.11.0' }} wheels for riscv64 + name: Build matplotlib ${{ inputs.version || '3.11.1' }} wheels for riscv64 permissions: contents: read runs-on: ubuntu-24.04-riscv @@ -167,7 +167,7 @@ jobs: if-no-files-found: error publish: - name: Publish matplotlib ${{ inputs.version || '3.11.0' }} to GitLab + name: Publish matplotlib ${{ inputs.version || '3.11.1' }} to GitLab needs: build_wheels # Only publish when the workflow was triggered from main with a specific # version. Manual trigger is the only entry point that reaches main; diff --git a/.github/workflows/test-matplotlib.yml b/.github/workflows/test-matplotlib.yml index 86dac48..cf291e7 100644 --- a/.github/workflows/test-matplotlib.yml +++ b/.github/workflows/test-matplotlib.yml @@ -5,15 +5,15 @@ on: workflow_dispatch: inputs: version: - description: 'matplotlib version to test (git tag without leading v, e.g. 3.11.0)' + description: 'matplotlib version to test (git tag without leading v, e.g. 3.11.1)' required: true - default: '3.11.0' + default: '3.11.1' pull_request: paths: - '.github/workflows/test-matplotlib.yml' concurrency: - group: ${{ github.workflow }}-${{ inputs.version || '3.11.0' }}-${{ github.head_ref || github.run_id }} + group: ${{ github.workflow }}-${{ inputs.version || '3.11.1' }}-${{ github.head_ref || github.run_id }} cancel-in-progress: true permissions: @@ -23,7 +23,7 @@ env: NO_AT_BRIDGE: 1 # Necessary for GTK3 interactive test. OPENBLAS_NUM_THREADS: 1 PYTHONFAULTHANDLER: 1 - MPL_VERSION: ${{ inputs.version || '3.11.0' }} + MPL_VERSION: ${{ inputs.version || '3.11.1' }} # Query PyPI + gitlab riscv64 mirror; pick best compatible wheel # (`unsafe-best-match` = pip-like). Refuse sdist for dependencies so uv # selects the gitlab riscv64 wheel when PyPI lacks one instead of falling @@ -36,7 +36,7 @@ jobs: test: permissions: contents: read - name: "Test matplotlib ${{ inputs.version || '3.11.0' }} — Python ${{ matrix.python-version }} on ${{ matrix.os }}" + name: "Test matplotlib ${{ inputs.version || '3.11.1' }} — Python ${{ matrix.python-version }} on ${{ matrix.os }}" runs-on: ${{ matrix.os }} strategy: From 6d6decf703c08fcf86d0094e1c4bf470a4d5061c Mon Sep 17 00:00:00 2001 From: Trevor Gamblin Date: Wed, 22 Jul 2026 14:24:04 -0400 Subject: [PATCH 2/2] patches: matplotlib: add threading timeout patch for 3.11.1 Copy the same patch used for 3.11.0 to 3.11.1. We don't need the pytest backport used for 3.11.0, since that is contained in the 3.11.1 release: |tgamblin@alchemist ~/workspace/baylibre/rise/matplotlib ((HEAD detached at v3.11.1))$ git tag --contains cf5cebedbb |v3.11.1 Signed-off-by: Trevor Gamblin --- ...manager-increase-test_fontcache_thre.patch | 34 +++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 patches/matplotlib/3.11.1/0001-tests-test_font_manager-increase-test_fontcache_thre.patch diff --git a/patches/matplotlib/3.11.1/0001-tests-test_font_manager-increase-test_fontcache_thre.patch b/patches/matplotlib/3.11.1/0001-tests-test_font_manager-increase-test_fontcache_thre.patch new file mode 100644 index 0000000..56ac2d1 --- /dev/null +++ b/patches/matplotlib/3.11.1/0001-tests-test_font_manager-increase-test_fontcache_thre.patch @@ -0,0 +1,34 @@ +From a830afe01625f10e11640e2b2c3f3d88b2c16b36 Mon Sep 17 00:00:00 2001 +From: Trevor Gamblin +Date: Tue, 21 Jul 2026 11:25:31 -0400 +Subject: [PATCH] tests: test_font_manager: increase test_fontcache_thread_safe + timeout + +This test seems to pass in a local riscv64 container, but fails when run +on the native runners. It's a single threading test with a 10s timeout, +so double that timeout for our builds. For now this should be considered +inappropriate for upstream until we see the failure on their end too. + +Upstream-Status: Inappropriate [native runner specific] + +Signed-off-by: Trevor Gamblin +--- + lib/matplotlib/tests/test_font_manager.py | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/lib/matplotlib/tests/test_font_manager.py b/lib/matplotlib/tests/test_font_manager.py +index add063df90..f3a9d57039 100644 +--- a/lib/matplotlib/tests/test_font_manager.py ++++ b/lib/matplotlib/tests/test_font_manager.py +@@ -344,7 +344,7 @@ def _test_threading(): + def test_fontcache_thread_safe(): + pytest.importorskip('threading') + +- subprocess_run_helper(_test_threading, timeout=10) ++ subprocess_run_helper(_test_threading, timeout=20) + + + def test_lockfilefailure(tmp_path): +-- +2.55.0 +