Pin CI dependencies via uv lock without re-resolving pyproject.toml - #1929
Pin CI dependencies via uv lock without re-resolving pyproject.toml#1929rosspeili wants to merge 2 commits into
Conversation
Use --no-install-project plus editable --no-deps install in CI workflows, and --no-emit-project in export-from-uv-lock.sh. Update contributor and dev dependency docs accordingly. Fixes quantumlib#1843.
There was a problem hiding this comment.
Code Review
This pull request updates the documentation and scripts for managing Python dependencies using uv. Specifically, it documents a two-step installation process (uv sync --no-install-project followed by uv pip install --no-deps -e .) across several files to ensure dependencies are strictly resolved from uv.lock. It also updates export-from-uv-lock.sh to use the --no-emit-project flag to prevent unpinned dependency resolution. I have no feedback to provide.
|
|
||
| * Always use `uv` for managing Python virtual environments and dependencies. | ||
| * Run Python commands, test suites, and linters via `uv run <command>` (e.g., `uv run check/pytest-quick` No newline at end of file | ||
| * Install the locked environment with `uv sync --frozen [--no-dev] [--group ...] |
There was a problem hiding this comment.
I don't think this is necessary for agents
| environment files, but they are no longer committed to the repository. The script uses | ||
| `--no-emit-project` so exported files omit qualtran and avoid pulling unpinned | ||
| dependencies from `pyproject.toml`. |
There was a problem hiding this comment.
a little superfluous since the legacy requirements.txt never included the project itself and there's the blurb above
| for how to install the locked environment and qualtran itself. In brief: use | ||
| `uv sync --frozen [--no-dev] [--group ...] --no-install-project` followed by | ||
| `uv pip install --no-deps -e .` so dependencies come only from `uv.lock`. |
There was a problem hiding this comment.
again, I think this level of rigor is less important for day-to-day development work. I'd say using uv for development is recommended but not required
Use --no-install-project plus editable --no-deps install in CI workflows, and --no-emit-project in export-from-uv-lock.sh, and also updated contributor and dev dependency docs to reflect the changes.
Fixes #1843.