There’s been a lot of great discussion here, and I’m going to try to find time to go through these, though I wanted to make something explicit that I think maybe I was leaving implicit, and I thought should be made explicit:
Depending on how vital a particular bit of functionality is to pip, we’re likely going to want most libraries that are pulling functionality out of pip to live under the PyPA banner, and ideally should be setup in a way that existing pip contributors can work on them as well. While conceptually these are becoming distinct entities, for end users they’re going to be part of the nebulous thing that is pip, and changes and for “core” bits, pip wouldn’t want to lose the ability to work on these bits of functionality directly.
Obviously there is some stuff that isn’t “core” to what pip does, that we’re generally fine with being owned in a way that we aren’t part owners of. For instance we use requests, CacheControl, etc. The key difference there is that these are all things that aren’t really specific to pip’s core functionality (even though we may use them in implementing that) and so we don’t need to care too much about their implementation one way or another.
We’re also probably going to need/want to figure out some sort of shared requirements for things like “when do we drop support for a version of Python in xyzlib” and such like that.