Coordinate separate full vet pass

This commit is contained in:
2026-10-07 22:18:47 +00:00
parent 30fe4fe206
commit 1c41f7a0d1
19 changed files with 261 additions and 80 deletions

View File

@@ -28,12 +28,15 @@ target requires the package and binary name; each target is written as one
The optional `validation` object selects shared checks implemented by ReleaseKit.
`validation.go.race` enables the race detector for the single standard Go test
suite. When omitted or false, the ordinary native suite runs. For example:
suite. `validation.go.full_vet` runs a separate native `go vet` pass after that
suite succeeds; ReleaseKit disables test-time vet for that suite to avoid
running vet twice. When `full_vet` is omitted or false, the test command keeps
its existing vet behavior. Both settings are independent. For example:
```json
{
"product": "Example",
"validation": {"go": {"race": true}}
"validation": {"go": {"race": true, "full_vet": true}}
}
```
@@ -46,11 +49,13 @@ passes its value explicitly to the library operation.
The `check` and `publish` commands run one
`go test -mod=readonly -count=1 ./...` suite with Go module and toolchain network
access disabled, adding `-race` when `validation.go.race` is true. They then run
access disabled, adding `-race` when `validation.go.race` is true. When
`validation.go.full_vet` is true, they add `-vet=off` to that test command and
run native `go vet -mod=readonly ./...` after successful tests. They then run
each configured `checks` command once, in order, as an additional product
check. Selected-target builds run after the suite and product checks. Do not
repeat the standard suite in `checks`; doing so runs it twice. The `build`
command uses the selected build settings and writes binaries to `dist` unless
check. Selected-target builds run after shared validation and product checks.
Do not repeat the standard suite or vet in `checks`; doing so repeats work. The
`build` command uses the selected build settings and writes binaries to `dist` unless
`--output` selects another path.
The `deliver` command uses the delivery destination and token. By default it
passes selected targets to the delivery facade, which builds tagged-source