3.3 KiB
ReleaseKit v0.1.0
Summary
ReleaseKit's initial release provides an opinionated Go library and executable for candidate validation, annotated source-tag publication, version injection, selected-target builds, and Gitea release delivery.
The root releasekit facade owns release orchestration. The separate buildinfo
facade supplies lightweight runtime version access. Both belong to one Go module
with a Go 1.25.0 minimum language version.
Capabilities
- Run the standard offline Go test suite once, followed by optional product-specific checks and selected-target build verification.
- Publish the exact annotated tag for a validated candidate already on
authoritative
main, with bounded recovery after failed or ambiguous pushes. - Cross-build selected Go targets with shared version injection, artifact names, digests, and a native version smoke check. Source-only projects select no binary targets.
- Deliver committed release notes and declared assets to Gitea, preserving existing content and reporting partial, conflicting, and uncertain outcomes.
- Use one managed build-and-deliver operation or supply retained prebuilt artifacts for retries and separate build/delivery environments.
- Prepare tagged CI checkouts and dependencies through the shared
ci-delivercommand and maintained Woodpecker workflow.
See the CLI contract, configuration reference, consumer delivery guide, and runtime version guide for supported behavior.
Adoption and compatibility
Consumers can select this initial baseline with:
go get gitea.maximumdirect.net/eric/ReleaseKit@v0.1.0
go install gitea.maximumdirect.net/eric/ReleaseKit/cmd/releasekit@v0.1.0
Profiles declare product identity, additional checks, selected binaries and
targets, and a Gitea destination. Applications obtain their embedded version
through buildinfo.Version().
For consumers experimenting with earlier development revisions, rename the
ReleaseRequest.Validate callback to AdditionalChecks and remove repeated
standard-suite commands from profile checks. DeliveryRequest.Build now
accepts a *BuildSpec for managed builds; use Prebuilt for an existing
BuildResult.
Compatibility follows the release policy: before v1.0.0, minor releases may change documented contracts with migration guidance; patch releases preserve contracts within their minor line.
ReleaseKit's deliverables are this immutable source tag and the hosted page containing this complete note. Consumer migration and live Woodpecker deployment remain adoption work tracked in the product roadmap.