Skip to content

Commit db2f895

Browse files
committed
Bump minimum Python to 3.10
1 parent e5225b4 commit db2f895

File tree

29 files changed

+77
-127
lines changed

29 files changed

+77
-127
lines changed

.circleci/config.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -216,9 +216,9 @@ commands:
216216
#
217217

218218
jobs:
219-
docs-python39:
219+
docs-python310:
220220
docker:
221-
- image: cimg/python:3.9
221+
- image: cimg/python:3.10
222222
resource_class: large
223223
steps:
224224
- checkout
@@ -259,4 +259,4 @@ workflows:
259259
jobs:
260260
# NOTE: If you rename this job, then you must update the `if` condition
261261
# and `circleci-jobs` option in `.github/workflows/circleci.yml`.
262-
- docs-python39
262+
- docs-python310

.github/workflows/cibuildwheel.yml

Lines changed: 3 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ jobs:
4646
- uses: actions/setup-python@v5
4747
name: Install Python
4848
with:
49-
python-version: 3.9
49+
python-version: '3.10'
5050

5151
# Something changed somewhere that prevents the downloaded-at-build-time
5252
# licenses from being included in built wheels, so pre-download them so
@@ -158,22 +158,14 @@ jobs:
158158
CIBW_BUILD: "cp310-*"
159159
CIBW_ARCHS: ${{ matrix.cibw_archs }}
160160

161-
- name: Build wheels for CPython 3.9
162-
uses: pypa/cibuildwheel@7e5a838a63ac8128d71ab2dfd99e4634dd1bca09 # v2.19.2
163-
with:
164-
package-dir: dist/${{ needs.build_sdist.outputs.SDIST_NAME }}
165-
env:
166-
CIBW_BUILD: "cp39-*"
167-
CIBW_ARCHS: ${{ matrix.cibw_archs }}
168-
169161
- name: Build wheels for PyPy
170162
uses: pypa/cibuildwheel@7e5a838a63ac8128d71ab2dfd99e4634dd1bca09 # v2.19.2
171163
with:
172164
package-dir: dist/${{ needs.build_sdist.outputs.SDIST_NAME }}
173165
env:
174-
CIBW_BUILD: "pp39-*"
166+
CIBW_BUILD: "pp310-*"
175167
CIBW_ARCHS: ${{ matrix.cibw_archs }}
176-
if: matrix.cibw_archs != 'aarch64'
168+
if: matrix.cibw_archs != 'aarch64' && matrix.os != 'windows-latest'
177169

178170
- uses: actions/upload-artifact@v4
179171
with:

.github/workflows/circleci.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ name: "CircleCI artifact handling"
33
on: [status]
44
jobs:
55
circleci_artifacts_redirector_job:
6-
if: "${{ github.event.context == 'ci/circleci: docs-python39' }}"
6+
if: "${{ github.event.context == 'ci/circleci: docs-python310' }}"
77
permissions:
88
statuses: write
99
runs-on: ubuntu-latest
@@ -16,11 +16,11 @@ jobs:
1616
repo-token: ${{ secrets.GITHUB_TOKEN }}
1717
api-token: ${{ secrets.CIRCLECI_TOKEN }}
1818
artifact-path: 0/doc/build/html/index.html
19-
circleci-jobs: docs-python39
19+
circleci-jobs: docs-python310
2020
job-title: View the built docs
2121

2222
post_warnings_as_review:
23-
if: "${{ github.event.context == 'ci/circleci: docs-python39' }}"
23+
if: "${{ github.event.context == 'ci/circleci: docs-python310' }}"
2424
permissions:
2525
contents: read
2626
checks: write

.github/workflows/cygwin.yml

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -49,10 +49,12 @@ jobs:
4949
test-cygwin:
5050
runs-on: windows-latest
5151
name: Python 3.${{ matrix.python-minor-version }} on Cygwin
52+
# Enable these when Cygwin has Python 3.12.
5253
if: >-
5354
github.event_name == 'workflow_dispatch' ||
54-
github.event_name == 'schedule' ||
55+
(false && github.event_name == 'schedule') ||
5556
(
57+
false &&
5658
github.repository == 'matplotlib/matplotlib' &&
5759
!contains(github.event.head_commit.message, '[ci skip]') &&
5860
!contains(github.event.head_commit.message, '[skip ci]') &&
@@ -72,7 +74,7 @@ jobs:
7274
)
7375
strategy:
7476
matrix:
75-
python-minor-version: [9]
77+
python-minor-version: [12]
7678

7779
steps:
7880
- name: Fix line endings

.github/workflows/mypy-stubtest.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ jobs:
1616
- name: Set up Python 3
1717
uses: actions/setup-python@v5
1818
with:
19-
python-version: 3.9
19+
python-version: '3.10'
2020

2121
- name: Set up reviewdog
2222
uses: reviewdog/action-setup@v1
@@ -30,7 +30,7 @@ jobs:
3030
run: |
3131
set -o pipefail
3232
tox -e stubtest | \
33-
sed -e "s!.tox/stubtest/lib/python3.9/site-packages!lib!g" | \
33+
sed -e "s!.tox/stubtest/lib/python3.10/site-packages!lib!g" | \
3434
reviewdog \
3535
-efm '%Eerror: %m' \
3636
-efm '%CStub: in file %f:%l' \

.github/workflows/reviewdog.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ jobs:
1717
- name: Set up Python 3
1818
uses: actions/setup-python@v5
1919
with:
20-
python-version: 3.9
20+
python-version: '3.10'
2121

2222
- name: Install flake8
2323
run: pip3 install -r requirements/testing/flake8.txt
@@ -42,7 +42,7 @@ jobs:
4242
- name: Set up Python 3
4343
uses: actions/setup-python@v5
4444
with:
45-
python-version: 3.9
45+
python-version: '3.10'
4646

4747
- name: Install mypy
4848
run: pip3 install -r requirements/testing/mypy.txt -r requirements/testing/all.txt

.github/workflows/tests.yml

Lines changed: 14 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -50,31 +50,28 @@ jobs:
5050
include:
5151
- name-suffix: "(Minimum Versions)"
5252
os: ubuntu-20.04
53-
python-version: 3.9
53+
python-version: '3.10'
5454
extra-requirements: '-c requirements/testing/minver.txt'
55-
pyqt5-ver: '==5.12.2 sip==5.0.0' # oldest versions with a Py3.9 wheel.
56-
pyqt6-ver: '==6.1.0 PyQt6-Qt6==6.1.0'
57-
pyside2-ver: '==5.15.1' # oldest version with working Py3.9 wheel.
58-
pyside6-ver: '==6.0.0'
5955
delete-font-cache: true
56+
# Oldest versions with Py3.10 wheels.
57+
pyqt5-ver: '==5.15.5 sip==6.3.0'
58+
pyqt6-ver: '==6.2.0 PyQt6-Qt6==6.2.0'
59+
pyside2-ver: '==5.15.2.1'
60+
pyside6-ver: '==6.2.0'
6061
- os: ubuntu-20.04
61-
python-version: 3.9
62+
python-version: '3.10'
6263
# One CI run tests ipython/matplotlib-inline before backend mapping moved to mpl
63-
extra-requirements: '-r requirements/testing/extra.txt "ipython==7.19" "matplotlib-inline<0.1.7"'
64+
extra-requirements:
65+
-r requirements/testing/extra.txt
66+
"ipython==7.29.0"
67+
"ipykernel==5.5.6"
68+
"matplotlib-inline<0.1.7"
6469
CFLAGS: "-fno-lto" # Ensure that disabling LTO works.
6570
# https://github.com/matplotlib/matplotlib/pull/26052#issuecomment-1574595954
6671
# https://www.riverbankcomputing.com/pipermail/pyqt/2023-November/045606.html
6772
pyqt6-ver: '!=6.5.1,!=6.6.0'
6873
# https://bugreports.qt.io/projects/PYSIDE/issues/PYSIDE-2346
6974
pyside6-ver: '!=6.5.1'
70-
- os: ubuntu-20.04
71-
python-version: '3.10'
72-
extra-requirements: '-r requirements/testing/extra.txt'
73-
# https://github.com/matplotlib/matplotlib/pull/26052#issuecomment-1574595954
74-
# https://www.riverbankcomputing.com/pipermail/pyqt/2023-November/045606.html
75-
pyqt6-ver: '!=6.5.1,!=6.6.0'
76-
# https://bugreports.qt.io/projects/PYSIDE/issues/PYSIDE-2346
77-
pyside6-ver: '!=6.5.1'
7875
- os: ubuntu-22.04
7976
python-version: '3.11'
8077
# https://www.riverbankcomputing.com/pipermail/pyqt/2023-November/045606.html
@@ -88,8 +85,8 @@ jobs:
8885
pyqt6-ver: '!=6.6.0'
8986
# https://bugreports.qt.io/projects/PYSIDE/issues/PYSIDE-2346
9087
pyside6-ver: '!=6.5.1'
91-
- os: macos-12 # This runnre is on Intel chips.
92-
python-version: 3.9
88+
- os: macos-12 # This runner is on Intel chips.
89+
python-version: '3.10'
9390
# https://bugreports.qt.io/projects/PYSIDE/issues/PYSIDE-2346
9491
pyside6-ver: '!=6.5.1'
9592
- os: macos-14 # This runner is on M1 (arm64) chips.

azure-pipelines.yml

Lines changed: 2 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -49,29 +49,20 @@ stages:
4949
- job: Pytest
5050
strategy:
5151
matrix:
52-
Linux_py39:
53-
vmImage: 'ubuntu-20.04' # keep one job pinned to the oldest image
54-
python.version: '3.9'
5552
Linux_py310:
56-
vmImage: 'ubuntu-latest'
53+
vmImage: 'ubuntu-20.04' # keep one job pinned to the oldest image
5754
python.version: '3.10'
5855
Linux_py311:
5956
vmImage: 'ubuntu-latest'
6057
python.version: '3.11'
61-
macOS_py39:
62-
vmImage: 'macOS-latest'
63-
python.version: '3.9'
6458
macOS_py310:
6559
vmImage: 'macOS-latest'
6660
python.version: '3.10'
6761
macOS_py311:
6862
vmImage: 'macOS-latest'
6963
python.version: '3.11'
70-
Windows_py39:
71-
vmImage: 'windows-2019' # keep one job pinned to the oldest image
72-
python.version: '3.9'
7364
Windows_py310:
74-
vmImage: 'windows-latest'
65+
vmImage: 'windows-2019' # keep one job pinned to the oldest image
7566
python.version: '3.10'
7667
Windows_py311:
7768
vmImage: 'windows-latest'
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
Increase to minimum supported versions of dependencies
2+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
3+
4+
For Matplotlib 3.10, the :ref:`minimum supported versions <dependencies>` are
5+
being bumped:
6+
7+
+------------+-----------------+----------------+
8+
| Dependency | min in mpl3.9 | min in mpl3.10 |
9+
+============+=================+================+
10+
| Python | 3.9 | 3.10 |
11+
+------------+-----------------+----------------+
12+
13+
This is consistent with our :ref:`min_deps_policy` and `SPEC0
14+
<https://scientific-python.org/specs/spec-0000/>`__

doc/devel/testing.rst

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -252,7 +252,7 @@ Using tox
252252

253253
`Tox <https://tox.readthedocs.io/en/latest/>`_ is a tool for running tests
254254
against multiple Python environments, including multiple versions of Python
255-
(e.g., 3.7, 3.8) and even different Python implementations altogether
255+
(e.g., 3.10, 3.11) and even different Python implementations altogether
256256
(e.g., CPython, PyPy, Jython, etc.), as long as all these versions are
257257
available on your system's $PATH (consider using your system package manager,
258258
e.g. apt-get, yum, or Homebrew, to install them).
@@ -269,7 +269,7 @@ You can also run tox on a subset of environments:
269269

270270
.. code-block:: bash
271271
272-
$ tox -e py38,py39
272+
$ tox -e py310,py311
273273
274274
Tox processes everything serially so it can take a long time to test
275275
several environments. To speed it up, you might try using a new,

0 commit comments

Comments
 (0)