Versioning & Release
This project uses Semantic Versioning (MAJOR.MINOR.PATCH).
Versioning Policy
- PATCH (x.x.+1) — Bug fixes, docs-only fixes, non-breaking behavior adjustments
- MINOR (x.+1.0) — New rules, new options, backward-compatible enhancements
- MAJOR (+1.0.0) — Breaking changes to rule behavior, defaults, or public exports
Release Checklist
1. Ensure clean working tree
Terminal
git status # should be clean2. Update CHANGELOG.md
- Move items from
[Unreleased]to a new version section - Add release date in
YYYY-MM-DDformat
3. Run full quality checks
Terminal
npm run clean
npm run build
npm test
npm pack --dry-run # verify package contents4. Bump version
Terminal
npm version patch # for bug fixes
npm version minor # for new features
npm version major # for breaking changes5. Push tags and commits
Terminal
git push --follow-tags6. Publish to npm
Terminal
npm publish7. Create GitHub release
Go to Releases, create a release from the new tag, and copy the relevant CHANGELOG.md section as release notes.
Pre-publish Verification
Before every publish, verify the package contents:
Terminal
npm pack --dry-runExpected output should include:
dist/index.jsanddist/index.d.tsdist/rules/*.jsanddist/rules/*.d.tsdist/configs/*.jsanddist/configs/*.d.tsdist/cli.jsdocs/**/*.mdREADME.mdandLICENSE
It should not include:
src/(TypeScript source)tests/node_modules/.stress-tests/