Closed HenningHolmDE closed 1 month ago
I don't have too much knowledge in this area but I feel that our priority should be to aim for low maintenance. Also, if there are features we want -- I somehow had structural pattern matching in mind which is usable from 3.10 -- we should give us this freedom. Not really an answer but hopefully a direction :-)
As the "features we want" would only be used in examples, I would argue that forcing users to upgrade to a newer Python version should generally be avoided, as other packages might not yet (or no longer) be available for that version. That said, it does of course not make sense for us to jump through too many hoops to support all "bugfix" versions.
As it turned out, was building and testing all supported Python versions already part of the CI template provided by maturin which was adopted in #576.
For now, there is no strong reason for increasing the minimum supported Python over 3.8.
For the Python bindings, we have to decide on how to integrate with the Python release cycle, i.e. what will be the lowest Python version that the bindings will support.
The Python Developer's Guide has a nice overview over the release cycle:
Currently, Python 3.8 is the oldest "supported" version (up until 2024-10) and the PyO3 template also sets
requires-python = ">=3.8"
inpyproject.toml
by default.Impact: The lowest supported Python version should be checked against in CI and newer Python language features cannot be used freely.