FWIW, this doesn’t work as-is because we have optional build tags in wheels. To quote PEP 427:
The wheel filename is
{distribution}-{version}(-{build tag})?-{python tag}-{abi tag}-{platform tag}.whl
.
Environment markers might be a better mechanism for this. It preserves the deterministic conditional dependencies state as we have right now, pushes for smaller packages that only contain the libraries that are necessary while still being a fairly straightforward pip install <package>
(where <package>
has those conditional dependencies, perhaps even in an extra).
@uranusjr’s reference to user-defined markers reminded me of this, although I do think that we’d likely need someone with a better understanding of this to pitch in on how well this’ll work for such projects.
It’s probably worthwhile to ask those projects (who likely have the understand on what might work vs what might not work) to pitch in as well; although we’d need to be clear around the expectations there – that this is early stages of “understanding the problem and ideating on a solution” at this point and all this is volunteer driven (unless someone has a pile of money big enough to drive this).
I also feel that folks who worked on conda’s handling of GPU packages have would likely have insights they’d be willing to share, and we should definitely ask them for their thoughts (either here, or over any other communication channel and loop that info back here; I don’t know how/who to ask on their end tho).