Skip to content

Commit acb5919

Browse files
committed
fix(release): the next cut annotates what the last one shipped unlisted, instead of refusing the queue
Withdraws the merge-queue refusal. main takes a changeset-bearing landing about every twenty minutes (77 of 111 landings in a day), so a Version Packages PR almost never reaches the queue current, and refusing it would block nearly every release to protect a CHANGELOG line. `release-pending-publish.mjs annotate-shipped` runs first in the root `version` script (joined with `;`, so it cannot stop the pass). It finds the last version commit, takes the changesets that sat unconsumed in its tree, and gives each one still pending the lead line `**Shipped in VERSION**, whose CHANGELOG missed this entry; listed here one prerelease late.` -- frontmatter byte-unchanged, idempotent (a body already led by `**Shipped in` is left as it is), and only when VERSION is on npm. A shallow clone is deepened in bounded rounds; anything it cannot decide is a ::warning:: with nothing written, and it exits 0 on every path. The queue-guard mode, its batteries and the lint.yml step are removed; lint.yml is back to its merge-base bytes. Self-test: 112 cases across 28 batteries. Claude-Session: https://claude.ai/code/session_016PVjjuVPte5XEJvaQx1E4t Co-authored-by: Claude <noreply@anthropic.com>
1 parent 31e38ea commit acb5919

3 files changed

Lines changed: 412 additions & 318 deletions

File tree

‎.github/workflows/lint.yml‎

Lines changed: 0 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -3328,28 +3328,6 @@ jobs:
33283328
continue-on-error: true
33293329
run: node scripts/release-pending-publish.mjs --self-test
33303330

3331-
# The merge-queue guard on the same release path (#23818). A Version
3332-
# Packages PR cut from a base that main has since passed by a changeset
3333-
# lands a version commit whose CHANGELOG leaves that changeset out, and
3334-
# the merge-queue build is the one CI run that sees the tree it lands.
3335-
# So `queue-guard` judges it here, and exits 1 when a version commit in
3336-
# the group's base..head would land a changeset it did not consume.
3337-
# On any other event it prints "not a merge-queue build" and exits 0,
3338-
# and a build that moves no version is never judged, so no ordinary PR
3339-
# depends on it. Base and head are the payload's full shas, never a ref
3340-
# guess, and they render empty on every other event. The checkout's
3341-
# `fetch-depth: 0` is what makes the base resolvable; the guard refuses a
3342-
# shallow clone outright rather than answering from a graft boundary.
3343-
# Rationale: `scripts/release-pending-publish.mjs` header, `queue-guard`.
3344-
- name: Version Packages PR lands no changeset behind main
3345-
id: version-packages-pr-lands-no-changeset-behind-main
3346-
continue-on-error: true
3347-
env:
3348-
OS_GATE_EVENT_NAME: ${{ github.event_name }}
3349-
OS_GATE_MERGE_GROUP_BASE_SHA: ${{ github.event.merge_group.base_sha }}
3350-
OS_GATE_MERGE_GROUP_HEAD_SHA: ${{ github.event.merge_group.head_sha }}
3351-
run: node scripts/release-pending-publish.mjs queue-guard --event "$OS_GATE_EVENT_NAME" --base "$OS_GATE_MERGE_GROUP_BASE_SHA" --head "$OS_GATE_MERGE_GROUP_HEAD_SHA"
3352-
33533331
# #3825 Node-version drift guard: a runtime pin is 18 separate string
33543332
# literals across .github/workflows, so a split is invisible until someone
33553333
# greps for it. One did open — every PR gate sat on Node 20 (EOL

‎package.json‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
"setup": "pnpm install && pnpm --filter @objectstack/spec build",
1818
"prepare": "node scripts/setup-git-hooks.mjs",
1919
"check:merge-driver": "node scripts/git-env.mjs --self-test && node scripts/git-merge-regen.mjs --self-test && node scripts/check-regen-pending.mjs --self-test",
20-
"version": "changeset version && node scripts/sync-protocol-version.mjs && node scripts/sync-template-versions.mjs && node scripts/sync-docs-image-tags.mjs && node scripts/sync-release-index-currency.mjs && node scripts/check-skill-compatibility-version.mjs --fix",
20+
"version": "node scripts/release-pending-publish.mjs annotate-shipped; changeset version && node scripts/sync-protocol-version.mjs && node scripts/sync-template-versions.mjs && node scripts/sync-docs-image-tags.mjs && node scripts/sync-release-index-currency.mjs && node scripts/check-skill-compatibility-version.mjs --fix",
2121
"release": "pnpm run build && bash scripts/build-console.sh && bash scripts/release-publish.sh",
2222
"docs:dev": "pnpm --filter @objectstack/docs dev",
2323
"docs:build": "pnpm --filter @objectstack/docs build",

0 commit comments

Comments
 (0)