From b99efc7709cf20ee7fde9a52591049a066812a38 Mon Sep 17 00:00:00 2001 From: clawbot Date: Sun, 9 Aug 2026 09:58:07 +0000 Subject: [PATCH] Run script/lint from script/check (closes #9) script/check ran only fmt-check then test, so script/lint was never invoked anywhere in the gate: make check shims to script/check, the Dockerfile runs make check, script/cibuild builds the Dockerfile, and the pre-commit hook calls script/check. The script was dead code that the README advertised as part of the gate. It now runs test, lint, fmt-check in the canonical order. script/lint is hugo --minify --printPathWarnings, which reports render-target collisions that the plain hugo --minify in script/test does not; that signal was being discarded. The gate still modifies no tracked files. script/test and script/lint both write to public/, which is gitignored and was already written by script/test before this change. Corrects the README Entrypoints line for script/check, which described the old two-step order. --- README.md | 3 ++- TODO.md | 7 +++++++ script/check | 8 +++++--- 3 files changed, 14 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index dff20fc..1d0610f 100644 --- a/README.md +++ b/README.md @@ -55,7 +55,8 @@ provide: - `script/lint` — a clean build that surfaces broken links and path collisions - `script/fmt` — format the repo's own top-level markdown docs with prettier - `script/fmt-check` — check that formatting (read-only) -- `script/check` — run `script/fmt-check` then `script/test`; modifies nothing +- `script/check` — run `script/test`, `script/lint`, then `script/fmt-check`; + modifies no tracked files - `script/docker` — build the Docker image tagged with the project name - `script/cibuild` — the CI build (`docker build .`); the Dockerfile runs `make check` diff --git a/TODO.md b/TODO.md index 7936071..081abba 100644 --- a/TODO.md +++ b/TODO.md @@ -25,6 +25,13 @@ Update `README.md` accordingly. # Completed Steps +- 2026-08-09: made `script/check` run `script/lint` (closes #9). It previously + ran only `fmt-check` then `test`, so `script/lint` executed nowhere — not in + `make check`, not in the pre-commit hook, and not in CI, even though the + `Dockerfile` runs `make check` and `script/cibuild` builds it. It now runs + `test`, `lint`, `fmt-check` in the canonical order, so the + `hugo --printPathWarnings` render-target-collision signal is no longer + discarded. `README.md`'s Entrypoints line was corrected to match - 2026-08-09: hash-pinned every external reference in `.gitea/workflows/deploy.yml` (closes #7): both job container images are pinned by digest, all three `uses:` are pinned by 40-hex commit SHA, and the diff --git a/script/check b/script/check index 7f218e5..f06027f 100755 --- a/script/check +++ b/script/check @@ -1,14 +1,16 @@ #!/bin/sh # script/check: run all checks. Our own extension to -# scripts-to-rule-them-all. Must not modify any files. Runs the -# read-only formatting check first, then the clean production build. +# scripts-to-rule-them-all. Must not modify any tracked files. Runs the +# canonical order: the clean production build, then the lint build that +# reports path warnings, then the read-only formatting check. set -eu SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd -P)" main() { - "$SCRIPT_DIR/fmt-check" "$SCRIPT_DIR/test" + "$SCRIPT_DIR/lint" + "$SCRIPT_DIR/fmt-check" } main "$@"