How to reinvent the wheel

There’s another trick here though! :slight_smile: An installer that supports .whl2 will always ignore a .whl of the same version. So if you are fine with an error message when pip is too old (instead of a successful install of a 1.0 wheel), you can upload a .whl that contains Wheel-Format: 2.0, and that will trigger an error message in current versions of pip, while not affecting any versions of pip that support .whl2. You don’t have to upload a usable 1.0 wheel.

Uploading tools can maybe even do this automatically; the dummy 2.0 wheel is a small constant. Or maybe Warehouse can inject it into indexes if there’s a .whl2 but no .whl.

If we’re talking about 2.0 formats anyway, I think we should make an attempt to solve this problem instead of starting with it as a fixed constraint; it’s a problem worth solving for plenty of other reasons. Preventing unwanted attempts to build sdists is my proposal, using the same trick of coming up with a new file extension that existing installers ignore, but there are other proposals too.

2 Likes