|
| 1 | +# Publishing Checklist |
| 2 | + |
| 3 | +Use this checklist for npm publication and public distribution. |
| 4 | + |
| 5 | +## One-Time Setup |
| 6 | + |
| 7 | +1. Confirm package ownership for the `@botblocker` npm scope. |
| 8 | +2. Confirm the public repository URL and add it to `package.json` when available. |
| 9 | +3. Configure npm 2FA for publish operations. |
| 10 | +4. Prefer publishing from CI with npm provenance enabled when the release workflow is ready. |
| 11 | +5. Confirm the security contact channel at https://botblocker.top. |
| 12 | + |
| 13 | +## Pre-Release Checks |
| 14 | + |
| 15 | +```bash |
| 16 | +npm ci |
| 17 | +npm run verify |
| 18 | +npm audit --omit=dev |
| 19 | +npm pack --dry-run |
| 20 | +npm publish --dry-run |
| 21 | +``` |
| 22 | + |
| 23 | +Expected quality gate: |
| 24 | + |
| 25 | +- build succeeds; |
| 26 | +- TypeScript declarations compile; |
| 27 | +- Node coverage is 100% for lines, branches, and functions; |
| 28 | +- Playwright tests pass in Chromium, Firefox, and WebKit; |
| 29 | +- minified browser bundle stays under the configured budget; |
| 30 | +- production dependency audit reports zero vulnerabilities; |
| 31 | +- package dry-run includes only intended files. |
| 32 | + |
| 33 | +## Versioning |
| 34 | + |
| 35 | +- Patch release: compatible API and no intentional default identity hash change. |
| 36 | +- Minor release: new API, new report-only signals, or documented identity hash changes. |
| 37 | +- Major release: breaking API, package export changes, or incompatible result schema changes. |
| 38 | + |
| 39 | +If default identity inputs change, document the migration impact in `CHANGELOG.md` and `docs/VERSION_POLICY.md`. |
| 40 | + |
| 41 | +## Publish |
| 42 | + |
| 43 | +```bash |
| 44 | +npm version patch |
| 45 | +npm publish --access public |
| 46 | +``` |
| 47 | + |
| 48 | +Use `minor` or `major` instead of `patch` when the versioning rules require it. |
| 49 | + |
| 50 | +## Post-Release |
| 51 | + |
| 52 | +1. Install the package in a clean temporary project. |
| 53 | +2. Test ESM import, CommonJS require, and the `@botblocker/fingerprintjs/server` subpath. |
| 54 | +3. Download the browser bundle from the published package and run the browser demo. |
| 55 | +4. Tag the release in git and attach a short release note based on `CHANGELOG.md`. |
0 commit comments