PEP 777: How to Re-invent the Wheel

Because different build artifacts could have different metadata. It’s not possible to guarantee that two wheels, or a wheel and a sdist, have the same dependencies. This discussion was all about trying to enforce consistency, but we weren’t able to get any agreement on it.

The problem is we need a solution that works even when the wheel isn’t served by an index. The existing proposal in PEP 777 works fine if there’s an index, I’m not sure we need to come up with an alternative unless it does better in the no-index cases.

The problem is that’s not the way the Python ecosystem has traditionally worked. People do use --find-links with pip, and we regularly get comments from users that setting up an index is too much trouble. I agree that if we could move the ecosystem to a point where all distribution artifacts had to be served from a smart, standards-conforming index, then it would be a lot easier to come up with a transition mechanism for upgrading the wheel format. But getting to that state is (at least in my opinion) quite a long-term exercise, and the whole point here is to come up with something we can achieve in a shorter timescale.

Much as I’d like the packaging ecosystem to be cleaner, simpler, and more manageable, that simply isn’t the reality we live in right now. We can make progress towards such a situation, but we shouldn’t be designing standards that assume we’re already there.

2 Likes