-
# ReleaseKit v0.2.0
released this
2026-10-08 12:48:07 +00:00 | 81 commits to main since this releaseSummary
ReleaseKit adds declarative candidate validation and module-selected release
tooling for Woodpecker. Consumers can replace repeated release checks with typed
Go selections or equivalent profile settings, while retaining product-specific
assertions throughAdditionalChecksand profilechecks.New features
- A facade-owned
ValidationSpeconReleaseRequestand corresponding profile
validationobject select shared checks for bothCheckandPublish.
StructuredValidationErrordiagnostics identify the failed check, relevant
paths and locations, compilation targets, directives, and size measurements.
Wrapping preserves underlying causes and cancellation. - Race testing selects the race detector for the one standard Go suite. Separate
full vet automatically disables test-time vet and runs after successful tests.
Selected package-compilation targets run afterward withCGO_ENABLED=0,
independently of executable artifacts. Source-only libraries can check target
compatibility and retain page-only delivery. - Go formatting checks inspect committed regular Go source and report formatting
differences while preserving files. - Offline Markdown validation checks local destinations and supported heading
fragments, including inline/reference links, images, and autolinks. Heading
anchors support visible text, duplicate headings, and Unicode. Outside-checkout
destinations are reported as out of scope by default; consumers can select
boundary enforcement. Submodule contents remain out of scope. - Independent module-distribution selections inspect committed workspace files
and filesystem module replacements. Versioned replacements are permitted. - Optional file-size validation checks individual committed blobs, including
symlink text, with a configurable limit and literal file/directory exclusions.
Enabling the check selects a default limit of 1,000,000 bytes; only sizes
strictly greater than the selected limit fail. ExpectedPushURLand profileexpected_push_urlrequire an exact match with
Git's effective push destination during publication preflight. A mismatch
returnsErrUnexpectedPushURLbefore candidate validation or tag creation.
LocalCheckignores the publication expectation.- The maintained Woodpecker consumer template selects ReleaseKit from the
released application's module configuration. It verifies the event tag and
commit before building the tool, prepares tool dependencies in temporary module
metadata, and preserves tagged module files. Retries use the triggering tag's
dependency selection. ReleaseKit's self-bootstrap template also supports
fetching missing tool dependencies after tag verification.
See the configuration reference,
candidate check guide,
publication guide,
and delivery guide
for supported behavior and adoption examples.Compatibility
The minimum Go version remains 1.25.0. The root orchestration facade and separate
lightweightbuildinforuntime facade keep their existing responsibilities.
Goldmark andgolang.org/x/modare new internal dependencies; prepare the module
cache before offline validation or builds.Omitted validation selections preserve v0.1.0 defaults. Existing profiles and
product-specific checks continue to work. Race testing requires the native
toolchain's race prerequisites and reports an error when they are unavailable.
Markdown and file-size checks are enabled by non-nil Go specifications or profile
objects, including empty objects; omission ornulldisables them.ReleaseRequestgains fields, so callers using positional struct literals must
convert them to keyed literals. Validation diagnostics now include structured
detail and additional context. Go callers can inspectValidationErrorwith
errors.Asand underlying causes witherrors.Is; CLI integrations should use
exit classifications rather than complete diagnostic strings.Source publication still completes at confirmed publication of the intended
annotated tag. Hosted Gitea delivery retains its separate status. ReleaseKit's
deliverables remain the source tag and hosted note page.Upgrade guidance
-
Update the module dependency:
go get gitea.maximumdirect.net/eric/ReleaseKit@v0.2.0Consumers using a separately installed executable can update it with:
go install gitea.maximumdirect.net/eric/ReleaseKit/cmd/releasekit@v0.2.0 -
Use v0.2.0 tooling before adding new profile fields. Select the shared checks
appropriate to the product and remove the corresponding duplicate commands
from additional checks. Retain assertions about product behavior. Package
compilation belongs under validation; executable deliverables usebuild. -
For module-based CI, adopt the updated
tag-delivery template
and remove the independentRELEASEKIT_VERSIONworkflow pin. Ensure the
application module declares ReleaseKit, align local tool bootstrap with that
selection, and retain the product's Go image, delivery profile, and secret
mapping. The
Woodpecker guidance
describes temporary module metadata, older-tag retries, self-bootstrap, and
separately installed tools.
Downloads
- A facade-owned