chore: pin all Python dependency versions in requirements.txt (#76)
All checks were successful
Build Docker Image / build (pull_request) Successful in 2m58s
All checks were successful
Build Docker Image / build (pull_request) Successful in 2m58s
- Pin redis==7.3.0 and move to requirements.txt (production) - Create requirements-dev.txt with all dev/test deps pinned to exact versions (pytest-mock==3.15.1, black==26.1.0, ruff==0.15.0) - Remove dev/test tools from requirements.txt (not needed in Docker image) - Document pinning policy and requirements-dev.txt usage in CLAUDE.md Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
9ba0713887
commit
88edd1fa10
17
CLAUDE.md
17
CLAUDE.md
@ -81,6 +81,23 @@ class MyCog(commands.Cog):
|
||||
- API errors → verify `DB_URL` points to correct database API and `API_TOKEN` matches
|
||||
- Redis errors are non-fatal (graceful fallback when `REDIS_URL` is empty)
|
||||
|
||||
## Dependencies
|
||||
|
||||
### Pinning Policy
|
||||
All dependencies are pinned to exact versions (`==`). This ensures every Docker build
|
||||
produces an identical image — a `git revert` actually rolls back to the previous working state.
|
||||
|
||||
- **`requirements.txt`** — production runtime deps only (used by Dockerfile)
|
||||
- **`requirements-dev.txt`** — includes `-r requirements.txt` plus dev/test tools
|
||||
|
||||
When installing for local development or running tests:
|
||||
```bash
|
||||
pip install -r requirements-dev.txt
|
||||
```
|
||||
|
||||
When upgrading a dependency, update BOTH the `==` pin and (if applicable) the comment in
|
||||
the file. Test before committing. Never use `>=` or `~=` constraints.
|
||||
|
||||
## API Reference
|
||||
- OpenAPI spec: https://sba.manticorum.com/api/openapi.json (use WebFetch for current endpoints)
|
||||
|
||||
|
||||
9
requirements-dev.txt
Normal file
9
requirements-dev.txt
Normal file
@ -0,0 +1,9 @@
|
||||
-r requirements.txt
|
||||
|
||||
# Development & Testing
|
||||
pytest==8.4.1
|
||||
pytest-asyncio==1.0.0
|
||||
pytest-mock==3.15.1
|
||||
aioresponses==0.7.8
|
||||
black==26.1.0
|
||||
ruff==0.15.0
|
||||
@ -6,15 +6,7 @@ aiohttp==3.12.13
|
||||
|
||||
# Utilities
|
||||
python-dotenv==1.1.1
|
||||
redis>=5.0.0 # For optional API response caching (not currently installed)
|
||||
|
||||
# Development & Testing
|
||||
pytest==8.4.1
|
||||
pytest-asyncio==1.0.0
|
||||
pytest-mock>=3.10.0 # Not currently installed
|
||||
aioresponses==0.7.8
|
||||
black>=23.0.0 # Not currently installed
|
||||
ruff>=0.1.0 # Not currently installed
|
||||
redis==7.3.0
|
||||
|
||||
# Optional Dependencies
|
||||
pygsheets==2.0.6 # For Google Sheets integration (scorecard submission)
|
||||
pygsheets==2.0.6 # For Google Sheets integration (scorecard submission)
|
||||
|
||||
Loading…
Reference in New Issue
Block a user