Request adaptable release validation for ConfigKit

This commit is contained in:
2026-10-07 16:07:16 +00:00
parent 5e60fe3113
commit 60175d6690

View File

@@ -0,0 +1,67 @@
# Feature request from ConfigKit: adaptable release validation
Status: Requested by a prospective downstream consumer; not yet adopted by
ReleaseKit.
ConfigKit would like to adopt ReleaseKit's common source-release process and
retire most of its repository-owned release scripts and publication tests. It is
a source-only Go library. ConfigKit can follow ReleaseKit's existing convention
of publishing the candidate to `main` before running the tag-publication
command; it does not need binary artifacts or a different source-publication
sequence.
## Select one base Go test invocation
ReleaseKit's [candidate check](../consumers/check.md) currently runs its
standard `go test` suite before any configured additional checks. ConfigKit's
selected release validation includes a race-enabled run of its full test
suite, with a separate full vet pass. Expressing the race run as an additional
check would run the suite twice and retain avoidable consumer-specific release
wiring.
Please provide a small public API and profile capability for a consumer to
select its **one base Go test invocation** for candidate validation. The
selection should replace the default invocation, rather than add a second test
run. Without a selection, ReleaseKit's current default remains useful. Both
`Check` and `Publish`, including their CLI forms, should use the selected
invocation consistently while ReleaseKit continues to own candidate capture,
validation order, result reporting, and publication. ConfigKit needs to select
a full-suite race run with test-time vet omitted because it selects a separate
full vet pass. ReleaseKit can choose the simplest public expression of that
choice; ConfigKit is not asking for a general-purpose release pipeline or
consumer-owned orchestration.
## Evaluate shared release checks
ConfigKit also uses a separate full `go vet` pass and compile checks for Linux
amd64 and arm64. Please assess whether these checks are useful enough across
ReleaseKit consumers to offer directly through its public API and profile,
either as defaults or as selected options where product support differs.
In particular, a source-only library needs to verify that its packages compile
for selected targets without declaring executable artifacts or adding delivery
work. ReleaseKit could make that distinction available to consumers. The goal
is to keep these checks, when selected, within the same candidate validation
and publication flow without repeating work already done by the base test.
Whether race, vet, or cross-target compilation should be common defaults is a
ReleaseKit product decision; ConfigKit asks for an assessment, not a universal
new release gate.
## Optional publication endpoint expectation
ConfigKit currently identifies one expected authoritative Git destination. An
optional expected-endpoint setting in ReleaseKit's public API and profile could
let a consumer verify that the selected remote resolves to its declared
destination before publication. Please consider whether this is broadly useful
and simpler than retaining a small consumer-owned preflight check. Existing
ReleaseKit remote selection and endpoint handling should remain the common
publication model.
## Adoption outcome
A useful outcome would let ConfigKit declare its product identity, selected
validation, and any expected publication destination, then rely on ReleaseKit's
standard candidate check and tag-publication command. ConfigKit would retain
its compatibility decisions and release notes while removing duplicated release
mechanics. Source publication would still complete at the confirmed tag push;
CI and hosted delivery would remain separate from that completion point.