Releasing eslint-plugin-etc-misc
This page mirrors the root RELEASING.md
guide so maintainers can follow release steps directly from the docs site.
One-time setup
- Ensure you can publish this package name on npm (
eslint-plugin-etc-misc). - In GitHub repo settings, add secret:
NPM_TOKEN.- Use an npm automation token with publish access.
- Confirm Actions are enabled for the repository.
Pre-release checks (local)
npm ci
npm run release:check
npm run changelog:preview
Changelog and release notes flow
This repository uses git-cliff for changelog generation and release notes.
npm run changelog:generatewritesCHANGELOG.mdlocally.npm run changelog:previewprints unreleased notes to stdout.npm run changelog:release-notesprints the latest tagged release notes for CI usage.
Important: CI does not commit or push changelog changes. Release notes are generated at workflow runtime and attached to the GitHub release body.
Release pipeline at a glance
Create a release
-
Bump
package.jsonversion. -
Commit and push to
main. -
Create and push a matching
v*tag:git tag v0.1.0
git push origin v0.1.0
The release workflow will:
- validate tag matches
package.jsonversion - run lint/typecheck/tests + pack dry-run
- generate release notes with
git-cliffusing full git history and tags - publish with provenance (
npm publish --provenance) - create the GitHub release using generated notes from
temp/release-notes.md
workflow_dispatch can perform a full release (version bump, tag, publish)
when configured with a valid target branch and npm token.
Notes
- If tag and
package.jsonversion differ, release fails intentionally. - CI changelog generation is intentionally no-commit/no-push.
Pre-publish package surface checklist
This project is currently dogfooded from source, so publish-surface validation is intentionally lower priority during architecture work. Before the first real public publish, complete all of the following package-entrypoint checks:
- Build artifact import succeeds (
dist/plugin.js). - Package
exportsresolution works for.and./package.json. - Types entrypoint resolves (
dist/plugin.d.ts) from a consumer tsconfig. - Default plugin export shape is validated from built output.
npm pack --dry-runoutput is validated, then packed tarball import is smoke-tested in an isolated temp project.
Treat this checklist as a release gate alongside lint/typecheck/tests.