Release Process

This project should release from main only. Official release channel is Git tags + GitHub release artifacts from this repository.

Pre-release checks

Run:

npm ci
npm run release:verify-meta
npm run docs:verify-sync
npm run docs:verify-coverage
npm run docs:check-snippets
npm run docs:check-links
npm run lint
npm run typecheck
npm run ci:check
npx playwright install chromium firefox
npm run test:smoke:browser
npm run site:build

Ensure:

  • CI is green.
  • CHANGELOG.md has release notes.
  • No uncommitted changes.

Versioning

  1. Update package.json version.
  2. Update CHANGELOG.md with a dated section.
  3. Commit version + changelog.
  4. Create an annotated tag:
git tag -a vX.Y.Z -m "vX.Y.Z"
  1. Push commit + tag.

Pushing a v* tag triggers .github/workflows/release-verify.yml, which reruns checks and uploads:

  • npm tarball artifact
  • sha256 checksum file (release-checksums.txt)

Distribution

Primary distribution paths:

  • GitHub tag + release artifacts
  • jsDelivr pinned to this repository's release tag
  • GitHub Pages site for docs and runnable examples

Site deployment

  • The site is generated with npm run site:build.
  • Versioned docs payload for deployment is generated with npm run site:build:versioned.
  • Output directory is site-dist/.
  • .github/workflows/pages.yml deploys the generated site on pushes to main.

Post-release

  • Verify package contents and installability.
  • Verify CDN URL for the new version.
  • Verify checksum file matches uploaded tarball.
  • Announce release notes.