Skip to main content
nx release is a set of tools for managing the full release lifecycle of your libraries and applications: versioning, changelog generation, and publishing.
Publishing is difficult to undo. Always start with --dry-run to preview what will happen before committing to a release.

What makes up a release?

A release consists of three phases that can be run together or independently:
1

Versioning

Determine the next version for each project and update any projects that depend on them. Versions follow semantic versioning (semver) by default.
2

Changelog generation

Derive a changelog from commit messages or version plan files and write it to CHANGELOG.md.
3

Publishing

Publish packages to a registry (e.g. npm, crates.io, a Docker registry).

Run the full release

The top-level nx release command runs all three phases in order:
When you run nx release without a specifier, Nx prompts you to choose a semver keyword (major, minor, patch) or enter a custom version.

Configure nx release

Configure Nx Release in nx.json under the release key:

Configure versioning

When conventionalCommits is enabled, Nx determines the version bump automatically based on commit message prefixes (feat:, fix:, chore:, etc.).

Configure changelog

Configure git operations

Or configure defaults in nx.json:

Release groups for independent versioning

Release groups let you version subsets of projects independently with different configuration:
Target a specific group when running release commands:

Publish options

Programmatic API

For complex or highly customized release workflows, use the programmatic API directly in a Node.js script:
This is especially useful when the CLI’s prompts or built-in logic don’t cover your team’s specific release requirements.

Version plans (file-based versioning)

Instead of deriving version bumps from commit messages, you can create explicit version plan files:
Version plan files are committed alongside your code changes and consumed during the next release. Verify that all touched projects have a version plan:

nx release CLI reference

Full reference for all nx release subcommands and flags.

nx.json release configuration

Configure release groups, versioning strategy, and changelog in nx.json.

CI setup

Set up automated releases in GitHub Actions, GitLab, or other CI providers.

Extend Nx

Write custom generators and executors to customize your release workflow.