Skip to content

Why the GitHub Action installs project dependencies via pip download + pip install --find-links #20990

@fynxiu

Description

@fynxiu

Documentation

In action.yml, the GitHub Action installs project dependencies with:

"$VENV_PYTHON" -m pip download --dest="$VENV"/deps .
"$VENV_PYTHON" -m pip install -U --find-links="$VENV"/deps "$VENV"/deps/*

instead of a more direct approach such as:

"$VENV_PYTHON" -m pip install .

I looked through the current file and the original commit that introduced the action (e028045), but I could not find an explanation for why this two-step install flow was
chosen.

Could you document the intended reason for this design?

Questions I am trying to answer:

  1. Is there a functional advantage over pip install . for this action?
  2. Is the goal to stage artifacts locally before installation, improve debuggability, or work around some pip / GitHub Actions behavior?
  3. If there is no longer a strong reason, would simplifying this step be acceptable?

A short comment in action.yml or a note in the action documentation would help future readers understand the tradeoff.

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions