Skip to content

Remove support for python 3.8 #24919

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 9 commits into from
Jan 11, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .appveyor.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,10 +22,10 @@ environment:
--cov-report= --cov=lib --log-level=DEBUG

matrix:
- PYTHON_VERSION: "3.8"
- PYTHON_VERSION: "3.9"
CONDA_INSTALL_LOCN: "C:\\Miniconda3-x64"
TEST_ALL: "no"
- PYTHON_VERSION: "3.9"
- PYTHON_VERSION: "3.10"
CONDA_INSTALL_LOCN: "C:\\Miniconda3-x64"
TEST_ALL: "no"

Expand Down
6 changes: 3 additions & 3 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -205,9 +205,9 @@ commands:
#

jobs:
docs-python38:
docs-python39:
docker:
- image: cimg/python:3.8
- image: cimg/python:3.9
resource_class: large
steps:
- checkout
Expand Down Expand Up @@ -250,4 +250,4 @@ workflows:
jobs:
# NOTE: If you rename this job, then you must update the `if` condition
# and `circleci-jobs` option in `.github/workflows/circleci.yml`.
- docs-python38
- docs-python39
2 changes: 1 addition & 1 deletion .github/workflows/cibuildsdist.yml
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ jobs:
strategy:
matrix:
os: [ubuntu-20.04]
python-version: ['3.8', '3.9', '3.10', '3.11']
python-version: ['3.9', '3.10', '3.11']

steps:
- uses: actions/checkout@v3
Expand Down
15 changes: 1 addition & 14 deletions .github/workflows/cibuildwheel.yml
Original file line number Diff line number Diff line change
Expand Up @@ -100,23 +100,10 @@ jobs:
MPL_DISABLE_FH4: "yes"
CIBW_ARCHS: ${{ matrix.cibw_archs }}

- name: Build wheels for CPython 3.8
uses: pypa/cibuildwheel@v2.11.4
env:
CIBW_BUILD: "cp38-*"
CIBW_SKIP: "*-musllinux*"
CIBW_MANYLINUX_X86_64_IMAGE: manylinux2010
CIBW_MANYLINUX_I686_IMAGE: manylinux2010
CIBW_BEFORE_BUILD: >-
pip install certifi numpy==1.19.2 &&
git clean -fxd build
MPL_DISABLE_FH4: "yes"
CIBW_ARCHS: ${{ matrix.cibw_archs }}

- name: Build wheels for PyPy
uses: pypa/cibuildwheel@v2.11.4
env:
CIBW_BUILD: "pp38-* pp39-*"
CIBW_BUILD: "pp39-*"
CIBW_SKIP: "*-musllinux*"
CIBW_BEFORE_BUILD: >-
pip install certifi oldest-supported-numpy &&
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/circleci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ name: "CircleCI artifact handling"
on: [status]
jobs:
circleci_artifacts_redirector_job:
if: "${{ github.event.context == 'ci/circleci: docs-python38' }}"
if: "${{ github.event.context == 'ci/circleci: docs-python39' }}"
permissions:
statuses: write
runs-on: ubuntu-latest
Expand All @@ -14,11 +14,11 @@ jobs:
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
artifact-path: 0/doc/build/html/index.html
circleci-jobs: docs-python38
circleci-jobs: docs-python39
job-title: View the built docs

post_warnings_as_review:
if: "${{ github.event.context == 'ci/circleci: docs-python38' }}"
if: "${{ github.event.context == 'ci/circleci: docs-python39' }}"
permissions:
contents: read
checks: write
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/reviewdog.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ jobs:
- name: Set up Python 3
uses: actions/setup-python@v4
with:
python-version: 3.8
python-version: 3.9

- name: Install flake8
run: pip3 install -r requirements/testing/flake8.txt
Expand Down
13 changes: 5 additions & 8 deletions .github/workflows/tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -37,27 +37,24 @@ jobs:
include:
- name-suffix: "(Minimum Versions)"
os: ubuntu-20.04
python-version: 3.8
python-version: 3.9
extra-requirements: '-c requirements/testing/minver.txt'
pyqt5-ver: '==5.11.2 sip==5.0.0' # oldest versions with a Py3.8 wheel.
pyqt5-ver: '==5.12.2 sip==5.0.0' # oldest versions with a Py3.9 wheel.
pyqt6-ver: '==6.1.0 PyQt6-Qt6==6.1.0'
pyside2-ver: '==5.14.0' # oldest version with working Py3.8 wheel.
pyside2-ver: '==5.15.1' # oldest version with working Py3.9 wheel.
pyside6-ver: '==6.0.0'
delete-font-cache: true
- os: ubuntu-20.04
python-version: 3.8
extra-requirements: '-r requirements/testing/extra.txt'
CFLAGS: "-fno-lto" # Ensure that disabling LTO works.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We probably want to keep the no LTO test case?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

added back (to 3.9)

- os: ubuntu-20.04
python-version: 3.9
extra-requirements: '-r requirements/testing/extra.txt'
CFLAGS: "-fno-lto" # Ensure that disabling LTO works.
- os: ubuntu-20.04
python-version: '3.10'
extra-requirements: '-r requirements/testing/extra.txt'
- os: ubuntu-20.04
python-version: '3.11'
- os: macos-latest
python-version: 3.8
python-version: 3.9

steps:
- uses: actions/checkout@v3
Expand Down
22 changes: 11 additions & 11 deletions azure-pipelines.yml
Original file line number Diff line number Diff line change
Expand Up @@ -38,33 +38,33 @@ stages:
- job: Pytest
strategy:
matrix:
Linux_py38:
vmImage: 'ubuntu-20.04' # keep one job pinned to the oldest image
python.version: '3.8'
Linux_py39:
vmImage: 'ubuntu-latest'
vmImage: 'ubuntu-20.04' # keep one job pinned to the oldest image
python.version: '3.9'
Linux_py310:
vmImage: 'ubuntu-latest'
python.version: '3.10'
macOS_py38:
vmImage: 'macOS-latest'
python.version: '3.8'
Linux_py311:
vmImage: 'ubuntu-latest'
python.version: '3.11'
macOS_py39:
vmImage: 'macOS-latest'
python.version: '3.9'
macOS_py310:
vmImage: 'macOS-latest'
python.version: '3.10'
Windows_py38:
vmImage: 'windows-2019' # keep one job pinned to the oldest image
python.version: '3.8'
macOS_py310:
vmImage: 'macOS-latest'
python.version: '3.11'
Windows_py39:
vmImage: 'windows-latest'
vmImage: 'windows-2019' # keep one job pinned to the oldest image
python.version: '3.9'
Windows_py310:
vmImage: 'windows-latest'
python.version: '3.10'
Windows_py311:
vmImage: 'windows-latest'
python.version: '3.11'
maxParallel: 4
pool:
vmImage: '$(vmImage)'
Expand Down
18 changes: 18 additions & 0 deletions doc/api/next_api_changes/development/24919-KS.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
Increase to minimum supported versions of dependencies
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

For Matplotlib 3.8, the :ref:`minimum supported versions <dependencies>` are
being bumped:

+------------+-----------------+---------------+
| Dependency | min in mpl3.7 | min in mpl3.8 |
+============+=================+===============+
| Python | 3.8 | 3.9 |
+------------+-----------------+---------------+
| kiwisolver | 1.0.1 | 1.3.1 |
+------------+-----------------+---------------+
| Pillow | 6.2.1 | 8.0 |
+------------+-----------------+---------------+

This is consistent with our :ref:`min_deps_policy` and `NEP29
<https://numpy.org/neps/nep-0029-deprecation_policy.html>`__
7 changes: 3 additions & 4 deletions doc/devel/dependencies.rst
Original file line number Diff line number Diff line change
Expand Up @@ -15,15 +15,15 @@ When installing through a package manager like ``pip`` or ``conda``, the
mandatory dependencies are automatically installed. This list is mainly for
reference.

* `Python <https://www.python.org/downloads/>`_ (>= 3.8)
* `Python <https://www.python.org/downloads/>`_ (>= 3.9)
* `contourpy <https://pypi.org/project/contourpy/>`_ (>= 1.0.1)
* `cycler <https://matplotlib.org/cycler/>`_ (>= 0.10.0)
* `dateutil <https://pypi.org/project/python-dateutil/>`_ (>= 2.7)
* `fontTools <https://fonttools.readthedocs.io/en/latest/>`_ (>= 4.22.0)
* `kiwisolver <https://github.com/nucleic/kiwi>`_ (>= 1.0.1)
* `kiwisolver <https://github.com/nucleic/kiwi>`_ (>= 1.3.1)
* `NumPy <https://numpy.org>`_ (>= 1.20)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Bump to 1.21 while at it? (End of month)

* `packaging <https://pypi.org/project/packaging/>`_ (>= 20.0)
* `Pillow <https://pillow.readthedocs.io/en/latest/>`_ (>= 6.2)
* `Pillow <https://pillow.readthedocs.io/en/latest/>`_ (>= 8.0)
* `pyparsing <https://pypi.org/project/pyparsing/>`_ (>= 2.3.1)
* `setuptools <https://setuptools.readthedocs.io/en/latest/>`_
* `pyparsing <https://pypi.org/project/pyparsing/>`_ (>= 2.3.1)
Expand Down Expand Up @@ -180,7 +180,6 @@ Minimum pip / manylinux support (linux)
Matplotlib publishes `manylinux wheels <https://github.com/pypa/manylinux>`_
which have a minimum version of pip which will recognize the wheels

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

In all cases the required version of pip is embedded in the CPython source.
Expand Down
1 change: 1 addition & 0 deletions lib/matplotlib/tests/test_getattr.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@

@pytest.mark.parametrize('module_name', module_names)
@pytest.mark.filterwarnings('ignore::DeprecationWarning')
@pytest.mark.filterwarnings('ignore::ImportWarning')
def test_getattr(module_name):
"""
Test that __getattr__ methods raise AttributeError for unknown keys.
Expand Down
2 changes: 1 addition & 1 deletion requirements/testing/extra.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Extra pip requirements for the Python 3.8+ builds
# Extra pip requirements for the Python 3.9+ builds

--prefer-binary
ipykernel
Expand Down
4 changes: 2 additions & 2 deletions requirements/testing/minver.txt
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,11 @@

contourpy==1.0.1
cycler==0.10
kiwisolver==1.0.1
kiwisolver==1.3.1
importlib-resources==3.2.0
numpy==1.20.0
packaging==20.0
pillow==6.2.1
pillow==8.0.0
pyparsing==2.3.1
python-dateutil==2.7
fonttools==4.22.0
5 changes: 2 additions & 3 deletions setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@
# and/or pip.
import sys

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

if sys.version_info < py_min_version:
error = """
Expand Down Expand Up @@ -293,7 +293,6 @@ def make_release_tree(self, base_dir, files):
'License :: OSI Approved :: Python Software Foundation License',
'Programming Language :: Python',
'Programming Language :: Python :: 3',
'Programming Language :: Python :: 3.8',
'Programming Language :: Python :: 3.9',
'Programming Language :: Python :: 3.10',
'Programming Language :: Python :: 3.11',
Expand Down