worktree friendly pants_dev_deps fingerprinting to stop the clobbering #23017
+2
−0
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
pants_venvmaintains two different fingerprints:venv_dir: Where to put the venvactivate_pants_venv: Should we delete and recreate the venvactivate_pants_venvhashes the requirements.txt, butvenv_dirdoes not. not so if you ran more than one pants from source -- such as through worktrees or multiple checkouts -- you would get terrible unpredictable results when requirements.txt differed. One script doingpip installwhile the other doesrm -rfdoes not go well.Adding the repo/checkout directory to the
venv_dirhash gives each Pants checkoutThe alternative would be to add requirements.txt to the
venv_dirhash, but then you would get many venvs sitting around needing some sort of pruning. Hashing on the repo dir maintains the current "one checkout" = "one activate_pants_venv" behavior like one would have with a regular old.venv.