-
-
Notifications
You must be signed in to change notification settings - Fork 1.8k
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
Drop support for Python 3.7 (not until January 2024) #10113
Comments
6 months seems fine to me. |
Agree, I don't think we need to hurry to drop old versions. The maintenance load from old versions in typeshed isn't that great, and lots of people still use 3.7. |
I don't have a strong opinion either way, I just wanted to have the discussion. 6 months is fine for me! Edit: Well, one reason I am looking forward to dropping support for 3.7 is so that we can use PEP 570 syntax in typeshed. But that doesn't justify breaking other projects, and can definitely wait. |
6 months seems reasonable, it's also in line with typeshed's already established time frame of supporting obsolete stubs. And just like obsolete stubs, older versions will still be available on PyPI. |
Hmm, can't you use the |
Short answer is: I could, but I'd rather wait. I didn't think of a codemod, so that removes the concern of having to do additional work to migrate. |
We're going to face an issue when mypy 1.5 is released, due to the fact that mypy v1.5 will not support being run on Python 3.7. This will break our stubtest-stdlib job on Python 3.7, which has to be run using Python 3.7 (the We have four options that I can see:
|
About your second suggestion: Even the grep command that gets the mypy version in Github Actions may not need much updating since passing in both lines/restrictions should be fine (one will always be skipped due to python version requirement) |
I think option 3 sounds reasonable to me. Our 3.7 support should be fairly stable by now, so we mainly lose regression tests for 3.7 running with Python. I'm okay with that. |
The main difference to option 4 is that we don't actively clean up our code by removing 3.7 branches etc. |
Yes, we would "drop support" for Python 3.7 in that we wouldn't actively test with it in CI anymore, so we wouldn't be able to guarantee that our Python 3.7 stubs were bug-free. But we wouldn't remove the 3.7 branches or switch to using PEP-570 syntax etc. for another few months. That sounds okay to me as well. |
I wonder whether we should update our documents to claim that we only support Python 3.8+, but leave the branches in and don't use PEP 570 syntax until January. We can't really guarantee Python 3.7 support anymore and this can lead to confusion due to tests not being run etc. But inofficially we'd still support it. |
Note that we are still running py37 tests with pyright. But yeah, I agree that the current situation is somewhat confusing. |
How to remove support. (Please amend as necessary.) Initial PRs
Subsequent PRs
|
Python 3.7 will reach end-of-life on 2023-06-27. For 3.6, we waited 6 months after EOL before dropping support. Do we want to do something similar this time, or are we happy with a shorter grace period?
3.7 is still a very popular Python version. On the other hand, large parts of the Python ecosystem have already dropped support for Python 3.7 in their latest versions (flake8, isort, numpy, pandas, Django).
The text was updated successfully, but these errors were encountered: