From 21fcb1fdb171c51cfb800061a5ae2f0ecefae59c Mon Sep 17 00:00:00 2001 From: codex-bot-andresmgsl Date: Mon, 31 Aug 2026 19:29:55 +0000 Subject: [PATCH] docs: qualify every ceremony source record --- .ceremony/README.md | 5 +++-- test/governance.test.js | 15 +++++---------- 2 files changed, 8 insertions(+), 12 deletions(-) diff --git a/.ceremony/README.md b/.ceremony/README.md index 1167b1b..d8c6bf5 100644 --- a/.ceremony/README.md +++ b/.ceremony/README.md @@ -6,8 +6,9 @@ byte-identical copies of stoke does not run `docs-sync` or re-diff the mirror in CI. Change doctrine upstream through its own flow, then re-vendor it here when the pin moves. -The labels doctrine is vendored manually from heavy-duty/ceremony at 0.6.3 -because stoke keeps its own tag-driven `.forgejo/workflows/release.yml`. +The labels doctrine is vendored manually from +[heavy-duty/ceremony](https://forgejo.heavyduty.builders/heavy-duty/ceremony) at 0.6.3 because +stoke keeps its own tag-driven `.forgejo/workflows/release.yml`. `docs-sync --fix` cannot run until or unless a future issue adopts the ceremony release-workflow pin; until then, doctrine updates must re-vendor the pinned manifest manually. diff --git a/test/governance.test.js b/test/governance.test.js index 5a6e03c..28a8baa 100644 --- a/test/governance.test.js +++ b/test/governance.test.js @@ -140,17 +140,12 @@ test('repository carries the complete Forgejo 0.6.3 doctrine mirror and root rou assert.ok(fs.statSync(path.join(REPOSITORY_MIRROR, filename)).isFile(), `${filename} is missing`); } const mirrorReadme = fs.readFileSync(path.join(REPOSITORY_MIRROR, 'README.md'), 'utf8'); - assert.ok( - mirrorReadme.includes(`[heavy-duty/ceremony](${CEREMONY_REPOSITORY}) at ${CEREMONY_VERSION}`), - 'mirror README does not identify the exact Forgejo ceremony source and version', + const sourceVersionRecord = `[heavy-duty/ceremony](${CEREMONY_REPOSITORY}) at ${CEREMONY_VERSION}`; + assert.equal( + mirrorReadme.split(sourceVersionRecord).length - 1, + 2, + 'mirror README does not identify the exact Forgejo ceremony source and version in both records', ); - for (const workflow of CEREMONY_WORKFLOWS) { - const contents = fs.readFileSync(path.join(__dirname, '..', '.forgejo', 'workflows', workflow), 'utf8'); - assert.ok( - contents.includes(`uses: heavy-duty/ceremony/.github/workflows/${workflow}@${CEREMONY_VERSION}`), - `${workflow} does not pin ceremony ${CEREMONY_VERSION}`, - ); - } assert.match(mirrorReadme, /labels doctrine is vendored manually/); assert.doesNotMatch(mirrorReadme, /The pin lives in `.github\/workflows\/release\.yml`/); assert.doesNotMatch(mirrorReadme, /Machine-managed by|CI re-diffs them/);