-
Notifications
You must be signed in to change notification settings - Fork 384
Closed
Description
Background
There are a number of arguments among progressive package maintainers for dropping 2.6:
- Not supported by the Python core team (including security bugs)
- Increasing numbers of third-party packages are also dropping support or at least doing this same sort of side-eye at the possibility.
- Including pip, which isn't really "third party", and tends to drag the rest of us screaming along with it
- Sphinx, as of late 2016, has also dropped Python 2.6 support
- Debian 7 and up include 2.7; RHEL/CentOS 7 too
- Users still stuck on RHEL5 must be backporting their own Python if they're on 2.6 (as system default was 2.4) so they arguably can just as easily get 2.7
- Usual "backporting packages is a core need for good systems administration, as is not using unsupported software" argument
- (Admittedly minor, IMHO) syntax niceties like "you can use empty brace expressions in strings, dict comprehensions, etc"
But there are strong counter-arguments, which is why we currently still support 2.6:
- Through recently, a nontrivial number of users (across my personal maintained packages) are still on 2.6 - as high as 25-33% for Paramiko for example.
- EDIT: though we just re-ran the numbers and it's now at only 6%! 60k downloads over 2 weeks, compared to 873k in same period for 2.7 (plus another ~45k for Python 3). Fewer, but still not trivial. Fabric's at 8.5%.
- We're not sure why so many users are still on 2.6...
- Though it could simply be "it's RHEL/CentOS 6", which includes Python 2.6 as the default
- Presumably has a very large install base (users of these distros trend conservative) given 7 only came out in 2014
- Supporting 2.6 (in a Python 2+3 world) isn't, technically speaking, significantly more difficult than supporting 2.7.
- "You're doing it wrong" (at folks who could potentially move to 2.7, but haven't yet) always feels like a shitty argument to use to justify making maintainers' lives easier, when the thing under discussion is comparatively easy to keep doing.
- The key here is that it's becoming rapidly less easy, due to many other packages dropping support...
Possible way forward
- Add a
DeprecationWarning(as does pip, cryptography, etc) stating that Invoke 1.0 (maybe 2.0, which is likely to not be years after 1.0) will drop Python 2.6 support. Include a link to this ticket & "please explain why you're still using 2.6". - Wait a while, see if any other good reasons pop out of that, that aren't already in the counter-arguments list.
- Double-check the latest download stats from PyPI re: % Python 2.6 use (generally and for invoke/fabric/paramiko specifically)
- Make the call re: whether the balance tips enough towards ripping off the band-aid.