Upgrade ReleaseKit and simplify release tooling
This commit is contained in:
@@ -2,8 +2,8 @@
|
||||
|
||||
The [release policy](policy/release.md) owns release requirements. This runbook
|
||||
uses the native commands in [scripts/release.sh](../scripts/release.sh), which
|
||||
builds and invokes ReleaseKit. A confirmed source tag completes the release;
|
||||
Woodpecker reports binary delivery separately.
|
||||
invokes the module-selected ReleaseKit tool. A confirmed source tag completes
|
||||
the release; Woodpecker reports binary delivery separately.
|
||||
|
||||
## Prerequisites
|
||||
|
||||
@@ -12,16 +12,16 @@ which must point to `https://gitea.maximumdirect.net/eric/audita.git`; the
|
||||
primary branch is `main`. Source publication needs no delivery credential.
|
||||
Woodpecker uses the existing `GITEA_RELEASE_TOKEN` secret for delivery.
|
||||
|
||||
The source-build minimum is Go 1.25.5, declared in [go.mod](../go.mod).
|
||||
This patch minimum is required by the selected PromptKit dependency.
|
||||
The source-build minimum is Go 1.26.0, declared in [go.mod](../go.mod).
|
||||
This minimum is required by the selected ReleaseKit dependency.
|
||||
Distributed executables do not require a Go installation. The selected release
|
||||
toolchain is Go 1.25.5, matching the current Woodpecker image and distributed
|
||||
toolchain is Go 1.26.8, matching the current Woodpecker image and distributed
|
||||
runtime notices. Use that local installation for tool bootstrap, candidate
|
||||
validation, and release builds. Replace the installation path below with its
|
||||
actual directory:
|
||||
|
||||
```sh
|
||||
export PATH="/path/to/go1.25.5/bin:$PATH"
|
||||
export PATH="/path/to/go1.26.8/bin:$PATH"
|
||||
export GOTOOLCHAIN=local
|
||||
go version
|
||||
```
|
||||
@@ -40,10 +40,12 @@ GOWORK=off GOTOOLCHAIN=local go mod download
|
||||
```
|
||||
|
||||
If dependency preparation changes `go.mod` or `go.sum`, include those changes in
|
||||
the committed candidate. The release wrapper separately builds the ReleaseKit
|
||||
version selected by `go.mod` into ignored `bin/releasekit`. It uses temporary
|
||||
copies of `go.mod` and `go.sum` for tool dependency preparation; that build is
|
||||
tool preparation, not candidate validation.
|
||||
the committed candidate. ReleaseKit's CLI is registered as a Go tool dependency;
|
||||
`go mod tidy` retains its dependencies and checksums. The release wrapper changes
|
||||
to the repository root and invokes `go tool releasekit` with workspace discovery
|
||||
and automatic toolchain downloads disabled. Go builds or reuses the selected
|
||||
tool from its normal build cache. Tool preparation precedes offline candidate
|
||||
validation.
|
||||
|
||||
## Prepare and publish the candidate
|
||||
|
||||
@@ -106,7 +108,7 @@ out detached, and confirms the source tree is clean. It copies the tagged
|
||||
`go.mod` and `go.sum` into temporary module metadata outside the checkout. Go
|
||||
confirms that this configuration selects ReleaseKit, then builds its CLI using
|
||||
an alternate `-modfile`. The bootstrap executable and temporary files remain
|
||||
outside the tagged source. The workflow runs with the existing Go 1.25.5 image,
|
||||
outside the tagged source. The workflow runs with the selected Go 1.26.8 image,
|
||||
`GOWORK=off`, and `GOTOOLCHAIN=local`.
|
||||
|
||||
The resulting executable receives:
|
||||
@@ -125,8 +127,8 @@ after source publication; its status and logs report delivery progress or
|
||||
failure.
|
||||
|
||||
ReleaseKit handles content-aware retries and retained-artifact recovery. See
|
||||
the pinned [publication recovery guide](https://gitea.maximumdirect.net/eric/ReleaseKit/src/tag/v0.1.0/docs/consumers/publish.md)
|
||||
and [delivery guide](https://gitea.maximumdirect.net/eric/ReleaseKit/src/tag/v0.1.0/docs/consumers/delivery.md)
|
||||
the pinned [publication recovery guide](https://gitea.maximumdirect.net/eric/ReleaseKit/src/tag/v0.3.0/docs/consumers/publish.md)
|
||||
and [delivery guide](https://gitea.maximumdirect.net/eric/ReleaseKit/src/tag/v0.3.0/docs/consumers/delivery.md)
|
||||
for those mechanics. A delivery failure does not undo a confirmed source
|
||||
release. Retry the same immutable tag after resolving the reported state; do not
|
||||
replace published files or a checksum manifest.
|
||||
@@ -139,11 +141,11 @@ captured authoritative endpoint and publication state. Resolve the result
|
||||
against that endpoint before retrying. An exact remote tag-object match, with
|
||||
its source available on remote `main`, can confirm publication. If the remote
|
||||
state cannot be read, the result remains unknown; do not remove or replace the
|
||||
tag while uncertain. Follow the pinned [publication recovery guide](https://gitea.maximumdirect.net/eric/ReleaseKit/src/tag/v0.1.0/docs/consumers/publish.md)
|
||||
tag while uncertain. Follow the pinned [publication recovery guide](https://gitea.maximumdirect.net/eric/ReleaseKit/src/tag/v0.3.0/docs/consumers/publish.md)
|
||||
for object-level recovery details.
|
||||
|
||||
A source-release success and artifact-delivery status are separate. For a
|
||||
partial or uncertain delivery, inspect the job output and follow the pinned
|
||||
[delivery recovery guidance](https://gitea.maximumdirect.net/eric/ReleaseKit/src/tag/v0.1.0/docs/consumers/delivery.md).
|
||||
[delivery recovery guidance](https://gitea.maximumdirect.net/eric/ReleaseKit/src/tag/v0.3.0/docs/consumers/delivery.md).
|
||||
A source or published-content correction requires a new appropriate version;
|
||||
leave the original tag and its contents intact.
|
||||
|
||||
Reference in New Issue
Block a user