| title | Releasing | |||
|---|---|---|---|---|
| summary | Release flow for @module-federation/nuxt using Changesets and GitHub Actions trusted publishing. | |||
| read_when |
|
|||
| updated_at | 2026-07-15 |
This repository uses Changesets for versioning and publishes @module-federation/nuxt to npm through GitHub Actions trusted publishing.
Every user-visible package change should include a changeset:
pnpm changesetChoose @module-federation/nuxt, select the semver impact, and describe the change in release-note language. Commit the generated .changeset/*.md file with the implementation.
Run the release gate from a clean checkout:
pnpm install --frozen-lockfile
pnpm typecheck
pnpm build
pnpm test
pnpm pack:nuxt
pnpm format:checkAlso exercise the production examples with pnpm preview. Confirm server-rendered remote markup, browser hydration, remote interactions, manifest loading, both remote entries, and all referenced /_nuxt assets.
- Merge feature PRs, including their changesets, into
main. - Run the
Release Pull Requestworkflow. - Review its version PR. Confirm the package version, changelog, changeset removal, and packed file list.
- Merge the version PR after CI passes.
- Publish the merged version using one of these supported paths:
- Create a GitHub Release whose tag exactly matches
packages/nuxt/package.json(for example,0.1.0). TheReleaseworkflow publishes it with npm dist-taglatest. - Manually run the
Releaseworkflow withversion=latestandbranch=main.
- Create a GitHub Release whose tag exactly matches
- Verify the npm version, provenance, README, exports, and
latestdist-tag.
GitHub Release tags must not start with v. The publish workflow rejects a tag that does not match the package version.
The version-PR workflow requires a REPO_SCOPED_TOKEN Actions secret with permission to push branches and open pull requests. Do not fall back to GITHUB_TOKEN: GitHub suppresses workflow events created by that token, so the generated release PR would not receive CI checks.
Run the Release workflow manually with:
version=nextbranch=main
The workflow creates a Changesets snapshot version and publishes it under the npm next dist-tag. Preview and stable releases are main-only; use a merged changeset to validate the packed package before a stable release.
A GitHub prerelease also publishes under next. Its tag must match the base version in packages/nuxt/package.json; the workflow derives a rerun-safe <base>-next.<workflow-run-id> npm version.
Converting that GitHub prerelease to a stable release does not republish it. After the stable version PR is merged, run Release manually with version=latest and branch=main.
- Package version and changelog describe
0.1.0. - Package tarball includes package metadata,
README.md,LICENSE, compiled ESM, declarations, and source maps only. - Package exports load in a clean ESM consumer.
- Host and remote build with the supported Node and Nuxt versions.
- Production host HTML contains remote SSR markup before hydration.
- Remote outage behavior is recoverable on a later request.
- Published server output contains no build-machine absolute paths.
- Generated manifests list
vueandvue-routeras shared singletons. - CI, typecheck, build, tests, formatting, and package-content checks pass.
- GitHub
Publishenvironment and npm trusted publisher targetrelease.yml.
- The workflow publishes from
packages/nuxtwith npm provenance. - The workflow publishes only commits reachable from
mainand reruns the full release gate before publishing. - Stable releases use
latest; previews usenext. - Publishing skips only when the exact npm version already exists and the requested dist-tag already points to it.
- Publishing fails when an existing version would require dist-tag promotion. Create a new semver version instead.
- npm trusted publishing must be configured for:
- repository:
module-federation/nuxt - workflow:
release.yml - environment:
Publish
- repository: