Never skip running pipenv install
#1526
Merged
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.
Previously the buildpack would skip running
pipenv install
for repeat Pipenv builds if (a) the SHA256 of thePipfile.lock
file had not changed since the last successful build, and (b) there were no Git VCS references in the lockfile.However, this has a few issues:
pipenv install
, such as when installing a non-editable local dependency (see Pipenv install is skipped in cases where it's not safe to do so #1525), or when using editable local dependencies with the current path re-writing strategy (see Python buildpack fails to deploy without first purging cache #1520).As such, we now instead always re-run
pipenv install
, and defer to Pipenv to decide whether the environment needs updating.This should still be fast, since the cached
site-packages
is still being used (and if there are any scenarios in which it's not fast, then that's an upstream Pipenv bug).Integration tests were also added for various types of editable Pipenv installs, since we previously only had test coverage of editable installs for Pip.
Fixes #1520.
Fixes #1525.
Closes #1130.
Closes #1398.
GUS-W-14762837.