generated from john/python-template
40 lines
1.1 KiB
Markdown
40 lines
1.1 KiB
Markdown
# V1 Release Evidence Log
|
|
|
|
## Step 5 Quality Gates (2026-07-29)
|
|
|
|
### Lint
|
|
|
|
- Command: `python -m ruff check .`
|
|
- Result: ✅ pass
|
|
- Notes: initial findings were auto-fixed (`ruff --fix`) plus small manual line-wrap/annotation adjustments.
|
|
|
|
### Tests (primary gate)
|
|
|
|
- Command: `python -m pytest -m "not external" -q`
|
|
- Result: ✅ pass (`[100%]`)
|
|
|
|
### Tests (external smoke)
|
|
|
|
- Command: `python -m pytest -m external -q`
|
|
- Result: ✅ pass (`[100%]`)
|
|
|
|
### Type Check
|
|
|
|
- Command: `python -m ty check src tests`
|
|
- Result: ⚠️ not passing
|
|
- Summary: existing SQLModel/SQLAlchemy typing incompatibilities and test double typing mismatches remain.
|
|
|
|
Key current blocker families:
|
|
|
|
1. SQLModel relationship/query attribute typing (`selectinload`, `order_by`, `.any()`)
|
|
2. SQLAlchemy join clause typing in `services/transcription.py`
|
|
3. Test fake client type mismatch for `OpenRouterTranscriptionProvider(client=...)`
|
|
4. `Settings(**defaults)` typed-dict strictness in `tests/test_config.py`
|
|
|
|
## Current Gate Status
|
|
|
|
- Lint: pass
|
|
- Non-external tests: pass
|
|
- External smoke tests: pass
|
|
- Type check: **blocked** (requires dedicated typing cleanup pass)
|