Skip to content

Commit d8ce2e7

Browse files
committed
fix: --dry-run must not pull images or rewrite the resolved tag
check_image ran unconditionally, so a dry run pulled a multi-GB image and, when the requested tag was missing, its availability fallback rewrote DEVA_DOCKER_TAG -- making --dry-run report a tag the user never asked for. CI caught it as a precedence-test failure that could not reproduce locally: :rust is pullable, so an earlier case pulled it, and the following `-p cloak` case then failed to pull :cloak (not published yet), found the freshly-pulled rust locally, and "resolved" to rust. The assertion was right; the dry run was lying. Resolution is what --dry-run reports; availability is a launch-time concern. Skipping check_image on dry runs also makes the precedence contract testable without any registry state -- the suite now passes with docker entirely absent. Refs #456
1 parent a90ffc9 commit d8ce2e7

1 file changed

Lines changed: 5 additions & 1 deletion

File tree

deva.sh

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3958,7 +3958,11 @@ if dangerous_directory; then
39583958
fi
39593959
39603960
resolve_profile
3961-
check_image
3961+
# A dry run reports what would happen: it must not pull a multi-GB image, and
3962+
# it must not let check_image's availability fallback rewrite DEVA_DOCKER_TAG,
3963+
# which would report a tag the user did not ask for. Resolution is what --dry-run
3964+
# is for; availability is a launch-time concern.
3965+
[ "$DRY_RUN" = true ] || check_image
39623966
prepare_base_docker_args
39633967
dedup_user_volumes
39643968
append_user_volumes

0 commit comments

Comments
 (0)