3.2 KiB
ReleaseKit v0.8.0
Summary
ReleaseKit adds read-only recovery for source-publication attempts. It attempts to retain evidence before a tag push, lets operators discover and explicitly select a saved attempt, and observes the original destination without repeating candidate validation or changing tags. Source publication and hosted delivery continue to have separate outcomes.
Publication recovery
Publishreturns reusablePublicationEvidenceand attempts to save a private record. The result reports the saved path or a recording error separately from the publication outcome. Go callers can load or list records and reconcile retained evidence through the root facade.- The CLI adds
publication-attemptsfor local discovery andreconcilefor an explicitly selected record. Both support human-readable and structured output.publish --record-dirselects an alternate record directory, and failed publication can print a recovery command for the saved attempt. - Recovery uses the captured endpoint and full tag with current supported Git transport settings. It reports publication, current absence, conflict, or an unresolved observation. Current absence does not prove that a version was never published; published versions and their contents remain immutable.
- Records preserve exact endpoint and path bytes. Ordinary UTF-8 evidence uses record format 1; format 2 preserves other bytes. Recovery diagnostics redact HTTP(S) URL userinfo, while private records and typed evidence can contain sensitive endpoints. Operators control record retention and removal.
Consumer tools and compatibility
The module path remains go.maximumdirect.net/releasekit, and the Go consumer
minimum remains 1.26.0. Existing publication calls and release profiles remain
supported. Publication now attempts to write a private record by default; a
storage failure is reported separately and does not change the publication
result. Applications handling results should inspect RecordError when a saved
recovery handoff matters.
Consumers with the CLI registered as a Go tool in their module can run it with
go tool releasekit.
The maintained multi-module launcher and Woodpecker examples use the selected
module's tool version. Register the CLI before generating a vendor tree when
using a vendored tool. Older recovery CLIs that only support record format 1
cannot load format 2 records; use a CLI that supports format 2.
See the publication guide, CLI reference, publication record formats, and consumer adoption guide for usage and recovery details.