ref(dependencies): Adding ability to install nested dependencies #77
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.
Fixes #65. Enables devservices to install recursive dependencies safely. It uses temp files and locks to avoid file contention and race conditions which occur when trying to install the same dependency multiple times at once. This actually happens quite often since both Relay and Snuba depend on Kafka, meaning there is a decent chance they will both try to install Kafka at similar times and likely run into a race condition if it weren't for the safeguards added. This change's locking behavior is a bit naive and could be further improved to simply avoid installing dependencies that have been or are currently installing, but as a first iteration, this gets the job done in a safe and robust way. Additionally, I opted to utilize the ~/.cache directory for storing the dependencies rather than the ~/.local/share.