8000 Remove support for python 3.8 by ksunden · Pull Request #24919 · matplotlib/matplotlib · GitHub
[go: up one dir, main page]

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
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.11"
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
12 changes: 4 additions & 8 deletions .github/workflows/tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -37,17 +37,13 @@ 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'
Expand All @@ -57,7 +53,7 @@ jobs:
- 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
4 changes: 4 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,4 @@
Support for Python 3.8 dropped
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

For Matplotlib 3.8, the minimum supported version of Python is 3.9.
3 changes: 1 addition & 2 deletions doc/devel/dependencies.rst
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ 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)
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
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
3 changes: 1 addition & 2 deletions setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
# and/or pip.
import sys

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

if sys.version_info < py_min_version:
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
0