Files
ReleaseKit/docs/releases/v0.1.0.md

65 lines
3.3 KiB
Markdown

# ReleaseKit v0.1.0
## Summary
ReleaseKit's initial release provides an opinionated Go library and executable
for candidate validation, annotated source-tag publication, version injection,
selected-target builds, and Gitea release delivery.
The root `releasekit` facade owns release orchestration. The separate `buildinfo`
facade supplies lightweight runtime version access. Both belong to one Go module
with a Go 1.25.0 minimum language version.
## Capabilities
- Run the standard offline Go test suite once, followed by optional
product-specific checks and selected-target build verification.
- Publish the exact annotated tag for a validated candidate already on
authoritative `main`, with bounded recovery after failed or ambiguous pushes.
- Cross-build selected Go targets with shared version injection, artifact names,
digests, and a native version smoke check. Source-only projects select no
binary targets.
- Deliver committed release notes and declared assets to Gitea, preserving
existing content and reporting partial, conflicting, and uncertain outcomes.
- Use one managed build-and-deliver operation or supply retained prebuilt
artifacts for retries and separate build/delivery environments.
- Prepare tagged CI checkouts and dependencies through the shared `ci-deliver`
command and maintained Woodpecker workflow.
See the [CLI contract](https://gitea.maximumdirect.net/eric/ReleaseKit/src/tag/v0.1.0/docs/cli.md),
[configuration reference](https://gitea.maximumdirect.net/eric/ReleaseKit/src/tag/v0.1.0/docs/config.md),
[consumer delivery guide](https://gitea.maximumdirect.net/eric/ReleaseKit/src/tag/v0.1.0/docs/consumers/delivery.md),
and [runtime version guide](https://gitea.maximumdirect.net/eric/ReleaseKit/src/tag/v0.1.0/docs/consumers/runtime-version.md)
for supported behavior.
## Adoption and compatibility
Consumers can select this initial baseline with:
```sh
go get gitea.maximumdirect.net/eric/ReleaseKit@v0.1.0
go install gitea.maximumdirect.net/eric/ReleaseKit/cmd/releasekit@v0.1.0
```
Profiles declare product identity, additional checks, selected binaries and
targets, and a Gitea destination. Applications obtain their embedded version
through `buildinfo.Version()`.
For consumers experimenting with earlier development revisions, rename the
`ReleaseRequest.Validate` callback to `AdditionalChecks` and remove repeated
standard-suite commands from profile `checks`. `DeliveryRequest.Build` now
accepts a `*BuildSpec` for managed builds; use `Prebuilt` for an existing
`BuildResult`.
Compatibility follows the [release policy](https://gitea.maximumdirect.net/eric/ReleaseKit/src/tag/v0.1.0/docs/policy/release.md): before
v1.0.0, minor releases may change documented contracts with migration guidance;
patch releases preserve contracts within their minor line.
ReleaseKit's deliverables are this immutable source tag and the hosted page
containing this complete note. Consumer migration and live Woodpecker deployment
remain adoption work tracked in the [product roadmap](https://gitea.maximumdirect.net/eric/ReleaseKit/src/tag/v0.1.0/docs/roadmap/releasekit.md).
[COPYRIGHT](https://gitea.maximumdirect.net/eric/ReleaseKit/src/tag/v0.1.0/COPYRIGHT) |
[LICENSE](https://gitea.maximumdirect.net/eric/ReleaseKit/src/tag/v0.1.0/LICENSE) |
[ATTRIBUTION](https://gitea.maximumdirect.net/eric/ReleaseKit/src/tag/v0.1.0/docs/oss/attribution.md)