pypi / warehouse

The Python Package Index
https://pypi.org
Apache License 2.0
3.6k stars 968 forks source link

Loosen allowed platforms restriction in organizations #13663

Open TheTripleV opened 1 year ago

TheTripleV commented 1 year ago

What's the problem this feature will solve?

The robotpy project provides Python binaries for high school students to use to program robots in the FIRST Robotics Competition. Currently, Windows, MacOS, and Linux simulation binaries are hosted on PyPI. However, wheels targeting the robot's hardware, a custom linux image running on ARM, cannot. This is because of the restrictions on allowed platforms on PyPI (https://github.com/pypi/warehouse/blob/main/warehouse/forklift/legacy.py#L96).

Describe the solution you'd like

For organizations under "exclusive branded web addresses", restrictions on allowed platforms could be lifted to allow for supporting niche hardware.

Additional context

miketheman commented 1 year ago

Hi @TheTripleV ! Thanks for surfacing, I'm not really understanding the issue here.

Can you please provide some more details as to what's going wrong, and how it manifests?

dstufft commented 1 year ago

If I understand correctly, the problem is basically that PyPI restricts what platforms you're allowed to upload binary wheels for, because there's only finite set that we think pip can meaningfully select as the "correct" wheel in it's dependency resolution. @TheTripleV has an niche platform that isn't handled by our normal allowed platforms, and is asking to allow uploading binary wheels for arbitrary platforms for specific whitelisted organizations.

I think the answer here is that we still can't allow organizations to upload wheels for arbitrary platforms to the main repository... but maybe a useful feature is to allow them to derive their own platform specific repositories where they can?