This repo uses pnpm workspaces plus Changesets.
@seamless-auth/coreis the framework-agnostic package.@seamless-auth/expressdepends on@seamless-auth/corethroughworkspace:^during local development.- When packages are packed or published, pnpm rewrites
workspace:^to the released semver range, so adapters can be tested against local core changes before core exists on npm.
- Make the code change.
- Run
pnpm changeset. - Select the package or packages that have adopter-facing changes.
- Choose the semver bump.
- Write release notes for adopters, not implementation notes.
alpha: manual prerelease snapshots from thePrereleaseworkflow.beta: automatic snapshots fromdev.rc: automatic snapshots fromrelease/**branches.latest: stable releases frommainthrough theReleaseworkflow.
Prerelease snapshots publish to npm dist-tags without Git tags. Stable releases publish to npm, create package Git tags, and create GitHub Releases from the changeset summaries.
@seamless-auth/core and @seamless-auth/express are linked in
.changeset/config.json so they move as a known-good set while the API is still
settling. @seamless-auth/fastify and @seamless-auth/nextjs are not in the
linked group and version independently.
Recommended pre-1.0 behavior:
- core behavior changes: bump core and publish express with it.
- adapter-only fixes: bump the adapter. For express, the link keeps the release train with core visible; fastify and nextjs move on their own versions.
- breaking API changes before v1: use a minor bump and clear release notes.
Once @seamless-auth/core and @seamless-auth/express are stable:
- remove express from the linked Changesets group when independent versioning becomes valuable.
- keep adapters compatible with
@seamless-auth/core@^1unless a core major requires a coordinated adapter major. - add new adapters only after they pass the shared conformance suite for the current known-good core version.