Install the image's dependencies from uv.lock, so it can run its own jobs (#173) #174
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
security
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
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
rbrooks/Iris-WLED!174
Loading…
Reference in a new issue
No description provided.
Delete branch "fix/173-image-deps"
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?
Closes #173. This is the
mainhalf of the fix. The same commit is already tagged as v1.1.2 onrelease/1.1.x(cut fromv1.1.1), becausemaincarries unreleased v1.2.0 work.The bug
The Dockerfile installed from a hand-kept
backend/requirements.txtthat lackedprometheus-client,defusedxmlandzeroconf.log_run(every scheduler job) and_try_push(everypush_with_fallback) importapp.services.metrics. So in the published 1.1.0 and 1.1.1 images, the on, dim and off jobs fail before they do anything, while the container starts and passes its health check.Verified inside a running container of each image:
log_run("probe", "success")ModuleNotFoundError: prometheus_clientapp.*modulebackup_targets(defusedxml) andmetrics(prometheus_client) failFix
uv.lock:uv export --frozen --no-dev --no-emit-projectwith hashes, thenpip install --require-hashes. uv is used only in the build stage.requirements.txtis deleted, so there's no second list.audit.ymlpip-audits the same export. It had been auditing the stale file too.[1.1.2]section below[Unreleased], and the link refs.Known limit:
zeroconfis imported lazily inside a function, so a module-import sweep can't catch its absence. It's now installed from the lock anyway.🤖 Generated with Claude Code
a140ad358e6767f64373