Add hosted Gitea release delivery
This commit is contained in:
@@ -4,6 +4,8 @@ This runbook implements the [release policy](policy/release.md). Promptkit
|
||||
publishes source-only Go module tags from `main` to `origin`. A successful push
|
||||
of the selected annotated tag, after its source commit is available on `main`,
|
||||
completes the release. Do not wait for CI or Go module availability.
|
||||
After source publication, deliver the hosted Gitea release page as described
|
||||
below. Report source publication and hosted delivery separately.
|
||||
|
||||
## Prepare The Candidate
|
||||
|
||||
@@ -51,13 +53,22 @@ impact under the [versioning policy](policy/release.md#versioning-and-compatibil
|
||||
End each new note with the licensing footer below, using the selected version:
|
||||
|
||||
```markdown
|
||||
[COPYRIGHT](https://gitea.maximumdirect.net/eric/promptkit/src/tag/vX.Y.Z/COPYRIGHT) | [LICENSE](https://gitea.maximumdirect.net/eric/promptkit/src/tag/vX.Y.Z/LICENSE) | [ATTRIBUTION](https://gitea.maximumdirect.net/eric/promptkit/src/tag/vX.Y.Z/docs/oss/attribution.md)
|
||||
[COPYRIGHT](https://forge.maximumdirect.net/base-layer/promptkit/src/tag/vX.Y.Z/COPYRIGHT) | [LICENSE](https://forge.maximumdirect.net/base-layer/promptkit/src/tag/vX.Y.Z/LICENSE) | [ATTRIBUTION](https://forge.maximumdirect.net/base-layer/promptkit/src/tag/vX.Y.Z/docs/oss/attribution.md)
|
||||
```
|
||||
|
||||
Check the footer paths against the candidate; the future tag need not resolve
|
||||
remotely during preparation. Follow the [OSS policy](policy/oss.md) for these
|
||||
links. Promptkit publishes no binaries, hosted download page, or other
|
||||
asynchronous deliverables.
|
||||
links. Hosted delivery reuses this complete note without a separate summary.
|
||||
Promptkit publishes no binaries, attachments, or checksum manifests.
|
||||
|
||||
For hosted delivery, supply a Gitea API token with access to publish releases
|
||||
through `RELEASEKIT_GITEA_TOKEN` or the ignored local file
|
||||
`.releasekit/gitea-token`, with owner-only permissions for the file. A nonblank
|
||||
environment value takes precedence. ReleaseKit trims surrounding whitespace
|
||||
from file contents. Keep the token out of commits and shared logs. The profile
|
||||
rejects that exact token path if
|
||||
committed; it does not scan other files or Git history. Source publication uses
|
||||
Git authentication and neither reads nor requires the delivery token.
|
||||
|
||||
Retire completed roadmaps while preserving deferred work and repairing incoming
|
||||
links. Review the intended changes through the ordinary development workflow,
|
||||
@@ -87,7 +98,8 @@ The familiar wrapper delegates to the native ReleaseKit executable selected in
|
||||
`go.mod`. The committed [profile](../releasekit.json) selects the race-enabled
|
||||
Go suite, full vet, committed Go formatting, local Markdown links, workspace
|
||||
and filesystem replacement inspection, and semantic checks for the three
|
||||
maintained offline consumer examples. ReleaseKit also verifies the committed
|
||||
maintained offline consumer examples. It also checks that the configured local
|
||||
token path is not committed. ReleaseKit verifies the committed
|
||||
candidate and publication state, then publishes only the selected tag. Its
|
||||
checks run once for this candidate; do not repeat them as a separate sign-off.
|
||||
|
||||
@@ -97,8 +109,53 @@ the push outcome remains unknown. Successful publication needs no remote
|
||||
read-back, CI wait, or installation check. Provider probes and inference calls
|
||||
are not part of validation.
|
||||
|
||||
## Deliver The Hosted Release
|
||||
|
||||
After source publication succeeds, keep a clean checkout at the published tag's
|
||||
commit and run:
|
||||
|
||||
```sh
|
||||
./scripts/releasekit.sh deliver vMAJOR.MINOR.PATCH
|
||||
```
|
||||
|
||||
The profile selects Gitea at `https://forge.maximumdirect.net`, owner
|
||||
`base-layer`, repository `promptkit`. With no build targets, ReleaseKit creates
|
||||
or accepts a stable, non-draft release page containing the complete committed
|
||||
note and licensing footer. There is no binary build, attachment upload, or
|
||||
candidate revalidation. Delivery does not publish another tag or wait for CI.
|
||||
|
||||
ReleaseKit performs its authenticated, read-only repository preflight during
|
||||
delivery; no separate preflight is required before source publication. Missing
|
||||
credentials or an unavailable hosted service leave the source release complete.
|
||||
|
||||
Delivery returns status 0 for completion, 1 for an operational failure,
|
||||
conflict, or partial delivery, 2 for invalid configuration or credential/access
|
||||
errors, and 3 for an unresolved hosted write. Report the hosted URL on success
|
||||
and retain the diagnostic and delivery state on failure. See the upstream
|
||||
[delivery guide](https://forge.maximumdirect.net/base-layer/releasekit/src/tag/v0.7.0/docs/consumers/delivery.md)
|
||||
for the full result contract.
|
||||
|
||||
For a later retry, use a clean checkout of the original tag with its recorded
|
||||
module files and make the token available locally. For example, in a separate
|
||||
checkout with the tag available:
|
||||
|
||||
```sh
|
||||
git switch --detach vMAJOR.MINOR.PATCH
|
||||
./scripts/releasekit.sh deliver vMAJOR.MINOR.PATCH
|
||||
```
|
||||
|
||||
The launcher builds the tool selected by that checkout. Matching hosted content
|
||||
is accepted; conflicting content is not overwritten. Resolve an unknown hosted
|
||||
write before retrying. Retry delivery with the same immutable version rather
|
||||
than rerunning `publish` or moving a tag. Corrections to published source or
|
||||
content require a new appropriate version. These steps apply to tags containing
|
||||
this delivery configuration; older releases retain their original workflows.
|
||||
|
||||
## Failure Recovery
|
||||
|
||||
This section covers source publication. Hosted-delivery recovery is described
|
||||
[above](#deliver-the-hosted-release); its failure does not undo source publication.
|
||||
|
||||
For status 1, use the diagnostic to distinguish a validation failure from a
|
||||
known publication conflict. Correct and commit candidate defects, push `main`,
|
||||
and rerun publication with an unused version when appropriate. Status 2 means
|
||||
|
||||
Reference in New Issue
Block a user