What changed in commitlint from 20 to 21

7 releases numbered after v20.5.3 up to and including v21.2.2, stable releases only. v20.5.3 and v21.2.2 are the newest stable releases of 20 and 21 we track; this page follows them as new ones ship.

22 changes across 7 releases

Added 4

v21.2.1

  • resolve-extends now resolves pure-ESM presets (conventional-changelog v7/v9/v10)

v21.2.0

  • Resolve pure-ESM presets (conventional-changelog v7/v9/v10) in resolve-extends

v21.1.0

  • Add --default-config flag to lint without a config file
  • Allow for custom commit parser function
Changed 4

v21.0.0

  • Show input from a new line (adds --legacy-output flag as transitional escape hatch)
  • Replace dependencies with Node 22 built-ins (removes glob, fast-glob, import-meta-resolve, minimist, fs-extra)
  • Replace read-pkg with native fs.readFile and JSON.parse
  • Update dependency yargs to v18
Fixed 11

v21.2.2

  • Require colon after note keywords in parse
  • Resolve packages from TypeScript configs in container
  • Support Yarn Plug'n'Play in resolve-extends

v21.1.0

  • Remove duplicate es-toolkit@1.47.1 keys from lockfile

v21.0.2

  • Emit actionable error when --edit cannot find COMMIT_EDITMSG
  • Apply oxfmt formatting to get-edit-commit.ts
  • Fail when --from and --to share no merge-base
  • Disallow same commit hash for --from and --to

v21.0.1

  • Only resolve relative formatter paths
  • Add presetConfig to ParserPreset interface

v21.0.0

  • Widen cz-commitlint inquirer peer dependency to support v9–v12
Removed 2

v21.0.0

  • Raise minimum Node version to v22
  • Remove cross-env and move environment variables to vitest config
Deprecated 1

v21.0.0

  • --legacy-output flag will be removed in a future major release

Original release notes, newest first

The list above is our reading of these notes; the originals from conventional-changelog are here, one fold per release.

v21.2.2
21.2.2 (2026-08-13)
Bug Fixes
Chore, docs, etc.
New Contributors

Full Changelog: https://github.com/conventional-changelog/commitlint/compare/v21.2.1...v21.2.2

View originalPermalink

v21.2.1

21.2.0 (2026-06-30)

Features
  • resolve-extends: resolve pure-ESM presets (conventional-changelog v7/v9/v10) (#4859) (fdb566f)
Chore, doc, etc.
New Contributors

Full Changelog: https://github.com/conventional-changelog/commitlint/compare/v21.2.0...v21.2.1

View originalPermalink

v21.2.0

21.2.0 (2026-06-30)

Features
Chore

Full Changelog: https://github.com/conventional-changelog/commitlint/compare/v21.1.0...v21.2.0

View originalPermalink

v21.1.0

21.1.0 (2026-06-23)

Bug Fixes
Features
Docs, chore, etc.
New Contributors

Full Changelog: https://github.com/conventional-changelog/commitlint/compare/v21.0.2...v21.1.0

View originalPermalink

v21.0.2
21.0.2 (2026-05-29)
Bug Fixes
Chore/CI
New Contributors

Full Changelog: https://github.com/conventional-changelog/commitlint/compare/v21.0.1...v21.0.2

View originalPermalink

v21.0.1
21.0.1 (2026-05-12)
Bug Fixes
CI
New Contributors

Full Changelog: https://github.com/conventional-changelog/commitlint/compare/v21.0.0...v21.0.1

View originalPermalink

v21.0.0

Heads-up: --legacy-output is a transitional escape hatch. It will be removed in a future major release. Plan to migrate your parsers / snapshots to the new format during the v21 lifecycle.

21.0.0 (2026-05-08)
Breaking
  • chore!: minimum node version v22 by @escapedcat in #4679
  • feat!: show input from a new line by @knocte in #4727 (adds --legacy-output flag)
Fixes
  • fix: widen cz-commitlint inquirer peer dep to support v9–v12 by @escapedcat in #4682 — closes #4554
Internals (Node 22 cleanup)
  • chore: replace dependencies with Node 22 built-ins by @escapedcat in #4681 — drops glob, fast-glob, import-meta-resolve, minimist, fs-extra
  • refactor: replace read-pkg with native fs.readFile + JSON.parse by @escapedcat in #4742
  • chore: update dependency yargs to v18 by @escapedcat in #4686
  • chore: remove cross-env, move env vars to vitest config by @escapedcat in #4684
Dependency updates
  • chore: update dependency @types/node to v22.19.17 by @renovate[bot] in #4739
  • chore: update dependency @swc/core to v1.15.33 by @renovate[bot] in #4743

Full Changelog: https://github.com/conventional-changelog/commitlint/compare/v20.5.3...v21.0.0

View originalPermalink