Skip to content

Conversation

@dcbaker
Copy link
Member

@dcbaker dcbaker commented Dec 19, 2025

It's time, there are nice features added by 3.8, 3.9, and 3.10. We're also forced to pin mypy, meaning we don't get access to mypy and typeshed fixes.

Closes: #14326

@dcbaker dcbaker added this to the 1.10.1 milestone Dec 19, 2025
@dcbaker dcbaker requested a review from jpakkane as a code owner December 19, 2025 16:24
Copy link
Member

@eli-schwartz eli-schwartz left a comment

Choose a reason for hiding this comment

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

Yeah, oops, looks like we missed the boat on adding a deprecation warning in the last cycle....

@dcbaker dcbaker force-pushed the submit/drop-python-3.7 branch from 9c69d9a to c599fe2 Compare December 19, 2025 16:31
@dcbaker
Copy link
Member Author

dcbaker commented Dec 19, 2025

Oops, I missed updating the docs about supported versions

@eli-schwartz eli-schwartz modified the milestones: 1.10.1, 1.11 Dec 19, 2025
@dcbaker dcbaker force-pushed the submit/drop-python-3.7 branch 2 times, most recently from 415a30a to 18159aa Compare December 19, 2025 16:47
It's time, there are nice features added by 3.8, 3.9, and 3.10. We're
also forced to pin mypy, meaning we don't get access to mypy and
typeshed fixes.
@dcbaker dcbaker force-pushed the submit/drop-python-3.7 branch from 18159aa to 02f1ff5 Compare December 19, 2025 16:49
@jpakkane
Copy link
Member

FTR at the time of writing Debian oldstable has 3.11 and Ubuntu 22/04 has 3.10. The number of people still depending on 3.8 is likely to be vanishingly small.

@eli-schwartz
Copy link
Member

FTR at the time of writing Debian oldstable has 3.11 and Ubuntu 22/04 has 3.10. The number of people still depending on 3.8 is likely to be vanishingly small.

See #14326 (comment) :)

RHEL has 3.9 by default, for example.

@bonzini
Copy link
Collaborator

bonzini commented Dec 19, 2025

RHEL has 3.9 by default, for example.

You don't need to care about it. RHEL users can use whatever they want, only RHEL developers/packagers might need to use the 3.9 interpreter in. But RHEL 9 packages are not going to need Meson 1.11 or 1.12 (out in summer 2026).

@dcbaker
Copy link
Member Author

dcbaker commented Dec 19, 2025

Updated to target 1.11 instead of 1.10.1

@dcbaker
Copy link
Member Author

dcbaker commented Dec 19, 2025

You don't need to care about it. RHEL users can use whatever they want, only RHEL developers/packagers might need to use the 3.9 interpreter in. But RHEL 9 packages are not going to need Meson 1.11 or 1.12 (out in summer 2026).

One RHEL developer/packager I know said "Solving issues like this is why the pay me the (not so) big bucks"

@nirbheek
Copy link
Member

Actually, Xcode on macOS ships with Python 3.9, which is why that's the minimum Python version required by GStreamer. It would be good if we could still support that. The process of installing Meson on macOS is just pip3 install meson right now, and after this it would involve downloading Python manually, or installing Homebrew for Python.

@jpakkane
Copy link
Member

And presumably Apple will not give any information if or when they update their Python version?

@eli-schwartz
Copy link
Member

Actually, Xcode on macOS ships with Python 3.9, which is why that's the minimum Python version required by GStreamer. It would be good if we could still support that. The process of installing Meson on macOS is just pip3 install meson right now, and after this it would involve downloading Python manually, or installing Homebrew for Python.

This is an excellent point which highlights why we don't want to unnecessarily raise versions (and avoided it for 3.8 / 3.9), and also why we need to genuinely, correctly, offer a proper release cycle deprecation. Added to the list in #14326

Unfortunately there is no way we can use e.g. Structural Pattern Matching1 but also support 3.9, that's exactly why we are having a conversation about bumping minimums now that this particular new python version offers genuinely compelling new language features. Our choices are:

  • block on waiting for $CORP timeline (we have no insight into their timeline)
  • Do The Thing™

Footnotes

  1. it is theoretically possible to implement a compiler that takes py 3.10 code and spits out desugared, expanded, uglified 3.9 code. Someone did this for f-strings via the "future-fstrings" package.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Move to python 3.10

5 participants