Pin an app's CI to the uv its image builds with - #29
Merged
Merged
Conversation
retina-server's CI ran uv 0.12.18 while its images pinned 0.12.5, and tower-finder-service#42 had already moved its CI onto the Dockerfile's UV_VERSION. The ADR said nothing either way, so each app would settle it again. Lock compatibility across uv versions is good in practice, so the pin is about reproducibility: a uv release cannot change CI without a commit, and one UV_VERSION edit moves CI, image and relock together. Where CI never builds the image it is also the only pre-merge check that the image's uv accepts the lock. The python-app scaffold has no Dockerfile, so its CI template keeps latest uv and says where to pin once an image exists. Decided in ClickUp 123zgec4m5q; retina-server#572 is the multi-job form. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Amends the Python-apps-lock-with-uv ADR: where an app's image pins uv as
ARG UV_VERSION, CI installs that version, read from the Dockerfile, and fails when it cannot read exactly onex.y.z.ClickUp: Explore running retina-server's CI on the Dockerfile's uv version
Why
tower-finder-service#42 pinned its CI this way; retina-server's CI ran latest (0.12.18) against its images' 0.12.5 until offworldlabs/retina-server#572. The ADR said nothing, so each app would decide again. Lock compatibility across uv versions holds in practice (§3), so the case is reproducibility: a uv release cannot change CI without a commit, and one
UV_VERSIONedit moves CI, image and relock together. Where CI never builds the image, it is also the only check before merge that the image's uv accepts the lock.What changes
python-appCI template keeps latest uv, since the scaffold has no Dockerfile, and says where to pin once one exists.🤖 Generated with Claude Code