@prefecthq/fastmcp-ts is released with Changesets
and GitHub Actions. Publishing to npm uses Trusted Publishing (OIDC) with
provenance.
- PRs land on
main, each carrying a changeset (seeCONTRIBUTING.md). - The Release workflow (
.github/workflows/release.yml) runs on every push tomain:- If unreleased changesets exist, it opens/updates a "Version Packages"
PR that bumps
package.jsonand regeneratesCHANGELOG.md. - When you merge that PR, the workflow publishes to npm (dist-tag
latest, with provenance), pushes the matchingv<version>git tag, and creates a GitHub Release with the changelog notes.
- If unreleased changesets exist, it opens/updates a "Version Packages"
PR that bumps
To cut a release: merge the open "Version Packages" PR.
The version is computed from the bump levels in the pending changesets (the
highest wins): patch β 0.0.x, minor β 0.x.0, major β x.0.0. To force
a specific version, edit package.json in the "Version Packages" PR before
merging, or add a changeset of the desired level.
Releases publish to latest, so npm install @prefecthq/fastmcp-ts always
gets the newest cut. The 0.0.x version line signals the package is
pre-production.
To move or remove a dist-tag manually:
npm dist-tag add @prefecthq/fastmcp-ts@<version> latest
npm dist-tag rm @prefecthq/fastmcp-ts <tag>(The legacy alpha dist-tag from the old process can be removed with
npm dist-tag rm @prefecthq/fastmcp-ts alpha.)
Not configured by default. If you ever need a pre-release line, use Changesets pre-release mode:
npx changeset pre enter next # subsequent releases become x.y.z-next.N on the `next` dist-tag
# ... merge Version Packages PRs as usual ...
npx changeset pre exit # return to normal releasesSee the Changesets prereleases docs.
The repository is in Changesets pre mode on the rc tag. It ships the
1.0.0-rc.* release candidates for FastMCP 1.0. .changeset/pre.json records
this state; it must stay committed on the release branch for CI to build
prerelease versions.
How it works:
- Each merged "Version Packages" PR cuts the next candidate β
1.0.0-rc.0, then1.0.0-rc.1, and so on. The counter starts at0. changeset publishsends each candidate to thercnpm dist-tag, notlatest. Pre mode selects the tag frompre.jsonon its own, because the package already has regular (non-prerelease) releases on npm. The release workflow passes no--tag, so no change to CI is needed.lateststays on the 0.x line while thercline runs. A plainnpm install @prefecthq/fastmcp-tsstill gets the current 0.x release. To try a candidate, install@prefecthq/fastmcp-ts@rc.- The 0.x line is in maintenance during the
rcline and receives critical fixes only.
How it ends β cut stable 1.0.0:
npx changeset pre exit # leave pre mode; commit the pre.json changeAfter pre exit, the next "Version Packages" PR versions the pending
changesets as a normal release: 1.0.0 stable, published to latest.
That is the point where latest moves off the 0.x line.