chore: pin all Python dependency versions in requirements.txt (#76) #77
No reviewers
Labels
No Label
ai-changes-requested
ai-pr-opened
ai-reviewed
ai-reviewing
ai-working
in-next-release
status/in-progress
status/pr-open
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: cal/major-domo-v2#77
Loading…
Reference in New Issue
Block a user
No description provided.
Delete Branch "ai/major-domo-v2-76"
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
Fixes #76. Pins all floor-constrained Python dependencies to exact versions and separates dev/test tools from the production Docker image.
Changes
requirements.txt(production runtime — used by Dockerfile)redis>=5.0.0→redis==7.3.0pytest,pytest-asyncio,pytest-mock,aioresponses,black,ruff) — these were never needed in the production imagerequirements-dev.txt(new file — local dev and CI testing)-r requirements.txtto include all production depspytest-mock>=3.10.0→pytest-mock==3.15.1black>=23.0.0→black==26.1.0ruff>=0.1.0→ruff==0.15.0pytest==8.4.1,pytest-asyncio==1.0.0,aioresponses==0.7.8CLAUDE.mdpip install -r requirements-dev.txtis required for local dev/testing>=and~=constraintsTest Results
Note for deployers
To run tests locally after this change:
The Dockerfile is unchanged — it still installs only
requirements.txt, which is now cleaner (production deps only).AI Code Review
Files Reviewed
requirements.txt(modified)requirements-dev.txt(added)CLAUDE.md(modified)Findings
Correctness
redis>=5.0.0→redis==7.3.0,pytest-mock>=3.10.0→pytest-mock==3.15.1,black>=23.0.0→black==26.1.0,ruff>=0.1.0→ruff==0.15.0.pytest==8.4.1,pytest-asyncio==1.0.0,aioresponses==0.7.8) correctly retained inrequirements-dev.txt.requirements-dev.txtuses-r requirements.txtat the top, ensuring full production dep chain is included — correct pattern.pygsheets==2.0.6retained inrequirements.txt(confirmed by diff — only a newline was added, not a deletion).requirements.txt— production image will not pull in dev tools.Security
Style & Conventions
CLAUDE.mdDependencies section follows the existing documentation style and explicitly prohibits>=/~=constraints — this correctly codifies the intent.requirements.txt/requirements-dev.txt) is a well-established convention.Suggestions
docker-build.yml) only builds and pushes Docker images — there is no test step. This means therequirements-dev.txtsplit has no direct effect on CI today. If a test job is added in the future, the workflow will needpip install -r requirements-dev.txt. TheCLAUDE.mdupdate captures this sufficiently, but a comment in the workflow file (near the checkout step) could serve as a reminder. Not a blocker.redis==7.3.0is a significant version jump from the previous floor of5.0.0— the redis-py client was in the 5.x range as of mid-2025. If this pinned version was selected from the current PyPI latest (rather than a known-good version), consider verifying its changelog for any breaking changes against the caching decorators inutils/decorators.py. The PR reports 930 tests passing, which provides reasonable confidence.Verdict: COMMENT (approved)
Clean, correct implementation. The dev/prod split is properly structured, the CLAUDE.md update accurately documents the new policy, and the Docker image is correctly unaffected. No issues that block merging.
Automated review by Claude PR Reviewer