67 lines
1.5 KiB
Markdown
67 lines
1.5 KiB
Markdown
# Управление зависимостями
|
|
|
|
---
|
|
|
|
## Формат
|
|
|
|
**Рекомендуемый:** `requirements.txt`
|
|
|
|
```
|
|
# === Core ===
|
|
fastapi==0.115.6
|
|
uvicorn[standard]==0.34.0
|
|
pydantic==2.10.3
|
|
pydantic-settings==2.7.0
|
|
|
|
# === Database ===
|
|
sqlalchemy[asyncio]==2.0.36
|
|
aiosqlite==0.20.0 # dev (SQLite)
|
|
asyncpg==0.30.0 # prod (PostgreSQL)
|
|
alembic==1.14.1
|
|
|
|
# === Auth ===
|
|
python-jose[cryptography]==3.3.0
|
|
passlib[bcrypt]==1.7.4
|
|
|
|
# === AI ===
|
|
httpx==0.28.1
|
|
pyyaml==6.0.2
|
|
|
|
# === Tasks (опционально) ===
|
|
celery==5.4.0
|
|
redis==5.2.1
|
|
|
|
# === Dev ===
|
|
pytest==8.3.4
|
|
pytest-asyncio==0.24.0
|
|
ruff==0.8.4
|
|
```
|
|
|
|
---
|
|
|
|
## Правила обновления
|
|
|
|
| Тип | Когда | Проверка |
|
|
|-----|-------|----------|
|
|
| **patch** | В любой момент (bugfix, security) | CI passes |
|
|
| **minor** | Не чаще 1 раза в спринт | Full regression |
|
|
| **major** | Только с полным регрессом | + migration guide |
|
|
|
|
---
|
|
|
|
## Аудит зависимостей
|
|
|
|
Периодически проверять уязвимости:
|
|
```bash
|
|
pip-audit
|
|
safety check
|
|
```
|
|
|
|
---
|
|
|
|
## [ASK] Вопросы по зависимостям
|
|
|
|
- `requirements.txt` или `pyproject.toml`? (pyproject.toml — современный стандарт)
|
|
- `pip` или `poetry`/`uv`? (uv — быстрее, poetry — управление зависимостями)
|
|
- Нужна ли заморозка версий (`pip freeze > requirements-lock.txt`)? (да, для production)
|