heroku / heroku-buildpack-python

Heroku's buildpack for Python applications.
https://www.heroku.com/python
MIT License
974 stars 1.84k forks source link

Fix caching of editable VCS Pipenv dependencies #1528

Closed edmorley closed 8 months ago

edmorley commented 8 months ago

When installing a VCS dependency in editable mode, the source repository has to be git cloned somewhere, and that location referenced via a .pth file added to site-packages.

Previously, when using Pipenv the default source repository location was used, which is a src/ directory inside the current working directory. ie: /app/src/.

However, this directory is not preserved/cached across builds, meaning that on the next Pipenv install the repository has to be cloned from scratch.

Now, the source repository location when using Pipenv has been overridden to /app/.heroku/src/, which is cached, and matches the location used for Pip projects. This is configured via Pipenv's --extra-pip-args feature: https://pipenv.pypa.io/en/latest/advanced.html#supplying-additional-arguments-to-pip

Lastly, the standard Pip install invocation args have been tweaked to consistently use quotes and the absolute path.

Fixes #1527. GUS-W-14764812.