Going through the thread again now, I’ll try to summarize things.
Here’s a bunch of things I think we agree on:
- What dropping support for Python 2 would mean
- for pip: not being able to install/uninstall to environments on Python 2.
- we could implement the ability to modify environments pip isn’t running in, which is a good idea for a lot more reasons than just Py2/3 code (comment)
- for setuptools: not being able to build packages when run on Python 2.
- pip, setuptools will be among the last packages to drop Python 2 support in the ecosystem
- We don’t want to be maintaining support for the full tail of Python 2 packages.
Looking at what we discussed about the 2 broadest questions raised here:
i) How to decide when to drop support?
- Use metrics from PyPI (file downloads and requests to the simple API) to determine when pip support is dropped.
- Question: What %age do we drop support at?
- Drop it on a certain date.
ISTM that we will stick with 1 here.
ii) Who would do the work of maintaining support till support is dropped?
This has been the most debated topic here and the one I don’t think we reached consensus on.
- PyPA members (i.e. volunteers).
- Cost of maintaining Python 2 support.
- “community support” – i.e. maintainers won’t do anything for Py2-only issues, unless someone files a PR (or support is dropped).
- LTS branch
- Factors affecting whether they’d fund/contribute work
Other things that were mentioned that I think are worth surfacing here:
- Python 3 packages becoming the default output of build systems (comment)
- “At some point, package maintainers will start taking for granted that python 3 is the only python.”
- “[snip] PyPI works best remaining relatively neutral about the files it’s hosting.”
- pip should learn to better “identify” CI contexts, annd add this info to the User Agent (comment)
As an aside, I might have missed an important point somewhere here so please feel free to point it out.
setuptools has not been directly discussed much. There are different trade-offs there vs pip but I expect that it’ll be similar to what overall strategy we decide upon.