chore: prune consumed alpha changesets to unblock the release workflow#2403
Conversation
…gelog step stays within API limits
|
@modelcontextprotocol/client
@modelcontextprotocol/codemod
@modelcontextprotocol/core
@modelcontextprotocol/server
@modelcontextprotocol/server-legacy
@modelcontextprotocol/express
@modelcontextprotocol/fastify
@modelcontextprotocol/hono
@modelcontextprotocol/node
commit: |
There was a problem hiding this comment.
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.
The release workflow's Version job has failed on every run since the alpha.4 release: in prerelease mode,
changeset versionincludes 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 their2.0.0-alpha.Nsections) and the per-release GitHub Releases; the files remain recoverable from git history. The only behavioral change is that the eventual stable2.0.0changelog section will aggregate from the beta-era changesets onward rather than re-listing the alpha entries.How Has This Been Tested?
changeset versionrun locally on the pruned tree: completes in seconds, produces a uniform2.0.0-beta.1across 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
Checklist