Rewrite the -count=1 note to match the current files (closes #77)
check / check (push) Successful in 50s
check / check (push) Successful in 50s
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-03: Fixed two defects in the canonical Go `Dockerfile` example (issue
|
- 2026-10-03: Fixed two defects in the canonical Go `Dockerfile` example (issue
|
||||||
73). The test phase now uses the Debian Go image, since `-race` needs cgo and
|
73). The test phase now uses the Debian Go image, since `-race` needs cgo and
|
||||||
the alpine image has no C compiler, so the phase failed before running a test.
|
the alpine image has no C compiler, so the phase failed before running a test.
|
||||||
|
|||||||
+13
-11
@@ -1,6 +1,6 @@
|
|||||||
---
|
---
|
||||||
title: Repository Policies
|
title: Repository Policies
|
||||||
last_modified: 2026-10-03
|
last_modified: 2026-10-04
|
||||||
---
|
---
|
||||||
|
|
||||||
This document covers repository structure, tooling, and workflow standards. Code
|
This document covers repository structure, tooling, and workflow standards. Code
|
||||||
@@ -316,17 +316,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