Rewrite the -count=1 note to match the current files (closes #77)
check / check (push) Successful in 31s
check / check (push) Successful in 31s
The note under the canonical Go `make test` example in `prompts/REPO_POLICIES.md` still named the cache-busting build argument that `--no-cache` replaced, and said Go's cache was baked into earlier image layers. It now says where Go's test result cache can replay a pass: on a developer's machine, where the Makefile target runs, so `-count=1` stays on both invocations. The `test` phase of the `Dockerfile` has nothing to replay: its base image holds no result for the repo's tests and no earlier step runs one. The first paragraph no longer says the rerun would replay a failure: Go stores only passes. Model: opus-5-5
This commit is contained in:
@@ -21,6 +21,12 @@ fmt-check, and commit.
|
|||||||
|
|
||||||
# Completed Steps
|
# Completed Steps
|
||||||
|
|
||||||
|
- 2026-10-04: Rewrote the note under the canonical Go `make test` example in
|
||||||
|
`REPO_POLICIES.md` (issue 77), which still named the cache-busting build
|
||||||
|
argument that `--no-cache` replaced. It now says where Go's test result cache
|
||||||
|
can replay a pass: on a developer's machine, where the Makefile target runs,
|
||||||
|
and not in the `test` phase of the `Dockerfile`, whose base image and earlier
|
||||||
|
steps hold no result for the repo's tests.
|
||||||
- 2026-10-04: The Makefile examples in the Go styleguide and the HTTP server
|
- 2026-10-04: The Makefile examples in the Go styleguide and the HTTP server
|
||||||
conventions now fall back to `dev` when `git describe` prints nothing (outside
|
conventions now fall back to `dev` when `git describe` prints nothing (outside
|
||||||
a git checkout, or where git is missing or refuses the checkout), instead of
|
a git checkout, or where git is missing or refuses the checkout), instead of
|
||||||
|
|||||||
+12
-10
@@ -317,17 +317,19 @@ style conventions are in separate documents:
|
|||||||
```
|
```
|
||||||
|
|
||||||
`-count=1` is required on both invocations: it defeats Go's test _result_
|
`-count=1` is required on both invocations: it defeats Go's test _result_
|
||||||
cache, so the target cannot report a pass it did not earn, and the rerun
|
cache, so neither run can report a stored pass in place of running the
|
||||||
reproduces a failure instead of replaying it. It leaves the build cache
|
tests. It leaves the build cache alone, so it costs the runtime of the suite
|
||||||
alone, so it costs the runtime of the suite and no recompilation.
|
and no recompilation.
|
||||||
|
|
||||||
Note that this is a second, independent cache, stacked below the Docker
|
That cache is Go's own, separate from Docker's layer cache. Go stores a
|
||||||
layer cache that [issue #26](https://git.eeqj.de/sneak/prompts/issues/26)
|
passing result in its cache directory (`GOCACHE`), and when the same tests
|
||||||
addresses. `CHECK_EPOCH` guarantees the `RUN make test` _step_ re-executes;
|
run again on unchanged code it prints that result, marked `(cached)`,
|
||||||
it does not guarantee `go test` inside that step does any work, because the
|
without running them. That matters on a developer's machine, where this
|
||||||
`GOCACHE` baked into earlier image layers survives into the re-executed
|
target runs and the directory lasts from one run to the next. The `test`
|
||||||
step. They are two separate defects requiring two separate fixes, and a fix
|
phase of the `Dockerfile` needs no `-count=1`: its base image holds no
|
||||||
for one must not be recorded as covering the other.
|
result for this repo's tests and nothing before its `go test` step runs a
|
||||||
|
test, so there is nothing to replay. `--no-cache` (above) is what makes that
|
||||||
|
step run on an unchanged tree.
|
||||||
|
|
||||||
Python example:
|
Python example:
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user