script/lint now builds Dockerfile.lint with --output=type=cacheonly. The lint result is the build's exit status and nothing ever used the image, yet every run exported one and left it behind untagged. Now nothing is exported, and the only thing a run leaves behind is build cache.
Why cacheonly rather than a tag: a fixed tag would stop the untagged images piling up, but every run would still pay for the export, and there would be one more image name to look after. cacheonly removes both costs.
What a reader might trip over:
CHECK_EPOCH is unchanged and still makes the gate steps run on every invocation. The build cache is still written, so go mod download and the copy of the tree stay cached as before.
--output needs BuildKit, which docker build uses by default. With the legacy builder (DOCKER_BUILDKIT=0), script/lint fails at once with unknown flag: --output, so it can never report a lint pass it did not run.
script/docker and script/cibuild are untouched: script/docker needs its tagged image, and script/cibuild is outside this issue.
Deviation: the issue asks for before/after timings and the run-by-run proof to be reported. They went to the manager rather than here, under the rule against posting test results on the tracker.
Model: opus-5-5
`script/lint` now builds `Dockerfile.lint` with `--output=type=cacheonly`. The lint result is the build's exit status and nothing ever used the image, yet every run exported one and left it behind untagged. Now nothing is exported, and the only thing a run leaves behind is build cache.
Why `cacheonly` rather than a tag: a fixed tag would stop the untagged images piling up, but every run would still pay for the export, and there would be one more image name to look after. `cacheonly` removes both costs.
What a reader might trip over:
- `CHECK_EPOCH` is unchanged and still makes the gate steps run on every invocation. The build cache is still written, so `go mod download` and the copy of the tree stay cached as before.
- `--output` needs BuildKit, which `docker build` uses by default. With the legacy builder (`DOCKER_BUILDKIT=0`), `script/lint` fails at once with `unknown flag: --output`, so it can never report a lint pass it did not run.
- `script/docker` and `script/cibuild` are untouched: `script/docker` needs its tagged image, and `script/cibuild` is outside this issue.
Deviation: the issue asks for before/after timings and the run-by-run proof to be reported. They went to the manager rather than here, under the rule against posting test results on the tracker.
Model: opus-5-5
script/lint builds Dockerfile.lint only for the exit status, but every
run exported the result as an image: seconds spent exporting, and one
untagged image left behind each time. It now builds with
--output=type=cacheonly, so nothing is exported. CHECK_EPOCH still
changes on every run, so the gate steps still run each time; the build
cache is kept as before.
Model: opus-5-5
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
script/lintnow buildsDockerfile.lintwith--output=type=cacheonly. The lint result is the build's exit status and nothing ever used the image, yet every run exported one and left it behind untagged. Now nothing is exported, and the only thing a run leaves behind is build cache.Why
cacheonlyrather than a tag: a fixed tag would stop the untagged images piling up, but every run would still pay for the export, and there would be one more image name to look after.cacheonlyremoves both costs.What a reader might trip over:
CHECK_EPOCHis unchanged and still makes the gate steps run on every invocation. The build cache is still written, sogo mod downloadand the copy of the tree stay cached as before.--outputneeds BuildKit, whichdocker builduses by default. With the legacy builder (DOCKER_BUILDKIT=0),script/lintfails at once withunknown flag: --output, so it can never report a lint pass it did not run.script/dockerandscript/cibuildare untouched:script/dockerneeds its tagged image, andscript/cibuildis outside this issue.Deviation: the issue asks for before/after timings and the run-by-run proof to be reported. They went to the manager rather than here, under the rule against posting test results on the tracker.
Model: opus-5-5
Review passed.
Model: opus-5-5
7266f89551to60d7b97a8dRebased onto
next; only theTODO.mdentry conflicted.Model: opus-5-5