Align module release documentation with implemented behavior
This commit is contained in:
@@ -33,10 +33,11 @@ example, both `integrations/core/v2` and `integrations/core` can declare
|
||||
`<module>/docs/releases/<version>.md`.
|
||||
|
||||
The repository must have a clean index and worktree on `main`, and the selected
|
||||
version must be stable `vMAJOR.MINOR.PATCH`. The committed
|
||||
`docs/releases/<version>.md` note must have a first Markdown H1 containing the
|
||||
version must be stable `vMAJOR.MINOR.PATCH`. The module-local committed
|
||||
`<module>/docs/releases/<version>.md` note must have a first Markdown H1 containing the
|
||||
product name and exact version as complete title elements. No local tag with
|
||||
that version may already exist.
|
||||
the derived complete tag may already exist. Different modules may use the same
|
||||
semantic version with distinct notes and tags.
|
||||
|
||||
ReleaseKit runs one `go test -mod=readonly -count=1 ./...` suite from the
|
||||
selected module directory with the available compatible local Go toolchain.
|
||||
@@ -49,20 +50,22 @@ complete target pair after tests and vet. Package compilation uses
|
||||
failures use the `package-compile` identity and include the target. The zero
|
||||
values retain the ordinary native test behavior and select no compilation.
|
||||
Set `Validation.GoFormat` to check committed regular Go files using the Go
|
||||
formatter built into ReleaseKit. It includes vendor and nested-module source,
|
||||
formatter built into ReleaseKit. It uses the selected file inputs, including
|
||||
vendor and explicit shared files, and
|
||||
ignores symlink blobs and worktree changes, and reports unformatted paths as
|
||||
`go-format` without rewriting files. Its zero value disables the check; it runs
|
||||
after tests, selected vet, and package compilation, before `AdditionalChecks`.
|
||||
|
||||
Set `Validation.ModuleDistribution.WorkspaceFiles` to reject committed
|
||||
`go.work` and `go.work.sum` files in the selected module inputs, including
|
||||
nested and symlink entries. It examines the captured candidate even when
|
||||
symlink entries. It examines the captured candidate even when
|
||||
`GOWORK=off`, ignores uncommitted files, and does not change Go test workspace
|
||||
selection; vendored contents remain in scope. The zero value disables the check;
|
||||
failures use `workspace-files`.
|
||||
Set `Validation.ModuleDistribution.LocalReplacements` independently to parse
|
||||
the selected module's committed `go.mod` declarations. Vendored contents remain
|
||||
in scope, while independently released nested modules are excluded. It reports
|
||||
in scope; automatic inputs stop at independently released nested modules. An
|
||||
explicit shared-file selection can include another module's declaration. It reports
|
||||
filesystem `replace` directives with their source path, line, and target as
|
||||
`local-replacements`; versioned replacements are
|
||||
permitted. Committed module symlinks are resolved within the candidate. Parse
|
||||
@@ -103,6 +106,12 @@ Explicit files replace those defaults, must exist even when file checks are
|
||||
disabled, and may be in another module. Combined inputs are deduplicated by
|
||||
repository-relative path.
|
||||
|
||||
Automatic file inputs stop at independent nested-module boundaries, including
|
||||
fixture modules. Vendored files remain included. Shared selection affects file
|
||||
inputs only; Go validation retains the selected module's scope. Reference reads
|
||||
can inspect destinations elsewhere in the captured repository without adding
|
||||
those destinations to the input set.
|
||||
|
||||
It does not download a different toolchain automatically. If race prerequisites
|
||||
are unavailable, the `go-test` check fails rather than being skipped; a selected
|
||||
full-vet failure is reported as `go-vet`. The suite uses the Go host target,
|
||||
@@ -123,10 +132,11 @@ commands from `releasekit.json`.
|
||||
## Publishing the source tag
|
||||
|
||||
`releasekit.Publish` uses the same request and validation order: the standard
|
||||
suite runs first, followed by `AdditionalChecks` when supplied. It then performs
|
||||
authoritative remote checks, annotated-tag creation, and an exact tag push. The
|
||||
suite runs first, followed by `AdditionalChecks` when supplied. It surrounds
|
||||
validation with authoritative remote guards before annotated-tag creation and
|
||||
an exact tag push. The
|
||||
selected remote must publish `main` at the captured commit and must not already
|
||||
contain the selected version tag. A successful result includes the endpoint and
|
||||
contain the selected complete tag. A successful result includes the endpoint and
|
||||
tag object ID. Publication states distinguish an unattempted push, a tag that
|
||||
was created locally but not pushed, a successful push, a guard conflict, and an
|
||||
unresolved push error. See the [publication guide](publish.md) for the complete
|
||||
|
||||
@@ -14,7 +14,7 @@ result, err := releasekit.Publish(ctx, releasekit.ReleaseRequest{
|
||||
Go: releasekit.GoValidationSpec{Race: true, FullVet: true},
|
||||
},
|
||||
AdditionalChecks: func(ctx context.Context, candidate releasekit.Candidate) error {
|
||||
return runProjectChecks(ctx, candidate.RepositoryDir)
|
||||
return runProjectChecks(ctx, candidate.ModuleDir)
|
||||
},
|
||||
})
|
||||
if err != nil {
|
||||
@@ -63,21 +63,23 @@ does not execute target binaries. A failure is reported as `package-compile`
|
||||
with the selected target and prevents tag creation.
|
||||
|
||||
Set `Validation.GoFormat` to check committed regular Go source using the Go
|
||||
formatter built into ReleaseKit. It includes vendor and nested modules, ignores
|
||||
formatter built into ReleaseKit. It uses the selected file inputs, including
|
||||
vendor and explicit shared files, and ignores
|
||||
worktree changes and symlink blobs, and reports unformatted paths as
|
||||
`go-format` without changing files. The default is disabled. The check follows
|
||||
tests, selected vet, and package compilation, and a failure stops publication
|
||||
before product checks or tag creation.
|
||||
|
||||
Set `Validation.ModuleDistribution.WorkspaceFiles` to reject committed
|
||||
`go.work` and `go.work.sum` blobs, including nested paths and symlink entries.
|
||||
`go.work` and `go.work.sum` blobs in the selected inputs, including symlink entries.
|
||||
The rule reads the captured candidate regardless of `GOWORK`; uncommitted files
|
||||
are ignored, and Go workspace selection and vendor behavior are unchanged. Its
|
||||
zero value disables the check. Findings use `workspace-files` and stop
|
||||
publication before product checks or tag creation.
|
||||
Set `Validation.ModuleDistribution.LocalReplacements` independently to parse
|
||||
selected module's committed `go.mod` declarations. Vendored contents remain in
|
||||
scope, while independently released nested modules are excluded. Filesystem
|
||||
scope; automatic inputs stop at independently released nested modules. Explicit
|
||||
shared files can include another module's declaration. Filesystem
|
||||
`replace` directives are reported with their source path, line, and target as
|
||||
`local-replacements`; versioned replacements are
|
||||
permitted. Committed module symlinks are resolved within the candidate, and
|
||||
|
||||
Reference in New Issue
Block a user