Rewrite the -count=1 note to match the current files (closes #77)
check / check (push) Waiting to run
check / check (push) Waiting to run
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
|
||||
|
||||
- 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 canonical `.dockerignore` now also keeps out each submodule's
|
||||
`config` (issue 75). A submodule's git directory lives under `.git/modules/`,
|
||||
nested again for its own submodules, and its `config` can hold a credential
|
||||
|
||||
+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_
|
||||
cache, so the target cannot report a pass it did not earn, and the rerun
|
||||
reproduces a failure instead of replaying it. It leaves the build cache
|
||||
alone, so it costs the runtime of the suite and no recompilation.
|
||||
cache, so neither run can report a stored pass in place of running the
|
||||
tests. It leaves the build cache alone, so it costs the runtime of the suite
|
||||
and no recompilation.
|
||||
|
||||
Note that this is a second, independent cache, stacked below the Docker
|
||||
layer cache that [issue #26](https://git.eeqj.de/sneak/prompts/issues/26)
|
||||
addresses. `CHECK_EPOCH` guarantees the `RUN make test` _step_ re-executes;
|
||||
it does not guarantee `go test` inside that step does any work, because the
|
||||
`GOCACHE` baked into earlier image layers survives into the re-executed
|
||||
step. They are two separate defects requiring two separate fixes, and a fix
|
||||
for one must not be recorded as covering the other.
|
||||
That cache is Go's own, separate from Docker's layer cache. Go stores a
|
||||
passing result in its cache directory (`GOCACHE`), and when the same tests
|
||||
run again on unchanged code it prints that result, marked `(cached)`,
|
||||
without running them. That matters on a developer's machine, where this
|
||||
target runs and the directory lasts from one run to the next. The `test`
|
||||
phase of the `Dockerfile` needs no `-count=1`: its base image holds no
|
||||
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:
|
||||
|
||||
|
||||
Reference in New Issue
Block a user