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

Remove support for python 3.8 #24919

merged 9 commits into from
Jan 11, 2023

Conversation

ksunden
Copy link
Member

@ksunden ksunden commented Jan 10, 2023

PR Summary

PR Checklist

Documentation and Tests

  • Has pytest style unit tests (and pytest passes)
  • Documentation is sphinx and numpydoc compliant (the docs should build without error).
  • New plotting related features are documented with examples.

Release Notes

  • New features are marked with a .. versionadded:: directive in the docstring and documented in doc/users/next_whats_new/
  • API changes are marked with a .. versionchanged:: directive in the docstring and documented in doc/api/next_api_changes/
  • Release notes conform with instructions in next_whats_new/README.rst or next_api_changes/README.rst

@tacaswell tacaswell added this to the v3.8.0 milestone Jan 10, 2023
- 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)

@tacaswell
Copy link
Member

The minimum test is failing because we are building pillow from source with out webp, we probably should add a skip check on that test (I have a vague memory of someone else reporting the same failure, but not sure where).

@ksunden
Copy link
Member Author

ksunden commented Jan 10, 2023

Alternatively, we could bump the minimum version of Pillow if we wanted to ensure wheels are available.

Looks like the first version to supply a 3.9 wheel is pillow 8.0.0 (released Oct 2020)

By NEP 29/SPEC 0 standards (24 months) would be pillow 8.1 or thereabouts (and later for expected mpl 3.8 release date)

@oscargus
Copy link
Member

oscargus commented Jan 10, 2023

webp was here: #24711 (Py 3.12) so it may still make sense to have it fail gracefully (people may build on strange platforms etc).

Co-authored-by: Oscar Gustafsson <oscar.gustafsson@gmail.com>
@ksunden
Copy link
Member Author

ksunden commented Jan 10, 2023

By Pillow's docs, they do not support pillow <8.0 on py3.9 so I think I'll start there. I don't disagree that a graceful fallback/skip/xfail is a better solution long term, just lean towards following upstream when it comes to python support.

If it still fails, I'll add the skips here, but if it passes, I think that can be done in an alternate PR (either on its own or in #24711)

@ksunden
Copy link
Member Author

ksunden commented Jan 10, 2023

Other potential bump to minimum supported versions (picked out because the minimum version currently specified is not installable as a wheel on 3.9):

  • kiwisolver: bump from 1.0.1 (rel Oct 2017) to 1.3.1 (rel Nov 2020, 1.3.0 has py3.9 wheel, but was marked as yanked on pypi)

@ksunden
Copy link
Member Author

ksunden commented Jan 10, 2023

Appveyor may need to be 3.10, waiting for the queue to see if the problems on 3.11 persist

@oscargus
Copy link
Member

Failure comes from GTK4-warnings: https://gitlab.gnome.org/GNOME/pygobject/-/issues/494

@oscargus oscargus added the CI: Run cibuildwheel Run wheel building tests on a PR label Jan 11, 2023
@tacaswell
Copy link
Member

It looks likes we already filter warnings on that test and just need to add ImportWarning as well (which I am going to assume is the next step up from the DeprecationWarning that gtk4 was triggering?)

* `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)

Copy link
Member

@oscargus oscargus left a comment

Choose a reason for hiding this comment

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

Feel free to self merge if you do not want to bump numpy now.

@tacaswell
Copy link
Member

Lets do numpy in it's own PR.

@tacaswell tacaswell merged commit eab217f into matplotlib:main Jan 11, 2023
@greglucas greglucas mentioned this pull request Jan 14, 2023
@oscargus
Copy link
Member

Did the Azure tests stop working with this PR or was it just around this PR (or am I missing something)?

@oscargus oscargus mentioned this pull request Jan 15, 2023
6 tasks
@oscargus oscargus mentioned this pull request Jul 9, 2023
6 tasks
@EwoutH
Copy link

EwoutH commented Oct 15, 2023

NEP 29 was superseded by the scientific python ecosystem coordination guideline SPEC 0 — Minimum Supported Versions. Where NEP had a 42 month support windows (3.5 years) for each Python version, SPEC 0 recommends a 3 year support window.

If we were to follow SPEC 0, than Python 3.9 support can already be dropped, since it was released October 5th, 2020.

@QuLogic
Copy link
Member

QuLogic commented Oct 16, 2023

3.8 is already released; we aren't going to change the supported Python version in it.

@EwoutH
Copy link

EwoutH commented Oct 17, 2023

Not dropping Python 3.8 support for the existing Matplotlib 3.8.x releases of course, but it can be dropped on the current master branch (towards the 3.9.x releases).

(which coincidentally is very fitting, requiring Python 3.9 for Matplotlib 3.9)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
CI: Run cibuildwheel Run wheel building tests on a PR
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants