Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

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 4 .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 6 .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 2 .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 15 .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 6 .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 2 .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 13 .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 22 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 18 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 7 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 1 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 2 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 4 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 5 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
Morty Proxy This is a proxified and sanitized view of the page, visit original site.