Adopt ReleaseKit v0.8.0 and saved-attempt recovery
This commit is contained in:
@@ -74,8 +74,8 @@ Successful publication needs no separate remote read-back or CI wait.
|
|||||||
|
|
||||||
For optional local diagnosis, use `./scripts/releasekit.sh check VERSION`.
|
For optional local diagnosis, use `./scripts/releasekit.sh check VERSION`.
|
||||||
It is not a required step before publication. The upstream
|
It is not a required step before publication. The upstream
|
||||||
[candidate-check guide](https://forge.maximumdirect.net/base-layer/releasekit/src/tag/v0.7.0/docs/consumers/check.md)
|
[candidate-check guide](https://forge.maximumdirect.net/base-layer/releasekit/src/tag/v0.8.0/docs/consumers/check.md)
|
||||||
and [CLI contract](https://forge.maximumdirect.net/base-layer/releasekit/src/tag/v0.7.0/docs/cli.md)
|
and [CLI contract](https://forge.maximumdirect.net/base-layer/releasekit/src/tag/v0.8.0/docs/cli.md)
|
||||||
own shared checks and exit-status definitions.
|
own shared checks and exit-status definitions.
|
||||||
|
|
||||||
## Deliver The Hosted Release
|
## Deliver The Hosted Release
|
||||||
@@ -104,7 +104,7 @@ git switch --detach vMAJOR.MINOR.PATCH
|
|||||||
Resolve uncertain hosted writes before retrying the same immutable version.
|
Resolve uncertain hosted writes before retrying the same immutable version.
|
||||||
Matching content is accepted; conflicts are not overwritten. Do not rerun
|
Matching content is accepted; conflicts are not overwritten. Do not rerun
|
||||||
`publish` or move tags to repair delivery. Follow the upstream
|
`publish` or move tags to repair delivery. Follow the upstream
|
||||||
[delivery guide](https://forge.maximumdirect.net/base-layer/releasekit/src/tag/v0.7.0/docs/consumers/delivery.md)
|
[delivery guide](https://forge.maximumdirect.net/base-layer/releasekit/src/tag/v0.8.0/docs/consumers/delivery.md)
|
||||||
for result interpretation and recovery. These commands apply to tags containing
|
for result interpretation and recovery. These commands apply to tags containing
|
||||||
this delivery configuration; older releases retain their original workflows.
|
this delivery configuration; older releases retain their original workflows.
|
||||||
|
|
||||||
@@ -115,21 +115,33 @@ distinguish a candidate defect from a publication conflict. Correct and commit
|
|||||||
candidate defects, push `main`, and rerun publication as appropriate. A failure
|
candidate defects, push `main`, and rerun publication as appropriate. A failure
|
||||||
after local tag creation may leave a ref even when its object ID is unavailable.
|
after local tag creation may leave a ref even when its object ID is unavailable.
|
||||||
|
|
||||||
Status 3 means the push outcome remains unknown. Preserve the captured endpoint,
|
Status 3 means the push outcome remains unknown. Do not retry or remove the local
|
||||||
version, and tag object from that attempt; do not retry or remove the local tag
|
tag until the authoritative outcome is resolved. ReleaseKit attempts to save
|
||||||
until the authoritative outcome is resolved. Diagnostics mask HTTP(S) credentials,
|
private publication evidence and reports a record path or a separate recording
|
||||||
so use the actual captured endpoint rather than a redacted display. Follow the
|
warning. A recording failure does not change the publication outcome.
|
||||||
upstream [failure-recovery procedure](https://forge.maximumdirect.net/base-layer/releasekit/src/tag/v0.7.0/docs/release.md#resolve-failures):
|
|
||||||
|
Use the recovery command reported for that attempt, or discover local records
|
||||||
|
and explicitly select the matching attempt:
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
releasekit_endpoint='COPY_CAPTURED_ENDPOINT'
|
./scripts/releasekit.sh publication-attempts
|
||||||
releasekit_version='vX.Y.Z'
|
./scripts/releasekit.sh reconcile --record /absolute/path/to/selected-record.json
|
||||||
test "$(git ls-remote --get-url -- "$releasekit_endpoint")" = "$releasekit_endpoint" &&
|
|
||||||
git ls-remote --refs -- "$releasekit_endpoint" "refs/tags/$releasekit_version"
|
|
||||||
```
|
```
|
||||||
|
|
||||||
An exact tag-object match confirms publication. Absence is established only if
|
Discovery is local; reconciliation observes the original destination without
|
||||||
both checks succeed and the tag is missing; a failed check leaves the outcome
|
rerunning validation, changing tags, or delivering hosted content. Neither is
|
||||||
unknown. Remove an unpublished local tag only after confirming authoritative
|
a routine gate after successful publication. Follow the upstream
|
||||||
absence. Never move or replace a published tag or hosted page. Corrections to
|
[recovery procedure](https://forge.maximumdirect.net/base-layer/releasekit/src/tag/v0.8.0/docs/release.md#resolve-publication-failures)
|
||||||
published source or content require a new appropriate version.
|
for outcomes, incomplete evidence, and older attempts without records.
|
||||||
|
|
||||||
|
Records are stored under Git's common directory by default and can contain
|
||||||
|
credential-bearing endpoints. Keep them private, out of source control and
|
||||||
|
shared logs; retain them while needed for recovery and remove them when that
|
||||||
|
value expires. See the [evidence guide](https://forge.maximumdirect.net/base-layer/releasekit/src/tag/v0.8.0/docs/consumers/publish.md#retain-and-reconcile-publication-evidence)
|
||||||
|
for storage and retention details.
|
||||||
|
|
||||||
|
Current absence does not prove a version was never published. Remove a retained
|
||||||
|
local tag only after establishing absence and confirming it was not already
|
||||||
|
published or used by another release channel. Never reuse a known published
|
||||||
|
version or replace a published tag or hosted page. Corrections require a new
|
||||||
|
appropriate version.
|
||||||
|
|||||||
2
go.mod
2
go.mod
@@ -9,7 +9,7 @@ require (
|
|||||||
|
|
||||||
require (
|
require (
|
||||||
github.com/yuin/goldmark/v2 v2.1.6 // indirect
|
github.com/yuin/goldmark/v2 v2.1.6 // indirect
|
||||||
go.maximumdirect.net/releasekit v0.7.0 // indirect
|
go.maximumdirect.net/releasekit v0.8.0 // indirect
|
||||||
go.yaml.in/yaml/v4 v4.0.0-rc.6 // indirect
|
go.yaml.in/yaml/v4 v4.0.0-rc.6 // indirect
|
||||||
golang.org/x/mod v0.40.0 // indirect
|
golang.org/x/mod v0.40.0 // indirect
|
||||||
golang.org/x/text v0.14.0 // indirect
|
golang.org/x/text v0.14.0 // indirect
|
||||||
|
|||||||
4
go.sum
4
go.sum
@@ -6,8 +6,8 @@ github.com/yuin/goldmark/v2 v2.1.6 h1:igy0q9JcqovoFXFx/XjtU8sHVhcUHavPj2sA3EoKJU
|
|||||||
github.com/yuin/goldmark/v2 v2.1.6/go.mod h1:G6M4/qOFtfn01/o14BU1UR2Lo5N3S9Qo7xCuz/sHjGQ=
|
github.com/yuin/goldmark/v2 v2.1.6/go.mod h1:G6M4/qOFtfn01/o14BU1UR2Lo5N3S9Qo7xCuz/sHjGQ=
|
||||||
go.maximumdirect.net/configkit v1.0.0 h1:cguQnxkaRk3ClQOZNzzhTdc4bfzbraGKv8CkoCp+HLc=
|
go.maximumdirect.net/configkit v1.0.0 h1:cguQnxkaRk3ClQOZNzzhTdc4bfzbraGKv8CkoCp+HLc=
|
||||||
go.maximumdirect.net/configkit v1.0.0/go.mod h1:B6fJ5xBLBF1nuywqfLeEI4sLm29UkIcDLu8i6I6gGXE=
|
go.maximumdirect.net/configkit v1.0.0/go.mod h1:B6fJ5xBLBF1nuywqfLeEI4sLm29UkIcDLu8i6I6gGXE=
|
||||||
go.maximumdirect.net/releasekit v0.7.0 h1:iQED4D/nfNbO8fO7ItQtIqQp1xZ5EUHKRIUmP+trix0=
|
go.maximumdirect.net/releasekit v0.8.0 h1:hSaHPbUI7tAhnolfbu7UMj2fvmm9FGBY+jhkygdbxR0=
|
||||||
go.maximumdirect.net/releasekit v0.7.0/go.mod h1:QE4BLrAhVJTzi+/YTcVl21K/qZp9ojRLg5kuoy3Zb44=
|
go.maximumdirect.net/releasekit v0.8.0/go.mod h1:QE4BLrAhVJTzi+/YTcVl21K/qZp9ojRLg5kuoy3Zb44=
|
||||||
go.yaml.in/yaml/v4 v4.0.0-rc.6 h1:1h7H1ohdUh93/FyE4YaDa1Zh64K6VVbjF4K6WUxMtH4=
|
go.yaml.in/yaml/v4 v4.0.0-rc.6 h1:1h7H1ohdUh93/FyE4YaDa1Zh64K6VVbjF4K6WUxMtH4=
|
||||||
go.yaml.in/yaml/v4 v4.0.0-rc.6/go.mod h1:aZqd9kCMsGL7AuUv/m/PvWLdg5sjJsZ4oHDEnfPPfY0=
|
go.yaml.in/yaml/v4 v4.0.0-rc.6/go.mod h1:aZqd9kCMsGL7AuUv/m/PvWLdg5sjJsZ4oHDEnfPPfY0=
|
||||||
golang.org/x/mod v0.40.0 h1:hUv+3cXcdRHz08UmSiOob7sadHig73uo5bkXxQ/tvUs=
|
golang.org/x/mod v0.40.0 h1:hUv+3cXcdRHz08UmSiOob7sadHig73uo5bkXxQ/tvUs=
|
||||||
|
|||||||
Reference in New Issue
Block a user