hundreds-father-404
07/09/2021, 8:52 PMthe “larger resolve” for a particular resolve name AND platform would not include things not relevant to that platform.I don't follow that. Let's say I have in my whole repo: -
future (only sdist)
- ansicolors (bdist)
neither are using sys extras, like to say in req string "only on linux". they're normal reqs, and we don't know ahead of time if it has a bdist vs sdist
my pex_binary only uses ansicolors, but my lockfile has both deps
Pants will try to be clever and first resolve both ansiclors and future, and it will fail w/ future when it's a foreign platform. It doesn't make a difference if you have lockfile_macos.txt vs lockfile_linux.txt - both would have future still in it, so it will fail.
Afaict, the only solutions are a) use a constraints file and not [python-setup].resolve_all_constraints, or b) use multiple lockfiles such that you have whole_universe.lockfile.txt and specific_pex_binary.lockfile.txt. Does that make sense?