85 lines
3.5 KiB
Markdown
85 lines
3.5 KiB
Markdown
# 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.
|