Backend: regenerate uv.lock for requires-python >=3.14 #91
No reviewers
Labels
No labels
area/ai
area/backend
area/frontend
area/infra
area/scheduler
area/wled
good-first-issue
priority/high
priority/low
priority/medium
type/bug
type/chore
type/ci-cd
type/docs
type/feature
type/qa
v1.0.0
v1.1.0
v1.2.0
v2.0.0
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
rbrooks/Iris-WLED!91
Loading…
Reference in a new issue
No description provided.
Delete branch "fix/uv-lock-requires-python"
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?
Fixes an inconsistency I introduced in
bc2284d(#90).What went wrong
#90 narrowed
requires-pythonfrom">=3.12"to">=3.14"but committed onlypyproject.toml.backend/uv.lockstill declared">=3.12", along with the cp312 wheels andpython_full_version < '3.13'conditional dependencies that belong to it.So
mainhas been internally inconsistent since that merge.Why CI didn't catch it
ci.ymlrunsuv sync --group devwithout--frozen, so uv silently re-resolves and updates the lock inside the workspace. Every job passed on a lock it had quietly rewritten in memory — the committed one was never validated.uv lock --checksays so plainly:The fix
Regenerated with
uv lock. Both files now read">=3.14", and--checkpasses. The diff is-287/+1: dropping the cp312 wheel set and the 3.12-conditional deps that>=3.14makes unreachable.Backend gate re-run against the refreshed lock:
ruffclean,mypyclean across 61 files, 253 tests passing.How I found it
Not by looking — by accident. A local
git mergeof the lockfile-maintenance branch refused to run becausebackend/uv.lockhad uncommitted changes, which were uv regenerating it during my test runs. That's a poor way to catch a correctness bug onmain.Follow-up worth doing
Nothing in CI verifies the lock matches
pyproject.toml. That's the actual gap — this class of drift can recur silently on any dependency change.A
uv lock --checkstep in the python jobs would close it, in exactly the same spirit as the existingalembic checkthat guards model/migration drift. I haven't added it here to keep this PR to the fix itself, but it's a small change and I'd recommend it.