Skip to content

Commit eab217f

Browse files
authored
Merge pull request #24919 from ksunden/rm_py38
Remove support for python 3.8
2 parents df4584a + cc39e21 commit eab217f

File tree

14 files changed

+54
-53
lines changed

14 files changed

+54
-53
lines changed

.appveyor.yml

+2-2
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,10 @@ environment:
2222
--cov-report= --cov=lib --log-level=DEBUG
2323

2424
matrix:
25-
- PYTHON_VERSION: "3.8"
25+
- PYTHON_VERSION: "3.9"
2626
CONDA_INSTALL_LOCN: "C:\\Miniconda3-x64"
2727
TEST_ALL: "no"
28-
- PYTHON_VERSION: "3.9"
28+
- PYTHON_VERSION: "3.10"
2929
CONDA_INSTALL_LOCN: "C:\\Miniconda3-x64"
3030
TEST_ALL: "no"
3131

.circleci/config.yml

+3-3
Original file line numberDiff line numberDiff line change
@@ -205,9 +205,9 @@ commands:
205205
#
206206

207207
jobs:
208-
docs-python38:
208+
docs-python39:
209209
docker:
210-
- image: cimg/python:3.8
210+
- image: cimg/python:3.9
211211
resource_class: large
212212
steps:
213213
- checkout
@@ -250,4 +250,4 @@ workflows:
250250
jobs:
251251
# NOTE: If you rename this job, then you must update the `if` condition
252252
# and `circleci-jobs` option in `.github/workflows/circleci.yml`.
253-
- docs-python38
253+
- docs-python39

.github/workflows/cibuildsdist.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ jobs:
3737
strategy:
3838
matrix:
3939
os: [ubuntu-20.04]
40-
python-version: ['3.8', '3.9', '3.10', '3.11']
40+
python-version: ['3.9', '3.10', '3.11']
4141

4242
steps:
4343
- uses: actions/checkout@v3

.github/workflows/cibuildwheel.yml

+1-14
Original file line numberDiff line numberDiff line change
@@ -100,23 +100,10 @@ jobs:
100100
MPL_DISABLE_FH4: "yes"
101101
CIBW_ARCHS: ${{ matrix.cibw_archs }}
102102

103-
- name: Build wheels for CPython 3.8
104-
uses: pypa/cibuildwheel@v2.11.4
105-
env:
106-
CIBW_BUILD: "cp38-*"
107-
CIBW_SKIP: "*-musllinux*"
108-
CIBW_MANYLINUX_X86_64_IMAGE: manylinux2010
109-
CIBW_MANYLINUX_I686_IMAGE: manylinux2010
110-
CIBW_BEFORE_BUILD: >-
111-
pip install certifi numpy==1.19.2 &&
112-
git clean -fxd build
113-
MPL_DISABLE_FH4: "yes"
114-
CIBW_ARCHS: ${{ matrix.cibw_archs }}
115-
116103
- name: Build wheels for PyPy
117104
uses: pypa/cibuildwheel@v2.11.4
118105
env:
119-
CIBW_BUILD: "pp38-* pp39-*"
106+
CIBW_BUILD: "pp39-*"
120107
CIBW_SKIP: "*-musllinux*"
121108
CIBW_BEFORE_BUILD: >-
122109
pip install certifi oldest-supported-numpy &&

.github/workflows/circleci.yml

+3-3
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-python38' }}"
6+
if: "${{ github.event.context == 'ci/circleci: docs-python39' }}"
77
permissions:
88
statuses: write
99
runs-on: ubuntu-latest
@@ -14,11 +14,11 @@ jobs:
1414
with:
1515
repo-token: ${{ secrets.GITHUB_TOKEN }}
1616
artifact-path: 0/doc/build/html/index.html
17-
circleci-jobs: docs-python38
17+
circleci-jobs: docs-python39
1818
job-title: View the built docs
1919

2020
post_warnings_as_review:
21-
if: "${{ github.event.context == 'ci/circleci: docs-python38' }}"
21+
if: "${{ github.event.context == 'ci/circleci: docs-python39' }}"
2222
permissions:
2323
contents: read
2424
checks: write

.github/workflows/reviewdog.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ jobs:
1717
- name: Set up Python 3
1818
uses: actions/setup-python@v4
1919
with:
20-
python-version: 3.8
20+
python-version: 3.9
2121

2222
- name: Install flake8
2323
run: pip3 install -r requirements/testing/flake8.txt

.github/workflows/tests.yml

+5-8
Original file line numberDiff line numberDiff line change
@@ -37,27 +37,24 @@ jobs:
3737
include:
3838
- name-suffix: "(Minimum Versions)"
3939
os: ubuntu-20.04
40-
python-version: 3.8
40+
python-version: 3.9
4141
extra-requirements: '-c requirements/testing/minver.txt'
42-
pyqt5-ver: '==5.11.2 sip==5.0.0' # oldest versions with a Py3.8 wheel.
42+
pyqt5-ver: '==5.12.2 sip==5.0.0' # oldest versions with a Py3.9 wheel.
4343
pyqt6-ver: '==6.1.0 PyQt6-Qt6==6.1.0'
44-
pyside2-ver: '==5.14.0' # oldest version with working Py3.8 wheel.
44+
pyside2-ver: '==5.15.1' # oldest version with working Py3.9 wheel.
4545
pyside6-ver: '==6.0.0'
4646
delete-font-cache: true
47-
- os: ubuntu-20.04
48-
python-version: 3.8
49-
extra-requirements: '-r requirements/testing/extra.txt'
50-
CFLAGS: "-fno-lto" # Ensure that disabling LTO works.
5147
- os: ubuntu-20.04
5248
python-version: 3.9
5349
extra-requirements: '-r requirements/testing/extra.txt'
50+
CFLAGS: "-fno-lto" # Ensure that disabling LTO works.
5451
- os: ubuntu-20.04
5552
python-version: '3.10'
5653
extra-requirements: '-r requirements/testing/extra.txt'
5754
- os: ubuntu-20.04
5855
python-version: '3.11'
5956
- os: macos-latest
60-
python-version: 3.8
57+
python-version: 3.9
6158

6259
steps:
6360
- uses: actions/checkout@v3

azure-pipelines.yml

+11-11
Original file line numberDiff line numberDiff line change
@@ -38,33 +38,33 @@ stages:
3838
- job: Pytest
3939
strategy:
4040
matrix:
41-
Linux_py38:
42-
vmImage: 'ubuntu-20.04' # keep one job pinned to the oldest image
43-
python.version: '3.8'
4441
Linux_py39:
45-
vmImage: 'ubuntu-latest'
42+
vmImage: 'ubuntu-20.04' # keep one job pinned to the oldest image
4643
python.version: '3.9'
4744
Linux_py310:
4845
vmImage: 'ubuntu-latest'
4946
python.version: '3.10'
50-
macOS_py38:
51-
vmImage: 'macOS-latest'
52-
python.version: '3.8'
47+
Linux_py311:
48+
vmImage: 'ubuntu-latest'
49+
python.version: '3.11'
5350
macOS_py39:
5451
vmImage: 'macOS-latest'
5552
python.version: '3.9'
5653
macOS_py310:
5754
vmImage: 'macOS-latest'
5855
python.version: '3.10'
59-
Windows_py38:
60-
vmImage: 'windows-2019' # keep one job pinned to the oldest image
61-
python.version: '3.8'
56+
macOS_py310:
57+
vmImage: 'macOS-latest'
58+
python.version: '3.11'
6259
Windows_py39:
63-
vmImage: 'windows-latest'
60+
vmImage: 'windows-2019' # keep one job pinned to the oldest image
6461
python.version: '3.9'
6562
Windows_py310:
6663
vmImage: 'windows-latest'
6764
python.version: '3.10'
65+
Windows_py311:
66+
vmImage: 'windows-latest'
67+
python.version: '3.11'
6868
maxParallel: 4
6969
pool:
7070
vmImage: '$(vmImage)'
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
Increase to minimum supported versions of dependencies
2+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
3+
4+
For Matplotlib 3.8, the :ref:`minimum supported versions <dependencies>` are
5+
being bumped:
6+
7+
+------------+-----------------+---------------+
8+
| Dependency | min in mpl3.7 | min in mpl3.8 |
9+
+============+=================+===============+
10+
| Python | 3.8 | 3.9 |
11+
+------------+-----------------+---------------+
12+
| kiwisolver | 1.0.1 | 1.3.1 |
13+
+------------+-----------------+---------------+
14+
| Pillow | 6.2.1 | 8.0 |
15+
+------------+-----------------+---------------+
16+
17+
This is consistent with our :ref:`min_deps_policy` and `NEP29
18+
<https://numpy.org/neps/nep-0029-deprecation_policy.html>`__

doc/devel/dependencies.rst

+3-4
Original file line numberDiff line numberDiff line change
@@ -15,15 +15,15 @@ When installing through a package manager like ``pip`` or ``conda``, the
1515
mandatory dependencies are automatically installed. This list is mainly for
1616
reference.
1717

18-
* `Python <https://www.python.org/downloads/>`_ (>= 3.8)
18+
* `Python <https://www.python.org/downloads/>`_ (>= 3.9)
1919
* `contourpy <https://pypi.org/project/contourpy/>`_ (>= 1.0.1)
2020
* `cycler <https://matplotlib.org/cycler/>`_ (>= 0.10.0)
2121
* `dateutil <https://pypi.org/project/python-dateutil/>`_ (>= 2.7)
2222
* `fontTools <https://fonttools.readthedocs.io/en/latest/>`_ (>= 4.22.0)
23-
* `kiwisolver <https://github.com/nucleic/kiwi>`_ (>= 1.0.1)
23+
* `kiwisolver <https://github.com/nucleic/kiwi>`_ (>= 1.3.1)
2424
* `NumPy <https://numpy.org>`_ (>= 1.20)
2525
* `packaging <https://pypi.org/project/packaging/>`_ (>= 20.0)
26-
* `Pillow <https://pillow.readthedocs.io/en/latest/>`_ (>= 6.2)
26+
* `Pillow <https://pillow.readthedocs.io/en/latest/>`_ (>= 8.0)
2727
* `pyparsing <https://pypi.org/project/pyparsing/>`_ (>= 2.3.1)
2828
* `setuptools <https://setuptools.readthedocs.io/en/latest/>`_
2929
* `pyparsing <https://pypi.org/project/pyparsing/>`_ (>= 2.3.1)
@@ -180,7 +180,6 @@ Minimum pip / manylinux support (linux)
180180
Matplotlib publishes `manylinux wheels <https://github.com/pypa/manylinux>`_
181181
which have a minimum version of pip which will recognize the wheels
182182

183-
- Python 3.8: ``manylinx2010`` / pip >= 19.0
184183
- Python 3.9+: ``manylinx2014`` / pip >= 19.3
185184

186185
In all cases the required version of pip is embedded in the CPython source.

lib/matplotlib/tests/test_getattr.py

+1
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818

1919
@pytest.mark.parametrize('module_name', module_names)
2020
@pytest.mark.filterwarnings('ignore::DeprecationWarning')
21+
@pytest.mark.filterwarnings('ignore::ImportWarning')
2122
def test_getattr(module_name):
2223
"""
2324
Test that __getattr__ methods raise AttributeError for unknown keys.

requirements/testing/extra.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# Extra pip requirements for the Python 3.8+ builds
1+
# Extra pip requirements for the Python 3.9+ builds
22

33
--prefer-binary
44
ipykernel

requirements/testing/minver.txt

+2-2
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,11 @@
22

33
contourpy==1.0.1
44
cycler==0.10
5-
kiwisolver==1.0.1
5+
kiwisolver==1.3.1
66
importlib-resources==3.2.0
77
numpy==1.20.0
88
packaging==20.0
9-
pillow==6.2.1
9+
pillow==8.0.0
1010
pyparsing==2.3.1
1111
python-dateutil==2.7
1212
fonttools==4.22.0

setup.py

+2-3
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@
88
# and/or pip.
99
import sys
1010

11-
py_min_version = (3, 8) # minimal supported python version
12-
since_mpl_version = (3, 6) # py_min_version is required since this mpl version
11+
py_min_version = (3, 9) # minimal supported python version
12+
since_mpl_version = (3, 8) # py_min_version is required since this mpl version
1313

1414
if sys.version_info < py_min_version:
1515
error = """
@@ -293,7 +293,6 @@ def make_release_tree(self, base_dir, files):
293293
'License :: OSI Approved :: Python Software Foundation License',
294294
'Programming Language :: Python',
295295
'Programming Language :: Python :: 3',
296-
'Programming Language :: Python :: 3.8',
297296
'Programming Language :: Python :: 3.9',
298297
'Programming Language :: Python :: 3.10',
299298
'Programming Language :: Python :: 3.11',

0 commit comments

Comments
 (0)