The npm package is the local agent (dist/ built from src/ by tsc). The
website deploys separately through Vercel on every push to main, so it isn't
part of this checklist. Follow these steps in order; the goal is that the git
tag, the npm release, and CHANGELOG.md always agree.
- On
main, working tree clean, andgit pullis up to date. - Decide the bump with semver: patch for fixes, minor for backward-compatible features, major for breaking changes.
-
Verify green.
npm run typecheck npm test -
Update
CHANGELOG.md. Rename the## [Unreleased]heading to the new version with today's date, start a fresh empty## [Unreleased]above it, and fix the compare links at the bottom. -
Bump the version (edits
package.json+package-lock.json, no tag yet):npm version <patch|minor|major> --no-git-tag-version
-
Commit the bump and changelog together:
git commit -am "chore(release): v$(node -p "require('./package.json').version")" -
Tag the release commit:
git tag "v$(node -p "require('./package.json').version")" -
Inspect the package contents before the irreversible publish (
prepublishOnlyrunsnpm run buildfor you):npm publish --dry-run
Confirm the tarball has
dist/,README.md, andLICENSEand nothing stray. -
Publish:
npm publish
-
Push the commit and tag only after the publish succeeds, so the repo never advertises a release that isn't on npm:
git push && git push --tags
npm view grindeasy versionshould show the new version.npx grindeasy@latest --versionshould match.