From cf80d010bf50a068b01999add332b19373be38ba Mon Sep 17 00:00:00 2001 From: mintaka Date: Sun, 18 Oct 2026 17:00:20 -0400 Subject: [PATCH] fix(renovate): give the Renovate self-pin its own PR (RIG-5809) The self-pin bump moved only the workflow pin inside the TypeScript rollup, so the Reviewable cut test red every unrelated TS bump until a hand cut-over landed (#2397, #2407, #2435). Un-group it so the bump opens its own PR, where the REVIEWABLE_CUT_VERIFIED_AT edit goes. Co-authored-by: Matt Wilkinson --- tools/renovate/config.json5 | 7 +++++++ tools/renovate/config.test.ts | 11 +++++++++++ 2 files changed, 18 insertions(+) diff --git a/tools/renovate/config.json5 b/tools/renovate/config.json5 index 5dcf49998..f11b0a1d6 100644 --- a/tools/renovate/config.json5 +++ b/tools/renovate/config.json5 @@ -488,6 +488,13 @@ matchFileNames: ["tools/toolchain/versions/*.nix"], groupName: null, }, + { + // Renovate self-pin: a bump also needs a hand-verified + // REVIEWABLE_CUT_VERIFIED_AT edit, so keep it out of the TS rollup. + matchManagers: ["custom.regex"], + matchDepNames: ["renovate"], + groupName: null, + }, { // ── First-party toolchain age-gate exemption ── // The repo-wide `minimumReleaseAge: "5 days"` + `internalChecksFilter: diff --git a/tools/renovate/config.test.ts b/tools/renovate/config.test.ts index ba629eeab..6a8fd8c2f 100644 --- a/tools/renovate/config.test.ts +++ b/tools/renovate/config.test.ts @@ -1673,6 +1673,17 @@ describe("tools/renovate self-pin workflow (exact Renovate version)", () => { const match = /bunx renovate@(?\S+)/.exec(runLines); expect(match?.groups?.version).toBe(REVIEWABLE_CUT_VERIFIED_AT); }); + // A self-pin bump needs a matching REVIEWABLE_CUT_VERIFIED_AT edit, so it must + // not ride the TS rollup, where it would red every unrelated bump. + test("a self-pin patch bump un-groups (null), not the TS rollup", () => { + const group = resolveGroupName({ + manager: "custom.regex", + fileName: ".github/workflows/renovate.yml", + depName: "renovate", + updateType: "patch", + }); + expect(group).toBeNull(); + }); // The preflight uses GH_TOKEN to probe the repo and RENOVATE_TOKEN for its // token-presence guard. Both env vars must be set or the workflow fails before