Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Merged
merged 1 commit into from
Jul 29, 2024

Conversation

edmorley
Copy link
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
7 checks passed
@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