You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
SHA, tag, version, URL, repository, workflow path, run ID, and attempt to agree
274
+
before accepting the
275
+
matching version tag and immutable GitHub Release. A successful manual
270
276
preparation run is release-inert and cannot enter publication; a successful
271
277
`push` run without the exact release result fails before live or publication
272
278
work. The release path then packs and tests one exact, attempt-qualified
@@ -470,24 +476,46 @@ The release workflow must never change either setting, and any later drift is a
470
476
stop condition.
471
477
472
478
After enabling `RELEASE_PLEASE_ENABLED`, start a new manual dispatch on `main`;
473
-
do not rerun the skipped workflow from the repair merge. Only attempt 1 may call
474
-
Release Please. The workflow rejects any dispatch whose triggering ref is not
475
-
`refs/heads/main`, and all preparation and release runs share one main-scoped
476
-
concurrency group. The manually dispatched preparation run cannot trigger npm
477
-
publication or create a Release: the action receives explicit
479
+
do not rerun the skipped workflow from the repair merge. Only attempt 1 of a
480
+
manual dispatch may call Release Please; an unchanged PR is restarted with a
481
+
new dispatch, not a rerun. The workflow rejects any dispatch whose triggering
482
+
ref is not `refs/heads/main`, and all preparation and release runs share one
483
+
main-scoped concurrency group. The manually dispatched preparation run cannot
484
+
trigger npm publication or create a Release: the action receives explicit
478
485
`skip-github-release=true`, it is accepted only when no merged
479
486
`autorelease: pending` PR exists, and `publish.yml` accepts only an upstream
480
-
`push` event. It must succeed after validating the one action-created 0.1.1 PR.
481
-
Before mutation, the workflow also rejects any open PR whose head name could be
482
-
mistaken for the canonical release branch, including a same-named fork branch.
487
+
`push` event. It must succeed after independently validating the one canonical
488
+
action-created 0.1.1 PR, including the unchanged-PR case where the action emits
489
+
no `prs` output. Before mutation, the workflow also rejects any open PR whose
490
+
head name could be mistaken for the canonical release branch, including a
491
+
same-named fork branch.
492
+
The `GITHUB_TOKEN`-created PR's `pull_request` CI starts in GitHub's
493
+
approval-required state. A human with write access must explicitly authorize
494
+
those workflow runs before their results can satisfy required checks; this is
495
+
separate from the final-head administrator review.
483
496
Remove the one-cycle `last-release-sha` from that branch, complete the
484
497
release-ready documentation, run the full matrix on its final head, and obtain
485
498
approval from a different human repository administrator. The release-PR merge
486
-
creates the new first-attempt `push` run that may tag and publish. A later push
487
-
cannot tag an older outstanding release PR; its merge SHA must equal the
488
-
triggering SHA before Release Please runs. Immediately before the irreversible
489
-
Release Please call, the push run also requires final release metadata and
490
-
public documentation, including removal of the one-cycle `last-release-sha`.
499
+
creates the `push` run that may tag and publish. A later push cannot tag an older
500
+
outstanding release PR; its merge SHA must equal the triggering SHA before
501
+
Release Please runs. A rerun may retry that same candidate while no tag or
502
+
Release exists. If Release Please created the immutable Release but failed
503
+
before producing outputs, only the same run may recover it, and only after
504
+
proving its exact SHA, tag, bot author, immutable state, target, URL, notes, and
505
+
publication inside exactly one earlier Release Please step time window. Recovery
506
+
then idempotently removes `autorelease: pending`,
507
+
adds `autorelease: tagged`, and writes a schema-v2 artifact for that attempt.
508
+
Immediately before the irreversible Release Please call, every attempt also
509
+
reconfirms `main`, the release-branch snapshot, all PR collisions, the candidate
510
+
and final-head review, final release metadata and public documentation, and the
511
+
exact tag/Release state, including removal of the one-cycle `last-release-sha`.
512
+
Because workflow concurrency does not lock `main` or PR metadata against other
513
+
actors, the maintainer must hold a short mutation freeze from the release-PR
514
+
merge until the Release Please run reaches its post-action validation. Do not
515
+
merge another `main` PR, edit the release PR, change its labels or review, or
516
+
mutate the release branch during that window. The workflow repeats those checks
517
+
after the action and stops publication on any drift, but it cannot delete or
518
+
replace an immutable Release created during an external race.
491
519
492
520
The stale branch
493
521
`release-please--branches--main--components--cometapi` at
@@ -546,6 +574,17 @@ PRs, and normal Release Please tag and GitHub Release creation. Repository
546
574
Actions pull-request authorization is now enabled for that scoped job; the
547
575
workflow still uses only its default token and job-local permissions.
548
576
577
+
The recovery rules follow the pinned implementation rather than assuming the
578
+
action is atomic. Release Please 17.6.0
579
+
[creates the Release before PR comments and label changes](https://github.com/googleapis/release-please/blob/712fcf01effd08d7b0e7b1fd3861f2cb388bc8d1/src/manifest.ts#L1258-L1319),
580
+
while the pinned action emits release outputs only after that call returns. An
Finally, commit-level `Release-As:` is rejected before the action because the
584
+
[base strategy applies it before configured versioning](https://github.com/googleapis/release-please/blob/712fcf01effd08d7b0e7b1fd3861f2cb388bc8d1/src/strategies/base.ts#L543-L570).
585
+
GitHub documents that a `GITHUB_TOKEN`-created PR's opened or synchronize event
586
+
[creates an approval-required workflow run](https://github.com/github/docs/blob/e1e4aa937308f21c411c248b4966873536bb0cba/data/reusables/actions/actions-do-not-trigger-workflows.md#L1-L6).
587
+
549
588
## Stable 0.1.0 release evidence
550
589
551
590
Stable `0.1.0` completed on 2026-07-28 with these independently auditable
0 commit comments