worktree friendly pants_dev_deps fingerprinting to stop the clobbering#23017
Open
cburroughs wants to merge 1 commit intopantsbuild:mainfrom
Open
worktree friendly pants_dev_deps fingerprinting to stop the clobbering#23017cburroughs wants to merge 1 commit intopantsbuild:mainfrom
cburroughs wants to merge 1 commit intopantsbuild:mainfrom
Conversation
`pants_venv` maintains two *different* fingerprints: * `venv_dir`: Where to put the venv * `activate_pants_venv`: Should we delete and recreate the venv `activate_pants_venv` hashes the requirements.txt, but `venv_dir` does 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 doing `pip install` while the other does `rm -rf` does not go well. Adding the repo/checkout directory to the `venv_dir` hash gives each Pants checkout The alternative would be to add requirements.txt to the `venv_dir` hash, 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`.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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 checkout a safe location.The 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.