My several year old memory at this point is that there were some projects that didn’t install correctly when they went through a wheel (typically because they had some sort of logic in their setup.py
that did something wrong when you went through a wheel) and some of those projects changed themselves to raise an error if you tried to build a wheel from them. This would trigger pip to always fall back to the setup.py install
case.
As far as how do we get rid of it, I think the same way we get rid of anything. Deprecate it, raise a warning for a period of time, and then kill it. I don’t think there’s anything special here except figuring out the right time to deprecate it and how long it should remain deprecated until it’s killed. Certainly we should probably wait a few releases of PEP 517 capable pip to make sure that the issues and shortcomings of that get solved first.