Skip to content
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

Remove support for Python 3.6 and future Python support #4310

Closed
cdce8p opened this issue Apr 7, 2021 · 8 comments · Fixed by #5921
Closed

Remove support for Python 3.6 and future Python support #4310

cdce8p opened this issue Apr 7, 2021 · 8 comments · Fixed by #5921
Labels
Discussion 🤔 Maintenance Discussion or action around maintaining pylint or the dev workflow
Milestone

Comments

@cdce8p
Copy link
Member

cdce8p commented Apr 7, 2021

Python 3.6 was release on the 2016-12-23 and is nearing the end of support on 2021-12-23.
Especially while working on support for the typing module, it has become apparent that a lot of special case handling is needed for 3.6. I don't think it's worth it to support 3.6 in new releases. The majority of users does use at least 3.8 as seen from the recent bug reports.

My suggestion
Remove support for Python 3.6 in pylint and astroid after the next minor release of pylint.

Moving forward
It might not be reasonable for us to always support all official supported Python version. The scientific python community has adopted an IMO good standard of supporting all minor version of Python that have been released in the last 42 months or at least the last two. See NEP 029.
pylint might have a boarder audience, so widening this window to the last three minor releases might make sense.

/CC: @PyCQA/pylint-dev

@cdce8p cdce8p added Discussion 🤔 Maintenance Discussion or action around maintaining pylint or the dev workflow labels Apr 7, 2021
@Pierre-Sassoulas
Copy link
Member

According to pypistats python 3.6 is used by more than 20% of our user base, and is often the top interpreter used for pylint. I don't think it's reasonable to stop supporting it, especially before the official python support period end. Also, we probably have a majority of bug for python 3.8/3.9 because 3.6 was battle-tested and work mostly well.
pypistats3 6

@cdce8p
Copy link
Member Author

cdce8p commented Apr 7, 2021

The number of downloads doesn't necessarily represent the true usage. One issue that might skew the data is the pip download cache which isn't accounted for. Additionally, the proportions for numpy look quite similar with 31% - 3.6 and still they decided to not support it any further.

I'm not suggesting that we remove the support from old versions, just that moving forward we don't support it any longer. Users will still be able to use the last release for their python version and continue using it.

@The-Compiler
Copy link
Contributor

The-Compiler commented Apr 7, 2021

FWIW also note that Ubuntu 18.04 LTS also ships with Python 3.6 - with my project (qutebrowser), that's the majority of 3.6 usage I see.

While there's an upgrade available (20.04 LTS), 18.04 LTS is still supported by Canonical until 2023, and from what I've heard people have various reasons not to upgrade yet.

@hippo91
Copy link
Contributor

hippo91 commented Apr 7, 2021

i agree with @Pierre-Sassoulas and @The-Compiler but maybe i did not understand @cdce8p well. What do you mean by moving forward we don't support any longer?

@cdce8p
Copy link
Member Author

cdce8p commented Apr 7, 2021

What do you mean by moving forward we don't support any longer?

User with Python 3.6 will still be able to use pylint 2.7 / 2.8 like they do now. They just wouldn't receive any more new feature added after that (pylint 3.9+) . We could still decide to backport important bugfixes, depending on the outcome of #4263

@Pierre-Sassoulas
Copy link
Member

I just checked the number on pypistats, there are still more than 10% of our users on python 3.6 (3/4 months after end of life). We also have dependencies that start to remove python 3.6 support and that we can't update anymore. So we're going to drop python 3.6 in pylint 2.14 and merge #5921 once the maintenance of 2.13 calm down see #5921 (comment).

@cdce8p
Copy link
Member Author

cdce8p commented Mar 26, 2022

So we're going to drop python 3.6 in pylint 2.14 and merge #5921 once the maintenance of 2.13 calm down see #5921 (comment).

👍🏻 Users who depend on 3.6, can continue using the last 2.13 release after all.

@DanielNoord
Copy link
Collaborator

@cdce8p If you have time, a review of #5921 would be appreciated. You often have good input on such changes/upgrades 😄

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Discussion 🤔 Maintenance Discussion or action around maintaining pylint or the dev workflow
Projects
None yet
Development

Successfully merging a pull request may close this issue.

5 participants