Skip to content

Consider dropping/deprecating Python 2.6 support #364

Description

@bitprophet

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.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions