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?