will
will copied to clipboard
Deprecate Python 2.7
Python 2.7 EOL is fast approaching and which is leading to some fun things like pytest dropping support leading to our travis job failing.
Things to address including the following:
- Remove 2.7 specific code
- Update tests to not compensate for 2.7 behavior
- Update dependency requirements to leverage current versions
I’m in favor of dropping legacy python 2.7. It’s only going to get worse as more packages drop support and people embrace f strings and walrus operators.
The arguments against deprecation in #395 were heavily focused on supporting legacy environments or systems that couldn't run 3.x so I'd suggest that we have two releases, one being the last release with "official" 2.7 support and the following completely dropping it.
I'd consider that former release to be after we get some pending PRs merged then we can work on cleaning things up for the latter.
This would allow us to point users to a specific release if they desperately need to stay on 2.7.
@Ashex I'm in favor of that path. I know @skoczen really wanted to keep 2.7 support, but I know I'm not likely to contribute PR's from my branch if I have to make sure it works in 2.7. I've already dropped 2.7 from my CI.
Since @skoczen said he would need a really compelling reason, here's my thoughts.
- Python 2.7 will not be maintained past January 1, 2020 https://pythonclock.org/
- @skoczen said the foothold in the sciences for python 2.7 is real and not moving anytime soon, but both Numpy and Pandas are dropping support.
- There is a huge list including requests, matplotlib, ipython, cherrypy, and pytest that have committed to dropping support for 2.7 in or before 2020.
- @chillipeper mentioned Centos and Mojave, but Redhat 8 will not ship with python 2.7, and 2.7, is being deprecated in macOS 10.15 Catalina and not included in macOS 10.16
- According the the Jetbrains 2018 Developer Survey 84% of developers reported using python 3+ with only 16% using python 2.
- According to the Jetbrains 2019 Developer Survey 87% of developers use python 3 while only 13% use python 2.
- My first line of python was written in 3+. With the incredible fast growth of python in the last few years, there's a lot of python devs that have only used 3+. To insist that we learn legacy python to contribute means we probably won't contribute.
- I want to contribute to this project. It really feels good to share stuff I've built.
I prefer to stay here, but another option if the community here strongly opposes dropping 2.7 is to fork and have a "will3" repo or branch. Then new features could be borrowed and adapted with the owness on those needing legacy support to make it work on legacy python.
It's hard to convey tone in text. I really appreciate @skoczen and everybody here. This project captured my interest and has played a big role in my development with python. No hard feelings either way
edit: added info about Redhat and Mac edit2: Added 2018 Python Developer Survey edit3: Added 2019 Python Developer Survey (Just going for "compelling reasons")
I'm going to put in my unasked-for $0.02: any organization with compliance requirements is going to be unable to continue using Will once Python-2.7 is officially deprecated ... so, now. I'm searching through the fork network today looking for functional Python3 builds because of this very reason.
Also? The Python2 -> 3 migration has been underway for years at this point.
In case you have not seen recent activity, I'll be cutting a new release 2.2.0 that will drop support for python 2.7. Once I've submitted a PR to resolve #441 I will close this issue out as that's the only remaining item to cover environments being migrated.
@Ashex thank you for all your work on this! Will Lives!