-
Notifications
You must be signed in to change notification settings - Fork 3
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
Python language version support status #1
Comments
Ah, maybe it should be documented here that the code should have 3.4 or 3.5 mentioned in the comments anywhere it was foreseen to need an update once we bump the requirement to 3.6. It may, however, need some refactoring beyond just deleting old code. For example, we should clean up the logic that supports two very different AST representations (3.4, and 3.5+) for The Python 3.8 has already plown ahead, changing the AST representation of constants again. As of this writing, the GTS docs haven't updated yet. So in the near future, we will need to handle The new representation of all constants with a single So, business as usual when you depend on the specifics of the AST representation in Python (which you must if you do macros), which sits squarely in the no guarantees part of the API... |
Exciting new things in 3.8 to keep track of:
(From the beta 3 release notes.) |
"The old format" is |
The GTS docs have partially updated to 3.8, but as of this writing don't yet have a mention of the new assignment-expression operator EDIT: the AST node is called |
In the semi-distant future, once Python 3.8 becomes the new minimum for Having read PEP 572, I'm still puzzled as to why the syntactically and semantically uniform as well as typographically more pleasing option didn't win, to just upgrade the existing Note that PEP 572 doesn't make What PEP 572 allows is that in our macros, we could repurpose a semantically more appropriate part of the syntax to denote any |
Ubuntu and Mint have since bumped to 3.8 as the default Python. As of April 2021, PyPy3 supports 3.7. According to the devblog, the focus is now on 3.8, so it might be Coming Soon™. |
As of 49d40ff, Python 3.4 and 3.5 support dropped in the We now require Python 3.6 or later. The main target for Status (April 2021) As of the mentioned commit, the So far the Turing tarpit Python versions Python 3.7 support: no changes to Python 3.8 support: we still need Python 3.9 support: we need to handle the removal of the Python 3.10 support: a quick scan of the Python 3.10 release notes (as of April 2021, at 3.10.0a7) seems to suggest there are no AST changes this time. This may still change, as the final 3.10 is scheduled for October 2021. It would be nice to support 3.10, too, but no promises there - we can't claim compatibility with "3.10" until there is an official release of 3.10. So, I might make a separate issue for it. Until GTS officially updates, its issue tracker may be useful to look at. As of this writing, nothing about 3.10 there either, at least yet. As of Python 3.9, the Python Next steps The conversion work will focus on getting |
As of 73cf03e, AST changes for supporting 3.6, 3.7, 3.8 and 3.9 are done. Also, string formatting is now in 3.6+ f-string style, and the detection of Python 3.8 in There's still a lot of work to get all of the macro code fully ported to |
As the changes needed for supporting 3.8 and 3.9 in EDIT: As of end of May 2021, the macro expander porting is also done. |
Version 0.15.0 supports Python language versions 3.6, 3.7, 3.8 and 3.9. |
Version 0.15.1 supports Python language versions 3.6, 3.7, 3.8, 3.9 and 3.10. We should drop 3.6 soon-ish, but there's no practical hurry to do so as long as it's available in GitHub's CI. Once GitHub drops it, it's time to remove 3.6-isms from the codebase. |
Recent AST changes in the language:
|
As of v0.15.3, Python 3.6 and 3.7 are no longer supported, since they are already EOL. Codebase cleanup awaits... |
Long-term support roadmap (updated 26 September 2024)
Python support schedule (in chart format; original source). Assuming that
unpythonic
stays in active development,unpythonic
will try to support any Python 3.x that is still in official support by the Python devs.For particular Python versions, this means that, approximately:
3.6 supported until January 2022EOL, no longer supported inunpythonic
0.15.33.7 supported until July 2023EOL, no longer supported inunpythonic
0.15.3Since it's basically just me doing this, and I only have resources to barely support one unified codebase, this implies that at any moment in time, the
unpythonic
codebase will be based on the oldest currently supported Python version - with possibly the "new way" included as commented-out code (for easy future porting) if it is much more elegant.I will not backport bug fixes. Any bug fixes will be released in a new version of
unpythonic
, with Python version support appropriate for its release date.Current status of Python language version support in
unpythonic
is tracked by posting new comments to this issue whenever appropriate.Original posting below.
Support for Python 3.4 ended in spring 2019, and for 3.5 in September 2020.
Starting in
unpythonic
0.15, drop any code specific to 3.4 or 3.5, and bump the Python version requirement to 3.6. That version still has some years of support remaining, and is the default python3 e.g. on recent Ubuntu versions.This should simplify especially any macro code that needs to handle the AST for function calls.
The text was updated successfully, but these errors were encountered: