# 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. 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](docs/consumers/check.md), [publication](docs/consumers/publish.md), and [multi-module example](examples/multi-module/). See the [consumer adoption guide](docs/consumers/adoption.md) to add ReleaseKit as a versioned Go tool or package dependency, and the [v0.1.0 release note](docs/releases/v0.1.0.md) for the initial baseline. Run the offline Go test suite from the repository root with: ```sh go test ./... ``` The version command prints ReleaseKit's version: ```sh 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: ```sh go run ./cmd/releasekit check v1.2.3 ``` Publish the source tag from a committed candidate with: ```sh ./scripts/release v1.2.3 ``` See the [ReleaseKit maintainer procedure](docs/release.md) for preparation and failure recovery. ## Documentation - [Consumer adoption](docs/consumers/adoption.md): versioned CLI tool and Go API dependencies, upgrades, and CI adoption. - [Contributor guide](docs/development.md): orientation, validation, and selective policy reading. - [CLI contract](docs/cli.md): the `version`, `check`, `publish`, `build`, `deliver`, and `ci-deliver` commands. - [Configuration](docs/config.md): profile fields and child-command settings. - [Runtime version guidance](docs/consumers/runtime-version.md): how applications read their embedded version through `buildinfo`. - [Build guidance](docs/consumers/build.md): compile selected Go targets with an injected application version. - [Delivery guidance](docs/consumers/delivery.md): deliver tagged source and report hosted page and asset status. - [Gitea integration](docs/integrations/gitea.md): hosted release-page operations and their failure behavior. - [Candidate check guidance](docs/consumers/check.md): local candidate validation through the Go API and CLI. - [Source publication guidance](docs/consumers/publish.md): validate and publish the exact annotated source tag through the Go API. - [Maintainer release procedure](docs/release.md): ReleaseKit's source-only publication workflow and recovery. - [Internal package inventory](docs/internal/overview.md): implemented internal components and their responsibilities. - [Architecture policy](docs/policy/architecture.md): responsibility and dependency boundaries for development. - [ADR 0001](docs/adr/0001-public-facade.md): the accepted public facade decision. - [Policy provenance](docs/policy/meta.md): adopted policy sources and update guidance. ReleaseKit is licensed under the [LGPL v3.0 or later](COPYRIGHT). [Open Source attribution notices](docs/oss/attribution.md) are available.