diff --git a/.github/actions/README.md b/.github/actions/README.md index 2fc045e..dc68b66 100644 --- a/.github/actions/README.md +++ b/.github/actions/README.md @@ -366,7 +366,7 @@ by the GitHub Release that `release-publish` creates. | `release-candidate` `stage: propose` | `workflow_dispatch` on the default branch | bumps `version_file`, runs `bump_command` (lockfile, path-dep versions), drafts this release's changelog entry under `## vX.Y.Z` (dated at settle), syncs the previous release's entry from its tag, opens `chore/release-candidate-vX.Y.Z` PR | | `release-candidate` `stage: cut` | that PR merging | creates `release-vX.Y.Z` at the merge commit | | `release-settle` | `workflow_dispatch` with version + tip SHA | guards, warns if the tip lacks a workflow the default branch has, regenerates the entry up to the tip and stamps the date, opens `chore/release-settle-vX.Y.Z` PR onto the release branch (a re-run on a new tip closes the previous settle PR and opens a fresh one; nothing is ever force-pushed) — or, with `settle_mode: direct` and an authorised actor (`settlers`), commits it straight to the branch and publishes at once | -| `release-publish` | the settle PR merging | annotated tag at the merge commit (refuses if it exists or the branch drifted), GitHub Release with the entry as notes | +| `release-publish` | the settle PR merging (PR mode only; in direct mode `release-settle` runs it in the same job) | annotated tag at the merge commit (refuses if it exists or the branch drifted), GitHub Release with the entry as notes | The changelog has one owner per phase and is never back-merged: the candidate PR drafts the entry on the default branch and syncs the *previous* release's @@ -422,7 +422,8 @@ Requirements in the consumer repo: PR's merge into the release branch, and `on-release.yml` from the tag's tree (that is how `release` events resolve a workflow). A release branch cut before such a file landed needs it cherry-picked through its own PR - before the settle PR merges; `release-settle` warns when the settled + before settlement is dispatched (or, in PR mode, before the settle PR + merges); `release-settle` warns when the settled commit lacks a workflow the default branch has, because the alternative is a Release with nothing attached and no failed run. diff --git a/workflow-templates/on-release.yml b/workflow-templates/on-release.yml index be30046..ea72198 100644 --- a/workflow-templates/on-release.yml +++ b/workflow-templates/on-release.yml @@ -3,7 +3,8 @@ name: On Release # Publish targets for a release. Runs when the release pipeline publishes the # GitHub Release (release-publish creates it after the tag), and on demand # for a rehearsal on a tag ref, which runs every job with nothing uploaded, -# published or attached: +# published or attached (release-settle creates the Release right after the +# tag; release-publish does the same for repos that settle by PR): # gh workflow run on-release.yml --ref vX.Y.Z -f dry_run=true # The tag being released is always the run's own ref; there is no tag input. # The `publish` environment authorises that ref, so it must also be what @@ -13,10 +14,10 @@ name: On Release # workflow from the tag's tree, not from the default branch. A release branch # cut from a default branch that has it carries it; a branch cut before it # landed needs it cherry-picked (through its own PR — the `release-*` ruleset -# requires one) before the settle PR merges, or the Release publishes with -# nothing attached and no failed run. release-settle warns when the settled -# commit lacks a workflow the default branch has. A rehearsal likewise needs -# a tag whose tree has this file. +# requires one) before settlement is dispatched, or the Release publishes +# with nothing attached and no failed run. release-settle warns when the +# settled commit lacks a workflow the default branch has. A rehearsal +# likewise needs a tag whose tree has this file. # # Credentials live in the `publish` environment: create it with a deployment # policy of "selected tags: v*" and put CARGO_REGISTRY_TOKEN / GCP_AUTH_KEY diff --git a/workflow-templates/release-publish.properties.json b/workflow-templates/release-publish.properties.json index be33a62..97b82fd 100644 --- a/workflow-templates/release-publish.properties.json +++ b/workflow-templates/release-publish.properties.json @@ -1,6 +1,6 @@ { "name": "Release Publish", - "description": "Tag and publish a settled release when its settle PR merges.", + "description": "Tag and publish a settled release when its settle PR merges (PR-mode settlement only).", "iconName": "octicon tag", "categories": [ "Automation" diff --git a/workflow-templates/release-settle.properties.json b/workflow-templates/release-settle.properties.json index cd7b940..7376bbd 100644 --- a/workflow-templates/release-settle.properties.json +++ b/workflow-templates/release-settle.properties.json @@ -1,6 +1,6 @@ { "name": "Release Settle", - "description": "Propose settling a release candidate: generate notes, update the changelog, open the settle PR.", + "description": "Settle a release candidate: the dispatch is the approval (release environment + admin check); notes, changelog commit, tag and GitHub Release follow.", "iconName": "octicon tag", "categories": [ "Automation"