-
-
Notifications
You must be signed in to change notification settings - Fork 1.1k
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
Start requiring Python 3.6.2 or newer #5065
Comments
Is there any reliable way to get user statistics? I saw some discussion in the referenced issue and this would be helpful. I am relatively new to the |
There are some situations where upgrading a Python version, even just a small step like this, is difficult. Both points deal more with production code, but there can be instances where users want to use the exact same Python version in their test environment (this makes at least very good sense for dynamic tests). But the real question is, if those corner cases should hinder us from dropping the support. |
I'm on mobile so I'll try to stay short. I think black did it, so we can probably too. Also the pipystats link in the old issue is still valid and show a dramatic drop in 3.6 usage recentely (New Debian with 3.9 ?) which probably indicate that < 3.6.2 usage is even lower now. |
The black PR with which they started requiring 3.6.2: psf/black#1668 If we reach a conclusion, I would suggest to drop support in |
@cdce8p I’m still pinning |
@Pierre-Sassoulas and I had a small discussion about the next release. We have quite a few things planned which is way it doesn't necessarily feel right to release it as Do we want to merge #5068 and #5070 then, or move them to |
Perhaps releasing one final version with all the bug fixes we have been working on for those stuck on Btw, I think it would be good to block the |
I agree with the assessment about waiting for astroid. In fact almost all the time we release the hotfix concerning pylint alone very fast then we're stuck a long time with all the "require-astroid-update" issues that I try to group. Maybe we should release astroid more often so we can release pylint hot fixes in a timely manner without waiting for all the fixes. |
Not sure about releasing astroid more often, but I like your suggestion about pylint Fyi: I think we can still do some more work before releasing |
I think an actual issue was reported for CPython 3.6.0 on the mailing list:
It doesn't appear to matter what file I try to lint; pylint gives that same traceback. Further detail:
|
The issue is caused by a NamedTuple with default arguments and custom methods. This one here: I mentioned it already here #5070 (comment), but I think the current state is broken for Python -- |
Hmm, so the last version compatible with python 3.6 should be based on 2.9.3 ? Maybe even 2.8 ? How should we handle the releasing of the last compatible version for 3.6.0 ? We could release a 2.11.2 compatible with 3.6.0 and 3.6.1 based on 2.9.3 or even 2.8, after a 2.11.3 based on 2.11 but not compatible with python < 3.6.2. This seems hacky. We can of course make 2.11 compatible but this seems a lot of work (or we remove temporarily the offending typing?). Thought ? |
Not sure we need to address this at all. Wouldn't it be enough to say |
The problem is that the doc is not read and the pip requirements are enforced. Maybe we can release a 2.11.2 compatible with 3.6.0 (according to pip) but then raise an error when actually using it with this python interpreter telling to install 2.9.3. |
That might be possible, but how many users will realistically be impacted by it? Pylint has been broken for a few months now (for 3.6.0) and so far we haven't gotten any bug report about it. |
Well the first report came in, so I guess we have at least one user affected and willing to take the time to signal the problem now. (https://mail.python.org/archives/list/code-quality@python.org/thread/3BLJIH4QKVONL3XTGIBADSEC4FQEGDUX/) |
We can't make everyone happy unfortunately. There will always be tradeoffs. The only I guess, I've already made up my mind here 🤷🏻♂️ Raising an error would be possible, but is there really a benefit to it for the additional work required? |
I think if it's documented directly un pylint code it's better. If there is a crash without explanation chances are users will think pylint is broken and not bother reading the doc. The other solution to create a false 2.11 based on 2.9.3 so pip handle the version to recover automatically seems hacky. |
* Add an exception for python < 3.6.2 See #5065 for reasoning Co-authored-by: Marc Mueller <30130371+cdce8p@users.noreply.github.com>
Fyi: Added 2 more items to the todo list:
|
I would like to propose to drop support for Python 3.6.0 and 3.6.1 a bit ahead of schedule. This would allow us to use some typing feature added in 3.6.1 and 3.6.2 while still maintaining general support for Python 3.6 until its end of support in December.
Python 3.6.1
ChainMap
,Counter
,Deque
,AsyncGenerator
Python 3.6.2
NoReturn
AsyncContextManager
--
At the moment, we already use
Counter
andNoReturn
wrapped inif TypeChecking
orif sys.version_info
checks.There are good usecases for default values in NamedTuples as well. Especially with the ongoing refactoring effort.
--
For reference: #4310
The text was updated successfully, but these errors were encountered: