Just wanted to document a scenario to look out for...
# general
b
Just wanted to document a scenario to look out for and maybe mark something for Pants improvement. Someone was complaining their PR took 17 minutes to pass CI without touching code. We use a remote cache, and every CI runner uses the same AMI, so this is a huge red flag. After debugging I found out that I could reproduce if I wiped the PEX named cache. Turns out an sdist had an irreproducible build. Every time you build it, you get a different fingerprint. This is a gotcha for sure. But also highlights how we likely should rely on PEXs cache less, and rely on our own more (that's hand-waivey as hell, but also true)
👍 1
We'll be switching to an internal PyPI mirror and uploading wheels in the meantime. Probably a good idea regardless, but still
p
Iirc John filed an issue about the cache key being not quite correct in pants...
Ah. I was thinking of an orthogonal issue. https://github.com/pantsbuild/pants/issues/18250 So, not quite the same, but it should probably be cleaned up to fix the hash for `Collection`s and
CoarsenedTargets
.
PEX tries very hard to make things reproducible (same fingerprint). What is causing the fingering to change?
b
The sdist produces a different binary blob. Nothing PEX can do to stop that. (Think embedding a timestamp into the wheel)
🤦 1