{"id":19993,"library":"eslint-release","title":"ESLint Release Tool","description":"ESLint Release Tool v3.3.0 is a CLI and API for automating releases in ESLint projects. It generates release versions, updates changelogs, publishes to npm, and creates GitHub releases with proper tags. Key differentiators: tightly coupled to ESLint's commit message conventions (conventional commits), supports both regular and prerelease workflows, and requires minimal configuration via environment variables. Release cadence is irregular focused on ESLint ecosystem needs. Alternative to generic tools like semantic-release but opinionated for ESLint processes.","status":"active","version":"3.3.0","language":"javascript","source_language":"en","source_url":"https://github.com/eslint/eslint-release","tags":["javascript","build","release","semver","versioning","changelog"],"install":[{"cmd":"npm install eslint-release","lang":"bash","label":"npm"},{"cmd":"yarn add eslint-release","lang":"bash","label":"yarn"},{"cmd":"pnpm add eslint-release","lang":"bash","label":"pnpm"}],"dependencies":[],"imports":[{"note":"Package is CJS only; named import works with both require and ESM syntax if using bundler. Use require in Node <14.","wrong":"const { generateRelease } = require('eslint-release')","symbol":"generateRelease","correct":"import { generateRelease } from 'eslint-release'"},{"note":"Same as above; avoid default import as it doesn't exist.","wrong":"const publishRelease = require('eslint-release').publishRelease","symbol":"publishRelease","correct":"import { publishRelease } from 'eslint-release'"},{"note":"Default export is the entire module object. Prefer named imports for clarity.","wrong":"","symbol":"default","correct":"import eslintRelease from 'eslint-release'"}],"quickstart":{"code":"const { generateRelease, publishRelease } = require('eslint-release');\n\n// Set environment variables\nprocess.env.NPM_TOKEN = 'your-npm-token';\nprocess.env.ESLINT_GITHUB_TOKEN = 'your-github-token';\n\n// Generate a regular release (prereleaseId undefined, packageTag defaults to 'latest')\ngenerateRelease()\n  .then(() => console.log('Release generated successfully'))\n  .catch(err => console.error('Generation failed:', err));\n\n// Publish the generated release\npublishRelease()\n  .then(() => console.log('Release published successfully'))\n  .catch(err => console.error('Publication failed:', err));","lang":"javascript","description":"Demonstrates programmatic usage of eslint-release: generateRelease() and publishRelease() with required environment variables."},"warnings":[{"fix":"Upgrade Node.js to >=10.0.0.","message":"Breaking: minimum Node.js version raised to 10.0.0 in v3.0.0.","severity":"breaking","affected_versions":">=3.0.0"},{"fix":"Consider using semantic-release for broader use cases; this tool is ESLint-specific.","message":"Package maintains minimal tests and API is rapidly changing. Not for general use.","severity":"deprecated","affected_versions":"*"},{"fix":"Always export both tokens before running eslint-generate-release or eslint-publish-release.","message":"Environment variables NPM_TOKEN and ESLINT_GITHUB_TOKEN must be set; otherwise commands fail silently or with generic error.","severity":"gotcha","affected_versions":"*"},{"fix":"Ensure generateRelease() completes successfully and .eslint-release-info.json exists before publishRelease().","message":"The .eslint-release-info.json file is required for publishRelease() - if missing or corrupted, publish fails.","severity":"gotcha","affected_versions":"*"},{"fix":"Ensure you're in a git repo with commits following conventional commit format.","message":"CLI commands eslint-generate-release and eslint-publish-release assume git repository with proper commit history; otherwise version calculation fails.","severity":"gotcha","affected_versions":"*"}],"env_vars":null,"last_verified":"2026-04-25T00:00:00.000Z","next_check":"2026-07-24T00:00:00.000Z","problems":[{"fix":"Install: npm install eslint-release --save-dev","cause":"Package not installed or incorrect import path.","error":"Error: Cannot find module 'eslint-release'"},{"fix":"Use const { generateRelease } = require('eslint-release');","cause":"Using require on default export when named export is intended.","error":"TypeError: generateRelease is not a function"},{"fix":"Set NPM_TOKEN environment variable before running commands.","cause":"Environment variable not set.","error":"Error: 'NPM_TOKEN' is not defined?"},{"fix":"Initialize git: git init; or cd to a git repository.","cause":"Commands must be run inside a git repository.","error":"fatal: not a git repository (or any of the parent directories): .git"}],"ecosystem":"npm","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}