chore: pin all Python dependency versions in requirements.txt #76
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
2 Participants
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: cal/major-domo-v2#76
Loading…
Reference in New Issue
Block a user
No description provided.
Delete Branch "%!s()"
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?
Problem
Unpinned dependencies can silently introduce breaking changes when Docker images are rebuilt. This was the root cause of the 307 redirect bug — an unpinned FastAPI/Starlette upgrade in the database API changed redirect behavior and broke all POST requests.
Current State
Most dependencies in this repo are already pinned (e.g.,
aiohttp==3.12.13), but a few use floor constraints:redis>=5.0.0black>=23.0.0ruff>=0.1.0pytest-mock>=3.10.0Task
pip freezein the current working environment to capture exact installed versions==) inrequirements.txtrequirements-dev.txtif not already doneWhy This Matters
Every Docker build should produce an identical image. Unpinned deps mean a
git revertdoesn't actually roll back to the previous working state — you get the old code with new libraries.PR #77 opened: #77
Approach:
redis>=5.0.0→redis==7.3.0requirements-dev.txtwith all dev/test deps at exact versions (pytest-mock==3.15.1,black==26.1.0,ruff==0.15.0), starting with-r requirements.txtrequirements.txt— they were never needed in the production Docker imageCLAUDE.mddocumenting the pinning policy and thatpip install -r requirements-dev.txtis required for local testing930 tests pass.