ReleaseKit
ReleaseKit is an opinionated Go library and executable for a shared release
process. The Go module, root releasekit facade, buildinfo runtime package,
local candidate check, source-tag publication API, selected-target build API,
tagged-source delivery API, and the version, check, publish, build,
deliver, and ci-deliver commands are implemented. ReleaseKit's source-only
maintainer procedure and prepared Woodpecker workflow for hosted note-page
delivery are documented. ReleaseKit does not declare binary deliverables.
See the consumer adoption guide to add ReleaseKit as a versioned Go tool or package dependency, and the v0.1.0 release note for the initial baseline.
Run the offline Go test suite from the repository root with:
go test ./...
The version command prints ReleaseKit's version:
go run ./cmd/releasekit version
The local candidate check validates a committed release note, runs the standard offline Go suite with any selected shared validation checks, and then runs configured product checks:
go run ./cmd/releasekit check v1.2.3
Publish the source tag from a committed candidate with:
./scripts/release v1.2.3
See the ReleaseKit maintainer procedure for preparation and failure recovery.
Documentation
- Consumer adoption: versioned CLI tool and Go API dependencies, upgrades, and CI adoption.
- Contributor guide: orientation, validation, and selective policy reading.
- CLI contract: the
version,check,publish,build,deliver, andci-delivercommands. - Configuration: profile fields and child-command settings.
- Runtime version guidance: how applications
read their embedded version through
buildinfo. - Build guidance: compile selected Go targets with an injected application version.
- Delivery guidance: deliver tagged source and report hosted page and asset status.
- Gitea integration: hosted release-page operations and their failure behavior.
- Candidate check guidance: local candidate validation through the Go API and CLI.
- Source publication guidance: validate and publish the exact annotated source tag through the Go API.
- Maintainer release procedure: ReleaseKit's source-only publication workflow and recovery.
- Internal package inventory: implemented internal components and their responsibilities.
- Architecture policy: responsibility and dependency boundaries for development.
- ADR 0001: the accepted public facade decision.
- Policy provenance: adopted policy sources and update guidance.
ReleaseKit is licensed under the LGPL v3.0 or later.
Open Source attribution notices are available.