duesee / imap-codec

Rock-solid and complete codec for IMAP
Apache License 2.0
37 stars 14 forks source link

Minimum supported Python version #545

Closed HenningHolmDE closed 1 month ago

HenningHolmDE commented 1 month ago

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: Python 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" in pyproject.toml by default.

Impact: The lowest supported Python version should be checked against in CI and newer Python language features cannot be used freely.

duesee commented 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 :-)

HenningHolmDE commented 1 month ago

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.

HenningHolmDE commented 1 month ago

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.