# What changed in release-it

> 38 changes in release-it 19 to 21 from its official release notes, upgrade guides and advisories: 7 breaking, 7 new APIs and options. Each one cited. Sources checked 2026-10-18. HTML: https://unstale.sh/npm/release-it/

To see which of these apply to a repository, run `npx @unstale/cli init` in it.

## release-it 21

### Breaking changes

- The supported Node.js engine range is narrowed. (21.1.0) — [release notes](https://github.com/release-it/release-it/releases/tag/21.1.0)
- GitLab server certificates are verified by default. (21.0.0) — [release notes](https://github.com/release-it/release-it/releases/tag/21.0.0)
- Release-it v21 requires Node 22.21. (21.0.0) — [release notes](https://github.com/release-it/release-it/releases/tag/21.0.0)
- CLI arguments are parsed strictly. (21.0.0) — [release notes](https://github.com/release-it/release-it/releases/tag/21.0.0)

### New APIs and options

- GitLab support now includes proxy environment variables. (21.1.0) — [release notes](https://github.com/release-it/release-it/releases/tag/21.1.0)
- Adds the gitlab.repoId option for configuring a GitLab repository ID. (21.0.0) — [release notes](https://github.com/release-it/release-it/releases/tag/21.0.0)

### Behavior and default changes

- release-it logs in to npm automatically before interactive publishing. (21.1.0) — [release notes](https://github.com/release-it/release-it/releases/tag/21.1.0)
- GitLab releases are pinned to the current commit. (21.0.0) — [release notes](https://github.com/release-it/release-it/releases/tag/21.0.0)

### Fixes and other changes

- Schema $id values no longer include a fragment. (21.1.0) — [release notes](https://github.com/release-it/release-it/releases/tag/21.1.0)
- Fixes version increments and coercion after the verkit migration, including coercion for verkit 0.4. (21.1.0) — [release notes](https://github.com/release-it/release-it/releases/tag/21.1.0)
- Fixes the npm staging approval URL and prompt. (21.0.3) — [release notes](https://github.com/release-it/release-it/releases/tag/21.0.3)
- Fixes a regression so --no-hooks skips all hooks. (21.0.1) — [release notes](https://github.com/release-it/release-it/releases/tag/21.0.1)
- Fixes routing when a GitHub proxy is configured. (21.0.0) — [release notes](https://github.com/release-it/release-it/releases/tag/21.0.0)
- Fixes handling of custom registry arguments for npm. (21.0.0) — [release notes](https://github.com/release-it/release-it/releases/tag/21.0.0)
- Fixes workspace configuration resolution when publishing to npm. (21.0.0) — [release notes](https://github.com/release-it/release-it/releases/tag/21.0.0)
- GitLab repository IDs can be numeric. (21.0.0) — [release notes](https://github.com/release-it/release-it/releases/tag/21.0.0)
- The command exits successfully when no release version is available. (21.0.0) — [release notes](https://github.com/release-it/release-it/releases/tag/21.0.0)
- Fixes shell caching and working tree detection. (21.0.0) — [release notes](https://github.com/release-it/release-it/releases/tag/21.0.0)

## release-it 20

### New APIs and options

- Adds support for staged npm publishing through npm.stage. (20.1.0) — [release notes](https://github.com/release-it/release-it/releases/tag/20.1.0)
- Adds a flag to hide release previews. (20.1.0) — [release notes](https://github.com/release-it/release-it/releases/tag/20.1.0)

### Behavior and default changes

- Prints the staged-packages approval URL after stage publish so developers can access the approval message. (20.2.0) — [release notes](https://github.com/release-it/release-it/releases/tag/20.2.0)
- Uses the draft flow for immutable releases that include assets. (20.1.0) — [release notes](https://github.com/release-it/release-it/releases/tag/20.1.0)

### Fixes and other changes

- Publishing interactively under --only-version allows passkey 2FA to work. (20.1.0) — [release notes](https://github.com/release-it/release-it/releases/tag/20.1.0)
- The release body is an empty string instead of null. (20.1.0) — [release notes](https://github.com/release-it/release-it/releases/tag/20.1.0)
- The types now allow false as an npm config value. (20.0.1) — [release notes](https://github.com/release-it/release-it/releases/tag/20.0.1)
- Fixes the guard for write: false in npm.bump. (20.0.0) — [release notes](https://github.com/release-it/release-it/releases/tag/20.0.0)
- Leading slashes are removed from owner. (20.0.0) — [release notes](https://github.com/release-it/release-it/releases/tag/20.0.0)

## release-it 19

### Breaking changes

- HTTP 403 responses are now considered a resource-alive response. (19.1.0) — [release notes](https://github.com/release-it/release-it/releases/tag/19.1.0)
- npm config environment variable warnings are removed. (19.1.0) — [release notes](https://github.com/release-it/release-it/releases/tag/19.1.0)
- release-it ignores .npmrc. (19.1.0) — [release notes](https://github.com/release-it/release-it/releases/tag/19.1.0)

### New APIs and options

- Adds an option to exit gracefully. (19.2.0) — [release notes](https://github.com/release-it/release-it/releases/tag/19.2.0)
- Adds an NPM plugin config option to use a different package manager for publishing, such as Bun. (19.2.0) — [release notes](https://github.com/release-it/release-it/releases/tag/19.2.0)
- Adds --workspaces=false to avoid the null/matches error. (19.1.0) — [release notes](https://github.com/release-it/release-it/releases/tag/19.1.0)

### Behavior and default changes

- The getChangelog method was improved; the notes do not specify what changed. (19.2.2) — [release notes](https://github.com/release-it/release-it/releases/tag/19.2.2)
- The commit prompt is improved. (19.2.1) — [release notes](https://github.com/release-it/release-it/releases/tag/19.2.1)
- Uses `--workspaces=false` only with npm. (19.2.0) — [release notes](https://github.com/release-it/release-it/releases/tag/19.2.0)

### Tooling

- An interactive shell is supported in non-CI mode for the 2FA flow. (19.1.0) — [release notes](https://github.com/release-it/release-it/releases/tag/19.1.0)

### Fixes and other changes

- Adds shell mode for npm commands on Windows. (19.2.0) — [release notes](https://github.com/release-it/release-it/releases/tag/19.2.0)
