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.mdhas release notes.- No uncommitted changes.
Versioning
- Update
package.jsonversion. - Update
CHANGELOG.mdwith a dated section. - Commit version + changelog.
- Create an annotated tag:
git tag -a vX.Y.Z -m "vX.Y.Z"
- 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.ymldeploys the generated site on pushes tomain.
Post-release
- Verify package contents and installability.
- Verify CDN URL for the new version.
- Verify checksum file matches uploaded tarball.
- Announce release notes.