fix(release): catch the silent behind-remote release drop; re-enter mkdocs/techdocs/rust-releaser #60

Merged
ryangr0 merged 2 commits from ryangr0/fix/silent-release-drop into main 2026-07-26 07:55:45 +00:00 AGit
Owner

Run 141 validated PR #59 (npm pin 6/6 clean, both Dockerfile fixes passed their verify builds, act-runner + helm-deploy v1.2.2 released, built and signed) but exposed the second symptom of the sibling version-bump race: when a sibling's bump lands before semantic-release's up-to-date check, it exits 0 without publishing and the rc-only retry loop calls that success — mkdocs-runner and techdocs-runner 1.0.1 were silently dropped this way. This retries the behind-remote outcome like the non-fast-forward one (reset onto moved main, rerun; fail loudly if retries exhaust) and re-enters the two dropped trains plus rust-releaser (deferred from the first wave). The two re-entered images releasing together is a live test of the retry fix. Generated with Claude Code.

Run 141 validated PR #59 (npm pin 6/6 clean, both Dockerfile fixes passed their verify builds, act-runner + helm-deploy v1.2.2 released, built and signed) but exposed the second symptom of the sibling version-bump race: when a sibling's bump lands before semantic-release's up-to-date check, it exits 0 without publishing and the rc-only retry loop calls that success — mkdocs-runner and techdocs-runner 1.0.1 were silently dropped this way. This retries the behind-remote outcome like the non-fast-forward one (reset onto moved main, rerun; fail loudly if retries exhaust) and re-enters the two dropped trains plus rust-releaser (deferred from the first wave). The two re-entered images releasing together is a live test of the retry fix. Generated with Claude Code.
The sibling version-bump race has two symptoms and the retry loop only caught one. When the
push-back itself is rejected (non-fast-forward) semantic-release exits non-zero and the loop
retries. But when the sibling's bump lands BEFORE semantic-release's up-to-date check, it
logs "The local branch main is behind the remote one, therefore a new version won't be
published" and exits 0 — the rc-only check called that success and the release silently
never cut. Run 141 dropped mkdocs-runner and techdocs-runner 1.0.1 exactly this way (both
had passed their verify builds; act-runner's and helm-deploy's bumps moved main mid-run).

Treat a zero exit with that log line as the same race: reset onto the moved branch and
rerun. If retries exhaust, fail loudly instead of reporting a dropped release as success.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
ci(release): re-enter mkdocs-runner, techdocs-runner and rust-releaser
All checks were successful
[Workflow] On Source Change / Guard: per-image .releaserc.cjs present (push) Successful in 5s
[Workflow] On Source Change / Determine Changed Directories (push) Successful in 47s
[Workflow] On Source Change / Determine changed images (push) Successful in 0s
[Workflow] On Source Change / Release (rust-releaser, ops/docker/rust-releaser) (push) Has been skipped
[Workflow] On Source Change / Release (mkdocs-runner, ops/docker/mkdocs-runner) (push) Has been skipped
[Workflow] On Source Change / Release (techdocs-runner, ops/docker/techdocs-runner) (push) Has been skipped
62092486b3
mkdocs-runner and techdocs-runner had 1.0.1 due in run 141 and were dropped by the
behind-remote race fixed one commit back; rust-releaser's run-135 release was cancelled
mid-verify during the daemon overload and was deliberately left out of the first recovery
wave. The matrix is push-diff based, so touch each dir to re-enter it; ci-typed so the touch
itself forces nothing.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
webgrip/infrastructure!60
No description provided.