Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 13 additions & 1 deletion .github/workflows/pipeline.yml
Original file line number Diff line number Diff line change
Expand Up @@ -98,6 +98,18 @@ jobs:
pip install . --no-deps --no-build-isolation
pip check

uv_check:
needs: [black]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: astral-sh/setup-uv@v7
- name: Install the project and pip check
shell: bash -l {0}
run: |
uv sync --all-extras --dev
pip check
Comment on lines +107 to +111
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

🧩 Analysis chain

🏁 Script executed:

cat -n .github/workflows/pipeline.yml | sed -n '105,115p'

Repository: pyiron/executorlib

Length of output: 418


🌐 Web query:

uv pip check command documentation

💡 Result:

The uv pip check command verifies the current Python environment for conflicts or missing dependencies in installed packages. It is part of uv's pip-compatible interface and can be used as a faster drop-in replacement for pip check. Usage: uv pip check Description (from official docs): It is possible to install packages with conflicting requirements into an environment if installed in multiple steps. To check for conflicts or missing dependencies in the environment: $ uv pip check What it checks for (from uv maintainer and compatibility docs): - Multiple versions of a package are installed in the virtual environment. - A package has a dependency on a package that's installed, but at an incompatible version. - A package has a dependency on a package that isn't installed. - A package has a Requires-Python that doesn't match the Python version of the running interpreter. - A package has no METADATA file, or the METADATA file can't be parsed. Differences from pip check: - uv pip check detects additional issues like multiple installed versions of the same package and Requires-Python mismatches, which pip check may not. - It exits with non-zero code if issues are found, suitable for CI scripting. - Internally similar to uv pip install --strict, but checks the entire environment without filtering unrelated diagnostics. No specific options like --verbose or others are documented for this command in the sources; it appears to be a simple, flag-less command like its pip counterpart. For full CLI reference, see https://docs.astral.sh/uv/reference/cli/ (links to uv pip check). Example output if issues found: Checked 81 packages in 0.71ms Found 1 incompatibility The package pip has multiple installed distributions: - /path/to/pip-23.0.1.dist-info - /path/to/pip-24.0.dist-info If no issues: No output or "No broken requirements found." (inferred from pip similarity), exits 0.

Citations:


🏁 Script executed:

# Check if there are other uses of pip check in the repository
rg "pip check" --type yaml

Repository: pyiron/executorlib

Length of output: 44


Run dependency validation through uv-managed environment, not system pip.

uv sync prepares the project environment, but Line 111 calls pip check directly. This executes against the system Python, not the uv-managed virtual environment, causing dependency issues to be missed.

🔧 Proposed fix
     - name: Install the project and pip check
       shell: bash -l {0}
       run: |
         uv sync --all-extras --dev
-        pip check
+        uv pip check
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.github/workflows/pipeline.yml around lines 107 - 111, The workflow runs "uv
sync --all-extras --dev" to prepare the uv-managed environment but then calls
"pip check" against the system interpreter; change the step so dependency
validation runs inside the uv environment by invoking pip through uv (e.g., use
"uv run" to execute "pip check" after "uv sync") ensuring the "uv sync" and "pip
check" sequence remains but the validation runs inside the uv-managed
environment.


benchmark:
needs: [black]
runs-on: ${{ matrix.operating-system }}
Expand Down Expand Up @@ -436,7 +448,7 @@ jobs:
GH_TOKEN: ${{secrets.GITHUB_TOKEN}}

uml:
needs: [unittest_slurm_mpich, unittest_old, unittest_win, unittest_openmpi, unittest_mpich, unittest_flux_openmpi, unittest_flux_mpich, notebooks, benchmark, minimal, pip_check, mypy]
needs: [uv_check, unittest_slurm_mpich, unittest_old, unittest_win, unittest_openmpi, unittest_mpich, unittest_flux_openmpi, unittest_flux_mpich, notebooks, benchmark, minimal, pip_check, mypy]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
Expand Down
Loading