Skip to content

Commit 66e9cc8

Browse files
committed
MNT: bump minimum python to 3.12
1 parent 39c556c commit 66e9cc8

19 files changed

Lines changed: 32 additions & 122 deletions

.appveyor.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ environment:
2828
--cov-report= --cov=lib --log-level=DEBUG
2929

3030
matrix:
31-
- PYTHON_VERSION: "3.11"
31+
- PYTHON_VERSION: "3.12"
3232

3333
# We always use a 64-bit machine, but can build x86 distributions
3434
# with the PYTHON_ARCH variable

.github/workflows/cibuildwheel.yml

Lines changed: 1 addition & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ jobs:
5050
- uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
5151
name: Install Python
5252
with:
53-
python-version: '3.11'
53+
python-version: '3.12'
5454

5555
# Something changed somewhere that prevents the downloaded-at-build-time
5656
# licenses from being included in built wheels, so pre-download them so
@@ -176,24 +176,6 @@ jobs:
176176
CIBW_BUILD: "cp312-*"
177177
CIBW_ARCHS: ${{ matrix.cibw_archs }}
178178

179-
- name: Build wheels for CPython 3.11
180-
uses: pypa/cibuildwheel@8d2b08b68458a16aeb24b64e68a09ab1c8e82084 # v3.4.1
181-
with:
182-
package-dir: dist/${{ needs.build_sdist.outputs.SDIST_NAME }}
183-
env:
184-
CIBW_BUILD: "cp311-*"
185-
CIBW_ARCHS: ${{ matrix.cibw_archs }}
186-
187-
- name: Build wheels for PyPy
188-
uses: pypa/cibuildwheel@8d2b08b68458a16aeb24b64e68a09ab1c8e82084 # v3.4.1
189-
with:
190-
package-dir: dist/${{ needs.build_sdist.outputs.SDIST_NAME }}
191-
env:
192-
CIBW_BUILD: "pp311-*"
193-
CIBW_ARCHS: ${{ matrix.cibw_archs }}
194-
CIBW_ENABLE: pypy
195-
if: matrix.cibw_archs != 'aarch64' && matrix.os != 'windows-latest' && matrix.os != 'windows-11-arm'
196-
197179
- uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
198180
with:
199181
name: cibw-wheels-${{ runner.os }}-${{ matrix.cibw_archs }}

.github/workflows/linting.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ jobs:
3636
- name: Set up Python 3
3737
uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
3838
with:
39-
python-version: '3.11'
39+
python-version: '3.12'
4040

4141
- name: Install ruff
4242
run: pip3 install ruff
@@ -66,7 +66,7 @@ jobs:
6666
- name: Set up Python 3
6767
uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
6868
with:
69-
python-version: '3.11'
69+
python-version: '3.12'
7070

7171
- name: Install mypy
7272
run: pip3 install --group build --group typing

.github/workflows/mypy-stubtest.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ jobs:
1919
- name: Set up Python 3
2020
uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
2121
with:
22-
python-version: '3.11'
22+
python-version: '3.12'
2323

2424
- name: Set up reviewdog
2525
uses: reviewdog/action-setup@d8a7baabd7f3e8544ee4dbde3ee41d0011c3a93f # v1.5.0
@@ -33,7 +33,7 @@ jobs:
3333
run: |
3434
set -o pipefail
3535
tox -e stubtest | \
36-
sed -e "s!.tox/stubtest/lib/python3.11/site-packages!lib!g" | \
36+
sed -e "s!.tox/stubtest/lib/python3.12/site-packages!lib!g" | \
3737
reviewdog \
3838
-efm '%Eerror: %m' \
3939
-efm '%CStub: in file %f:%l' \

.github/workflows/tests.yml

Lines changed: 2 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -51,13 +51,13 @@ jobs:
5151
include:
5252
- name-suffix: "(Minimum Versions)"
5353
os: ubuntu-22.04
54-
python-version: '3.11'
54+
python-version: '3.12'
5555
extra-requirements: '-c ci/minver-requirements.txt'
5656
delete-font-cache: true
5757
# https://github.com/matplotlib/matplotlib/issues/29844
5858
pygobject-ver: '<3.52.0'
5959
- os: ubuntu-22.04
60-
python-version: '3.11'
60+
python-version: '3.12'
6161
CFLAGS: "-fno-lto" # Ensure that disabling LTO works.
6262
extra-requirements: '--group test-extra'
6363
# https://github.com/matplotlib/matplotlib/issues/29844
@@ -73,16 +73,10 @@ jobs:
7373
python-version: '3.13t'
7474
# https://github.com/matplotlib/matplotlib/issues/29844
7575
pygobject-ver: '<3.52.0'
76-
- os: ubuntu-24.04
77-
python-version: '3.12'
7876
- os: ubuntu-24.04
7977
python-version: '3.14'
8078
- os: ubuntu-24.04-arm
8179
python-version: '3.12'
82-
- os: macos-14 # This runner is on M1 (arm64) chips.
83-
python-version: '3.11'
84-
# https://github.com/matplotlib/matplotlib/issues/29732
85-
pygobject-ver: '<3.52.0'
8680
- os: macos-14 # This runner is on M1 (arm64) chips.
8781
python-version: '3.12'
8882
# https://github.com/matplotlib/matplotlib/issues/29732
@@ -267,16 +261,6 @@ jobs:
267261
echo 'PyQt5 is available' ||
268262
echo 'PyQt5 is not available'
269263
fi
270-
# Even though PySide2 wheels can be installed on Python 3.12+, they are broken and since PySide2 is
271-
# deprecated, they are unlikely to be fixed. For the same deprecation reason, there are no wheels
272-
# on M1 macOS, so don't bother there either.
273-
if [[ "${{ matrix.os }}" != 'macos-14' && "${{ matrix.python-version }}" == '3.11'
274-
]]; then
275-
python -mpip install --upgrade pyside2 &&
276-
python -c 'import PySide2.QtCore' &&
277-
echo 'PySide2 is available' ||
278-
echo 'PySide2 is not available'
279-
fi
280264
python -mpip install --upgrade --only-binary :all: pyqt6 &&
281265
python -c 'import PyQt6.QtCore' &&
282266
echo 'PyQt6 is available' ||

azure-pipelines.yml

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -49,11 +49,8 @@ stages:
4949
- job: Pytest
5050
strategy:
5151
matrix:
52-
Windows_py311:
53-
vmImage: 'windows-2022' # Keep one job pinned to the oldest image
54-
python.version: '3.11'
5552
Windows_py312:
56-
vmImage: 'windows-latest'
53+
vmImage: 'windows-2022' # Keep one job pinned to the oldest image
5754
python.version: '3.12'
5855
Windows_py313:
5956
vmImage: 'windows-latest'

doc/devel/min_dep_policy.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -115,6 +115,7 @@ specification of the dependencies.
115115
========== ======== ======
116116
Matplotlib Python NumPy
117117
========== ======== ======
118+
3.12 3.12 1.25.0
118119
3.11 3.11 1.25.0
119120
`3.10`_ 3.10 1.23.0
120121
`3.9`_ 3.9 1.23.0

doc/devel/testing.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -331,7 +331,7 @@ You can also run tox on a subset of environments:
331331

332332
.. code-block:: bash
333333
334-
$ tox -e py310,py311
334+
$ tox -e py312,py314
335335
336336
Tox processes environments sequentially by default,
337337
which can be slow when testing multiple environments.

doc/install/dependencies.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ When installing through a package manager like ``pip`` or ``conda``, the
2020
mandatory dependencies are automatically installed. This list is mainly for
2121
reference.
2222

23-
* `Python <https://www.python.org/downloads/>`_ (>= 3.11)
23+
* `Python <https://www.python.org/downloads/>`_ (>= 3.12)
2424
* `contourpy <https://pypi.org/project/contourpy/>`_ (>= 1.0.1)
2525
* `cycler <https://matplotlib.org/cycler/>`_ (>= 0.10.0)
2626
* `dateutil <https://pypi.org/project/python-dateutil/>`_ (>= 2.7)

environment.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ dependencies:
2626
- pygobject
2727
- pyparsing>=3
2828
- pyqt
29-
- python>=3.11
29+
- python>=3.12
3030
- python-dateutil>=2.1
3131
- setuptools_scm<10
3232
- wxpython

0 commit comments

Comments
 (0)