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 3 times, most recently 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.

@nirbheek
Copy link
Member

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

Apple never communicates this stuff, yes. Python 3.9 being EOL might push them to update it, though. Of course this means at some point we have to give up.

Our choices are:

There's another option. We could keep Meson 1.10 as an "LTS" version that is supported and has releases for the next year or two. I did this after the Meson release that started requiring Python 3.7.

I am happy to do this, as long as the other maintainers keep labeling (Not milestoning! A PR can only have one milestone.) non-feature MRs for the 1.10 LTS release.

@eli-schwartz
Copy link
Member

That is not "another" option, that was the current plan already. :D

Sounds like we are in agreement.

Of course, xcode users will need to make sure neither they nor any of their source dependencies start using features introduced in meson 1.12, but that's "hopefully" not such a problem as by and large people tend to be conservative about bumping their meson_version: minimums (except maybe in python land where they don't mind having pip install xxx install the latest version of meson in order to then build xxx using it).

@eli-schwartz
Copy link
Member

E.g. the FAQ explicitly calls this scenario out: https://mesonbuild.com/FAQ.html#do-you-at-least-support-my-ancient-python-install

@nirbheek
Copy link
Member

E.g. the FAQ explicitly calls this scenario out: https://mesonbuild.com/FAQ.html#do-you-at-least-support-my-ancient-python-install

It needs updating, it claims that Meson supports Python 3.7...

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 02f1ff5 to a8ce7f8 Compare January 9, 2026 18:03

Python older than 3.10 is now EOL, and Meson will drop support for these
versions in the next major release, and will freely use features from 3.8, 3.9
and 3.10. Support for these versions will remain for the 1.10.x series.
Copy link
Member

Choose a reason for hiding this comment

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

This contradicts the README which suggestst hat Python 3.9 support will remain for the 1.11.x series

@amitdo
Copy link
Contributor

amitdo commented Jan 18, 2026

Apple's macOS 12.3, released in March 14 2022, shipped with Python 3.9. In previous versions of macOS the default pre-installed Python version was Python 2.7. Python 2.7 reached its EOL in January 1, 2020. Python 3.9.0 was released in October 5 and the 3.9 series reached its EOL in October 31, 2025.

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

6 participants