-
Notifications
You must be signed in to change notification settings - Fork 4
Migrate to uv from requirements.txt #375
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
base: main
Are you sure you want to change the base?
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
This PR migrates the project's Python dependency management from traditional requirements.txt files to the modern uv tool, which provides faster dependency resolution and improved reproducibility through lock files.
Key Changes:
- Replaced
requirements.txtandrequirements-dev.txtwithpyproject.tomlusing PEP 621 standards - Updated CI/CD workflows and Docker configuration to use
uvinstead ofpip - Added backward compatibility wrapper for existing GitLab/Docker users
Reviewed changes
Copilot reviewed 8 out of 10 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| pyproject.toml | New project configuration defining dependencies and metadata using PEP 621 standard format |
| requirements-dev.txt | Removed legacy development dependencies file |
| Dockerfile | Updated to use uv sync for dependency installation and added backward compatibility symlink |
| verify-wrapper.py | New wrapper script to maintain backward compatibility for GitLab/Docker users calling /verify.py |
| .github/workflows/test.yml | Updated CI workflow to use uv commands instead of pip |
| .github/dependabot.yml | Changed package ecosystem from pip to uv for dependency updates |
| README.md | Updated development setup instructions to use uv |
| CONTAINER_DOCS.md | Added documentation noting backward compatibility support |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Dockerfile
Outdated
| RUN ln -s /app/verify-wrapper.py /verify.py && chmod +x /verify.py | ||
|
|
||
| # Use the virtual environment directly instead of uv run | ||
| ENTRYPOINT [".venv/bin/python3", "verify.py"] |
Copilot
AI
Dec 22, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The ENTRYPOINT path is missing the /app/ prefix. Since the WORKDIR is /app, this should be ["/app/.venv/bin/python3", "verify.py"] to ensure the path is absolute and works correctly regardless of the current working directory when the container starts.
| ENTRYPOINT [".venv/bin/python3", "verify.py"] | |
| ENTRYPOINT ["/app/.venv/bin/python3", "verify.py"] |
d459b3a to
dc50634
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
Copilot reviewed 8 out of 10 changed files in this pull request and generated 1 comment.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| COPY verify-wrapper.py verify-wrapper.py | ||
|
|
||
| # Install the local package in the already created environment | ||
| RUN uv pip install --no-deps -e . |
Copilot
AI
Dec 22, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Installing the package in editable mode (-e) in a production Docker image is unnecessary and can cause confusion. For production containers, use a regular installation without the -e flag to ensure a clean, non-editable installation.
| RUN uv pip install --no-deps -e . | |
| RUN uv pip install --no-deps . |
No description provided.