Simplify release validation gates
This commit is contained in:
@@ -117,7 +117,8 @@ under the testing policy. Documentation-only work normally needs the local-link
|
||||
check below and whitespace review; behavior-bearing examples and commands also
|
||||
need execution. Use `go test -race ./...` for ownership or concurrency changes.
|
||||
The [release checker](release.md#4-validate-the-source-candidate) performs one
|
||||
minimum-toolchain race-suite run, vet, module hygiene, and Linux cross-builds.
|
||||
minimum-toolchain offline race-suite run, one full vet pass, and Linux
|
||||
cross-builds using readonly module mode.
|
||||
It already covers examples, links, and package boundaries; do not additionally
|
||||
run the everyday checker just to repeat those checks. CI never gates a release.
|
||||
|
||||
|
||||
@@ -26,7 +26,7 @@ policy and link to it rather than introduce additional release requirements.
|
||||
ConfigKit adopts a source-only Go module release model. The source tag and
|
||||
version-matched release note are the declared deliverables. Standalone binaries,
|
||||
container images, and separate binary/package-registry publication are not
|
||||
required. This does not waive source compilation, module hygiene, testing, or
|
||||
required. This does not waive source compilation, dependency maintenance, testing, or
|
||||
local target-build validation. Post-publication consumer retrieval is optional,
|
||||
as described under Release Model.
|
||||
|
||||
@@ -148,11 +148,17 @@ gate; historical release notes are unchanged.
|
||||
|
||||
ConfigKit provides one local release checker. Run it once against the final
|
||||
committed candidate using one maintained patch of the minimum supported Go line
|
||||
on Linux. It checks module hygiene, formatting and whitespace, the full offline
|
||||
suite with the race detector, static analysis, and CGO-disabled Linux amd64/arm64
|
||||
builds. Examples, documentation links, consumer fixtures, and package boundaries
|
||||
are covered by that suite, not separate repeated runs. Native package compilation
|
||||
is covered by the test run. A second toolchain is optional and non-gating.
|
||||
on Linux. It runs one full offline race suite, one full vet pass, and CGO-disabled
|
||||
Linux amd64/arm64 builds. The race suite protects library behavior, ownership,
|
||||
and concurrent use; it includes examples, documentation links, consumer fixtures,
|
||||
and package boundaries without separate runs. Full vet checks more than the
|
||||
subset normally run by tests, so test-time vet is disabled. The two cross-builds
|
||||
cover supported configurations that native race compilation does not. A second
|
||||
toolchain is optional and non-gating.
|
||||
|
||||
All Go checks use readonly module mode and an offline dependency cache.
|
||||
Formatting and whitespace remain ordinary development checks. Review module
|
||||
tidiness when dependencies change, rather than auditing it on every release.
|
||||
|
||||
Commit the release note and associated changes before release validation. Record
|
||||
the exact validated commit; revalidate if the candidate changes. Do not require
|
||||
|
||||
@@ -18,7 +18,8 @@ binary, container image, generated package, or separate registry publication.
|
||||
- Best-effort targets: macOS on amd64 and arm64, under the
|
||||
[platform support policy](policy/release.md#platform-support)
|
||||
|
||||
The local Linux checker includes native race tests and CGO-disabled cross-builds.
|
||||
The local Linux checker includes one offline race suite, one full vet pass, and
|
||||
CGO-disabled amd64/arm64 cross-builds.
|
||||
Its output reports skipped filesystem cases; no separate evidence record or
|
||||
human sign-off is required. Native macOS checks and Darwin cross-builds are
|
||||
optional and do not gate publication.
|
||||
@@ -136,13 +137,15 @@ printf '%s\n' "$candidate_commit" > "$(git rev-parse --git-path configkit-releas
|
||||
```
|
||||
|
||||
If the final candidate is already committed, omit the staging and commit commands;
|
||||
do not create an empty commit. The checker validates module manifests in a
|
||||
disposable copy, formatting, whitespace, the full offline suite once with the race
|
||||
detector and verbose skip reporting, vet once, and CGO-disabled Linux amd64/arm64
|
||||
builds. The suite includes examples, consumer fixtures, documentation links, and
|
||||
package boundaries; no separate reruns are required. No additional linter is
|
||||
claimed. Sibling-consumer links are checked when those checkouts exist and are
|
||||
otherwise inapplicable in an isolated checkout.
|
||||
do not create an empty commit. The checker runs one full offline race suite with
|
||||
verbose skip reporting and test-time vet disabled, one full vet pass, and
|
||||
CGO-disabled Linux amd64/arm64 builds. Go commands use readonly module mode.
|
||||
The suite includes examples, consumer fixtures, documentation links, and package
|
||||
boundaries; no separate reruns are required. Formatting and whitespace remain
|
||||
ordinary development checks in `scripts/check.sh`; module tidiness is reviewed
|
||||
when dependencies change. No additional linter is claimed. Sibling-consumer links
|
||||
are checked when those checkouts exist and are otherwise inapplicable in an
|
||||
isolated checkout.
|
||||
|
||||
A changed candidate requires validation again. Do not reuse a recorded candidate
|
||||
from an older revision. The record is written only after successful local checks.
|
||||
|
||||
@@ -33,6 +33,12 @@ Bash 3.2 and existing Git/Go prerequisites; no new release framework is needed.
|
||||
|
||||
## Stage 1 — Simplify the release checker and select its gates
|
||||
|
||||
**Completed 2026-09-28.** The checker now runs one readonly offline race suite
|
||||
with test-time vet disabled, one full vet pass, and CGO-disabled Linux amd64/arm64
|
||||
builds. The disposable module audit and release formatting/whitespace scans were
|
||||
removed. Focused checker tests, Bash syntax checks, and the real Go 1.25.14
|
||||
release checker passed on Linux.
|
||||
|
||||
Change `scripts/release-check.sh`, checker tests in `release_check_test.go`, and
|
||||
the affected descriptions in `docs/policy/release.md`, `docs/release.md`, and
|
||||
`docs/development.md` together. The existing guarded publication blocks remain
|
||||
|
||||
Reference in New Issue
Block a user