Skip to content

chore: prune consumed alpha changesets to unblock the release workflow#2403

Merged
felixweinberger merged 1 commit into
mainfrom
fweinberger/prune-consumed-changesets
Jun 30, 2026
Merged

chore: prune consumed alpha changesets to unblock the release workflow#2403
felixweinberger merged 1 commit into
mainfrom
fweinberger/prune-consumed-changesets

Conversation

@felixweinberger

Copy link
Copy Markdown
Contributor

The release workflow's Version job has failed on every run since the alpha.4 release: in prerelease mode, changeset version includes all consumed changesets in its release plan, so the changelog generator issues one batched GraphQL lookup covering 142 changesets and the response stream dies (ERR_STREAM_PREMATURE_CLOSE). This reproduces with a single new changeset, so every future prerelease would hit it.

This deletes the 141 already-consumed alpha changesets and clears them from pre.json's consumed list, leaving only the pending beta changeset. After this merges, the Version job's plan contains one changeset, the lookup is trivial, and the workflow generates the Version Packages PR on its own again.

Nothing is lost: every consumed changeset's content is already transcribed into the package CHANGELOG.mds (under their 2.0.0-alpha.N sections) and the per-release GitHub Releases; the files remain recoverable from git history. The only behavioral change is that the eventual stable 2.0.0 changelog section will aggregate from the beta-era changesets onward rather than re-listing the alpha entries.

How Has This Been Tested?

changeset version run locally on the pruned tree: completes in seconds, produces a uniform 2.0.0-beta.1 across the published packages with the expected single changelog entry. (The same command on the unpruned tree reproduces the workflow failure class.)

Breaking Changes

None.

Types of changes

  • Bug fix (non-breaking change which fixes an issue)

Checklist

  • I have read the MCP Documentation
  • My code follows the repository's style guidelines
  • New and existing tests pass locally
  • I have added appropriate error handling
  • I have added or updated documentation as needed

@felixweinberger felixweinberger requested a review from a team as a code owner June 30, 2026 22:16
@changeset-bot

changeset-bot Bot commented Jun 30, 2026

Copy link
Copy Markdown

⚠️ No Changeset found

Latest commit: fde3d16

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@pkg-pr-new

pkg-pr-new Bot commented Jun 30, 2026

Copy link
Copy Markdown

Open in StackBlitz

@modelcontextprotocol/client

npm i https://pkg.pr.new/@modelcontextprotocol/client@2403

@modelcontextprotocol/codemod

npm i https://pkg.pr.new/@modelcontextprotocol/codemod@2403

@modelcontextprotocol/core

npm i https://pkg.pr.new/@modelcontextprotocol/core@2403

@modelcontextprotocol/server

npm i https://pkg.pr.new/@modelcontextprotocol/server@2403

@modelcontextprotocol/server-legacy

npm i https://pkg.pr.new/@modelcontextprotocol/server-legacy@2403

@modelcontextprotocol/express

npm i https://pkg.pr.new/@modelcontextprotocol/express@2403

@modelcontextprotocol/fastify

npm i https://pkg.pr.new/@modelcontextprotocol/fastify@2403

@modelcontextprotocol/hono

npm i https://pkg.pr.new/@modelcontextprotocol/hono@2403

@modelcontextprotocol/node

npm i https://pkg.pr.new/@modelcontextprotocol/node@2403

commit: fde3d16

@claude claude Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM — mechanical pruning of already-consumed alpha changesets plus the matching pre.json cleanup; the pending beta changeset (beta-release.md) is untouched and the trade-off (stable 2.0.0 changelog aggregating from beta onward) is clearly disclosed in the description.

Extended reasoning...

Overview

This PR is pure release housekeeping: it deletes 141 changeset markdown files under .changeset/ that were already consumed by the alpha releases, and clears the corresponding entries from pre.json's changesets (consumed) array. No source code, configuration logic, or workflow files change. I verified the pruned tree still contains the pending beta-release.md changeset (which is correctly not listed in the consumed array), config.json, and pre.json with mode: pre, tag: beta, and the alpha.4 initialVersions intact — exactly the state the description claims.

Correctness check

The set of deleted files matches the old consumed list one-to-one, so no pending changeset is being removed and no consumed entry is left dangling in pre.json. Clearing the consumed array while keeping prerelease mode is the documented manual remedy for an oversized prerelease plan; the consumed content is already transcribed into the per-package CHANGELOG.mds and GitHub Releases, and remains in git history. The only behavioral consequence — the eventual stable 2.0.0 changelog section aggregating from beta-era changesets onward — is explicitly called out in the PR description, so maintainers are not being surprised by a hidden trade-off. The author also reports running changeset version locally on the pruned tree producing a uniform 2.0.0-beta.1 plan.

Security risks

None. The change touches only changeset metadata files; there is no executable code, dependency, auth, or workflow change.

Level of scrutiny

Low. This is a chore-level change to release bookkeeping with no runtime impact on any published package. The worst failure mode would be a malformed pre.json (it parses cleanly) or accidentally deleting an unconsumed changeset (it does not — beta-release.md survives). The only stylistic nit is that pre.json was reformatted to 4-space indentation, which the changesets CLI may rewrite on the next version run; harmless churn.

Other factors

The bug-hunting system found no issues, and the changeset-bot "no changeset" warning is expected for a chore PR. Given the change is mechanical, fully reversible from git history, and its one policy trade-off is disclosed up front, this does not need a human gatekeeper before merge.

@felixweinberger felixweinberger merged commit 5ad6cd1 into main Jun 30, 2026
20 checks passed
@felixweinberger felixweinberger deleted the fweinberger/prune-consumed-changesets branch June 30, 2026 22:31
@claude claude Bot mentioned this pull request Jun 30, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant