From 1277a3a9d9ffdf4b3bae1aa570e2a32e69df670f Mon Sep 17 00:00:00 2001 From: Luke Curley Date: Tue, 3 Nov 2026 21:29:11 -0800 Subject: [PATCH 1/4] chore(quest): claim quest/m0/ci/release-pr-after-release.md Quest-Claim: 139d7862a3cb2b7a From 18205b52e1b424822af875ab65fa019313b7c002 Mon Sep 17 00:00:00 2001 From: Luke Curley Date: Tue, 3 Nov 2026 21:33:20 -0800 Subject: [PATCH 2/4] fix(ci): publish Rust releases before proposing the next PR Co-Authored-By: GPT-6.1 Sol --- quest/m0/ci/release-pr-after-release.md | 54 +++++++++++++------------ rs/justfile | 4 +- 2 files changed, 30 insertions(+), 28 deletions(-) diff --git a/quest/m0/ci/release-pr-after-release.md b/quest/m0/ci/release-pr-after-release.md index 7f8a4899608..5f8724c99cd 100644 --- a/quest/m0/ci/release-pr-after-release.md +++ b/quest/m0/ci/release-pr-after-release.md @@ -9,31 +9,33 @@ merge doesn't produce a stale release PR. ## Plan -Planned 2026-11-03 (maintainer, `/quest-plan`). - -[moq-dev/moq#7651](https://github.com/moq-dev/moq/pull/7651) merged at -19:33Z, and release-plz opened -[moq-dev/moq#7750](https://github.com/moq-dev/moq/pull/7750) at 19:57Z, -before 0.19.33 was published. The only change in #7750 was a second `## [0.19.33]` heading in -`rs/moq-tokio/CHANGELOG.md`, so it was closed. Release PRs routinely open -within half an hour of the previous merge -([moq-dev/moq#7009](https://github.com/moq-dev/moq/pull/7009), opened after -[moq-dev/moq#6508](https://github.com/moq-dev/moq/pull/6508) merged, was -also closed unmerged). - -The likely cause: `release-rs.yml` runs `just rs release` on every push to -`release`, and that recipe (`rs/justfile`, `release:`) runs -`release-plz release-pr` before `release-plz release`. The PR step then sees -the merged versions as unpublished and untagged, and re-proposes them. - -- Confirm the cause from the workflow run that #7651's merge started, or - from a dry run (`release-plz release-pr --dry-run` or similar) against the - merged state. -- If confirmed, run `release-plz release` first, then `release-pr`, in the - same recipe. Check how release-plz's own action orders the two commands, and - copy that order. -- Keep the change compatible with - [Rust releases publish through OIDC](/quest/m1/release-rs-oidc.md), which - edits the same workflow. +Planned 2026-11-03 (maintainer, `/quest-plan`). The ordering cause is +confirmed by the [release run](https://github.com/moq-dev/moq/actions/runs/41704418718/job/126155827712) +from [moq-dev/moq#7651](https://github.com/moq-dev/moq/pull/7651): + +- 19:56:23Z: `release-plz release-pr` starts. +- 19:56:50Z: moq-tokio's local 0.19.33 exceeds registry 0.19.32, so only its + changelog will be updated. +- 19:57:17Z: it opens [moq-dev/moq#7750](https://github.com/moq-dev/moq/pull/7750), + after warning about duplicate 0.19.33 release notes. +- 19:57:18Z: `release-plz release` starts; 0.19.33 publishes at 20:01:14Z. + +[moq-dev/moq#7818](https://github.com/moq-dev/moq/pull/7818) reverses the +recipe's order, preserving failure propagation. It changes neither credentials +nor the workflow, so [Rust releases publish through OIDC](/quest/m1/release-rs-oidc.md) +can keep using the recipe. + +The [upstream action source](https://github.com/release-plz/action/blob/c19c3f863fe52ef2b1bfa99904581992314021bf/action.yml#L157) +also runs `release-pr` first; the original plan's assumption that its order +would solve this was wrong. The dev shell's release-plz 0.3.172 has no +`release-pr --dry-run`. Recorded events and a command stub verified the cause, +new order, and failure propagation without publishing packages or tags. + +## Waiting + +- moq-dev/moq: land the ordering fix on `main`, then backport only the release + recipe to `release` in a separate PR. Verify the next approved release merge's + Release RS log publishes before proposing and opens no stale PR, then delete + this quest. No post-fix release has run; local checks do not prove deployment. Public API: none. Wire: none. diff --git a/rs/justfile b/rs/justfile index a91f3240ca1..7fe4d6de42f 100644 --- a/rs/justfile +++ b/rs/justfile @@ -463,10 +463,10 @@ bench-echo *args: bench-session *args: bash sh/local.sh cargo bench -p moq-uring --bench session_lite -- "$@" -# Create release PRs and publish crates via release-plz. +# Publish crates before proposing the next release, so merged versions aren't proposed again. release: - release-plz release-pr --git-token "$GITHUB_TOKEN" release-plz release --git-token "$GITHUB_TOKEN" + release-plz release-pr --git-token "$GITHUB_TOKEN" # Build a .deb or .rpm locally: `just rs package moq-relay deb`. package crate packager: From 27ab2256d5051e12de041067eb2aeeea43d34836 Mon Sep 17 00:00:00 2001 From: Luke Curley Date: Wed, 4 Nov 2026 10:01:15 -0800 Subject: [PATCH 3/4] chore(quest): claim quest/m0/ci/release-pr-after-release.md Quest-Claim: 65799a6bd996ed52 From 9134612ea89f375285c78392deb21c83925ca0d3 Mon Sep 17 00:00:00 2001 From: Luke Curley Date: Wed, 4 Nov 2026 10:02:01 -0800 Subject: [PATCH 4/4] quest: record the deployed release ordering fix; wait on a publishing release The main fix (moq-dev/moq#7818) and its release backport (moq-dev/moq#7842) both landed, and the backport's own Release RS run published before proposing. What remains is evidence from a release merge that publishes. Co-Authored-By: Claude Opus 5.5 --- quest/m0/ci/release-pr-after-release.md | 50 ++++++++++++------------- 1 file changed, 25 insertions(+), 25 deletions(-) diff --git a/quest/m0/ci/release-pr-after-release.md b/quest/m0/ci/release-pr-after-release.md index 5f8724c99cd..9c03fece812 100644 --- a/quest/m0/ci/release-pr-after-release.md +++ b/quest/m0/ci/release-pr-after-release.md @@ -9,33 +9,33 @@ merge doesn't produce a stale release PR. ## Plan -Planned 2026-11-03 (maintainer, `/quest-plan`). The ordering cause is -confirmed by the [release run](https://github.com/moq-dev/moq/actions/runs/41704418718/job/126155827712) -from [moq-dev/moq#7651](https://github.com/moq-dev/moq/pull/7651): - -- 19:56:23Z: `release-plz release-pr` starts. -- 19:56:50Z: moq-tokio's local 0.19.33 exceeds registry 0.19.32, so only its - changelog will be updated. -- 19:57:17Z: it opens [moq-dev/moq#7750](https://github.com/moq-dev/moq/pull/7750), - after warning about duplicate 0.19.33 release notes. -- 19:57:18Z: `release-plz release` starts; 0.19.33 publishes at 20:01:14Z. - -[moq-dev/moq#7818](https://github.com/moq-dev/moq/pull/7818) reverses the -recipe's order, preserving failure propagation. It changes neither credentials -nor the workflow, so [Rust releases publish through OIDC](/quest/m1/release-rs-oidc.md) -can keep using the recipe. - -The [upstream action source](https://github.com/release-plz/action/blob/c19c3f863fe52ef2b1bfa99904581992314021bf/action.yml#L157) -also runs `release-pr` first; the original plan's assumption that its order -would solve this was wrong. The dev shell's release-plz 0.3.172 has no -`release-pr --dry-run`. Recorded events and a command stub verified the cause, -new order, and failure propagation without publishing packages or tags. +Planned 2026-11-03 (maintainer, `/quest-plan`). The +[release run](https://github.com/moq-dev/moq/actions/runs/41704418718/job/126155827712) +from [moq-dev/moq#7651](https://github.com/moq-dev/moq/pull/7651) ran +`release-plz release-pr` before `release-plz release`, so it opened +[moq-dev/moq#7750](https://github.com/moq-dev/moq/pull/7750) for moq-tokio +0.19.33 four minutes before publishing it. + +The fix is deployed: `just rs release` now publishes first, then proposes. + +- [moq-dev/moq#7818](https://github.com/moq-dev/moq/pull/7818) landed it on + `main` on 2026-11-04. +- [moq-dev/moq#7842](https://github.com/moq-dev/moq/pull/7842) backported only + the recipe to `release` the same day. +- The backport merge's own + [Release RS run](https://github.com/moq-dev/moq/actions/runs/41857741087) + ran `release` (every crate already published) before `release-pr` (every + crate up to date) and opened no PR. Its merge changed no crate, so it + exercised the order but not a publishing release. + +What remains is evidence from a release merge that publishes. ## Waiting -- moq-dev/moq: land the ordering fix on `main`, then backport only the release - recipe to `release` in a separate PR. Verify the next approved release merge's - Release RS log publishes before proposing and opens no stale PR, then delete - this quest. No post-fix release has run; local checks do not prove deployment. +- moq-dev/moq: the next approved release-plz release PR merges into `release`; + agents never merge into `release`. Check that merge's Release RS log: every + `release-plz release` publish finishes before `release-plz release-pr` starts, + and the run opens no release PR proposing the versions it just published. + If so, delete this quest; if not, rewrite its Plan around that run. Public API: none. Wire: none.