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.
The Go module is go.maximumdirect.net/releasekit. The
adoption guide
explains the v0.5.0 migration from the original Gitea module path.
The v0.6.0 release note describes the delivery API
and profile migration.
Release operations can select one Go module within a repository. The repository root remains the default; a selected module's declared import path and physical directory determine its complete Git tag and module-local release note. See the candidate check, publication, and multi-module example.
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 0006: neutral delivery policy and credential preflight.
- 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.