From 0f70ae6817fef26661ac1c2ce1bcdbb2996ed9c6 Mon Sep 17 00:00:00 2001 From: sneak Date: Sun, 15 Nov 2026 12:59:12 +0000 Subject: [PATCH] Correct the phase-build comments in script/lint and script/test (closes #141) The comments said a phase that is not the last stage is built only when --target names it. The canonical Dockerfile's last stage copies from both phases, so a plain build builds them too. The comments now say what --target does in every repository: it builds that phase and the stages it depends on, nothing else. The headers no longer say each script builds its phase alone, which is false wherever the phase depends on another stage. Model: opus-5-5 --- script/lint | 6 +++--- script/test | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/script/lint b/script/lint index 451a067..697fe82 100755 --- a/script/lint +++ b/script/lint @@ -1,11 +1,11 @@ #!/bin/sh # script/lint: run the linter. Linting is a phase of the Dockerfile and -# this builds that phase alone; the linter is never installed or run on +# this builds that phase; the linter is never installed or run on # a developer host, where a shared result cache and a host-global lock # make its answer untrustworthy. # -# The phase is not the last stage in the file, so it is built only when -# --target names it. A new CACHEBUST value reruns every RUN step after +# --target builds the lint phase and the stages it depends on, nothing +# else. A new CACHEBUST value reruns every RUN step after # the ARG CACHEBUST line, since a cached lint layer is a lint that did # not run; unlike --no-cache, it keeps the layers above that line and # the cache mounts. This relies on every stage of the Dockerfile diff --git a/script/test b/script/test index 1622a11..bf78b35 100755 --- a/script/test +++ b/script/test @@ -1,8 +1,8 @@ #!/bin/sh # script/test: run the test suite. Testing is a phase of the Dockerfile -# and this builds that phase alone, on the same terms as script/lint: -# --target because a phase that is not the last stage is built only when -# named, and a new CACHEBUST value because a cached test layer is a test +# and this builds that phase, on the same terms as script/lint: +# --target so that only the test phase and the stages it depends on are +# built, and a new CACHEBUST value because a cached test layer is a test # that did not run; unlike --no-cache, it keeps the layers above the ARG # CACHEBUST line and the cache mounts. This relies on every stage of the # Dockerfile declaring ARG CACHEBUST before every step that lints, tests