Skip to content

Always add the pip dependencies layer bin directory to PATH#232

Merged
edmorley merged 1 commit into
mainfrom
pip-bin-path
Jul 29, 2024
Merged

Always add the pip dependencies layer bin directory to PATH#232
edmorley merged 1 commit into
mainfrom
pip-bin-path

Conversation

@edmorley
Copy link
Copy Markdown
Member

@edmorley edmorley commented Jul 29, 2024

Previously the bin directory would only be added to PATH if it existed (due to it being set by lifecycle), which is only the case if one of the installed dependencies has an entry point script, which causes pip to create the bin directory and place a wrapper script inside it for that package's CLI command.

This meant:

  1. We had to suppress pip's warning during install (since pip isn't to know that the PATH will be correctly set later)
  2. If an app has no dependencies with an entry-point (so the app image doesn't have a bin directory), then at run-time tries to pip install a new package that does have an entry point (eg when debugging), then that new script won't be on PATH.

As such, we now add the bin directory to PATH explicitly, instead of relying on lifecycle automatic addition.

GUS-W-16359285.

@edmorley edmorley self-assigned this Jul 29, 2024
@edmorley edmorley marked this pull request as ready for review July 29, 2024 11:17
@edmorley edmorley requested a review from a team as a code owner July 29, 2024 11:17
Base automatically changed from make-vars-build-only to main July 29, 2024 14:34
Previously the `bin` directory would only be added to `PATH` if it
existed (due to it being set by `lifecycle`), which is only the case
if one of the installed dependencies has an entry point script, which
causes Pip to create the `bin` directory and place a wrapper script
inside it for that package's CLI command.

This meant:
1. We had to suppress Pip's warning during install (since Pip isn't
  to know that the `PATH` will be correctly set later)
2. If an app has no dependencies with an entry-point (so the app
  image doesn't have a `bin` directory), then at run-time tries to
  pip install a new package that does have an entry point (eg when
  debugging), then that new script won't be on `PATH`.

As such, we now add the `bin` directory to PATH explicitly, instead
of relying on `lifecycle` automatic addition.
@edmorley edmorley enabled auto-merge (squash) July 29, 2024 14:37
@edmorley edmorley merged commit 5944bf6 into main Jul 29, 2024
@edmorley edmorley deleted the pip-bin-path branch July 29, 2024 14:40
@edmorley edmorley changed the title Always add the Pip dependencies layer bin directory to PATH Always add the Pip dependencies layer bin directory to PATH Jul 29, 2024
@edmorley edmorley changed the title Always add the Pip dependencies layer bin directory to PATH Always add the pip dependencies layer bin directory to PATH Aug 30, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants