# Adopt ReleaseKit Use a versioned Go tool dependency when ReleaseKit provides the repository's release commands. This records the CLI in `go.mod` and keeps it available to maintainers without adding imports to application or library code. ## CLI tool dependency From the consumer module's root, select the ReleaseKit version to adopt: ```sh go get -tool gitea.maximumdirect.net/eric/ReleaseKit/cmd/releasekit@v0.2.0 go mod tidy go tool releasekit version ``` Replace `v0.2.0` with the intended release. Go records the executable package in a `tool` directive and the module version in a `require` directive. The tool declaration retains the dependency through `go mod tidy`. Commit the resulting `go.mod` and `go.sum` changes. To upgrade, repeat the command with the chosen version and review the module changes. The Go tool dependency feature requires Go 1.24 or later. The current ReleaseKit module declares a Go 1.26.0 minimum, so use Go 1.26.0 or later for the current release. Tool dependencies share the consumer's module graph: their requirements participate in dependency version selection and can raise the consumer module's Go minimum. See the [Go tool dependency reference](https://go.dev/ref/mod#go-mod-file-tool). Run `go tool releasekit` from within the consumer module to use its selected version. Follow the [CLI contract](../cli.md) for commands and exit statuses, and the [configuration reference](../config.md) for the release profile. ## Go API consumers Consumers importing the root `releasekit` API or [`buildinfo`](runtime-version.md) use ordinary package dependencies. Add the required imports and select the module version: ```sh go get gitea.maximumdirect.net/eric/ReleaseKit@v0.2.0 go mod tidy ``` API consumers can also register the CLI with `go get -tool` as above. Both uses share the module-selected ReleaseKit version. ## CI adoption The maintained [consumer tag-delivery workflow](delivery.md#woodpecker-tag-workflows) supports both tool and ordinary package dependencies. It builds ReleaseKit from the tagged consumer's module selection, so the committed module files also govern CI delivery and retries. Registering the CLI as a tool is sufficient for consumers that use ReleaseKit only for maintainer commands.