release
Execute the complete release workflow in a single command.
Usage
relizy release [options]What It Does
The release command combines multiple operations:
- ✅ Bumps version in package.json
- ✅ Generates/updates CHANGELOG.md
- ✅ Creates a git commit
- ✅ Creates a git tag
- ✅ Publishes to npm
- ✅ Creates GitHub or GitLab release
- ✅ Posts to social media (optional)
- ✅ Posts a comment on the PR/MR (optional)
Branch Safety
Packages are published before the release commit and tags are pushed, so a failed publish never leaves a tag behind. In return, Relizy makes sure the release commit can actually be pushed:
- Remote sync check: when
pushandcommitare enabled, Relizy fetches the upstream branch during the safety checks and again right before publishing. If new commits were pushed to the branch while the release was running (e.g. during a long CI build), the release stops before publishing and restores the release files. Re-run it from the latest commit. The check is skipped on a detached HEAD or when the branch has no upstream. - Existing tag check: right after the bump, Relizy fails if a tag it is about to create already exists. This catches a re-run after a release that published its packages but never got its release commit onto the branch, and prints how to recover (
git fetch --tags && git merge <tag> && git push). - Rejected push recovery: if the push is still rejected because the remote branch moved in the meantime (non-fast-forward), Relizy merges the remote branch into the release commit and pushes again. A merge (not a rebase) keeps the tags on the exact commit that was published, and the concurrent commits show up in the next changelog. If the merge conflicts, Relizy aborts it, pushes the tags so the release commit is preserved, and prints the recovery command.
Options
Release Type
Specify the version bump type:
# Patch release (1.0.0 → 1.0.1)
relizy release --patch
# Minor release (1.0.0 → 1.1.0)
relizy release --minor
# Major release (1.0.0 → 2.0.0)
relizy release --majorAll available version flags: --patch, --minor, --major, --prerelease, --prepatch, --preminor, --premajor
If no type is specified, Relizy automatically detects it from commits.
--canary
Publish a temporary test version without git side effects:
relizy release --canaryWhen --canary is used, Relizy automatically disables: changelog generation, git commit, git tag, git push, provider release (GitHub/GitLab), and social media posting. Only publishing to npm and PR comments remain active.
The canary version format is {nextVersion}-0.canary-{sha} (e.g., 1.3.0-0.canary-a3f4b2c).
Use --preid to customize the prerelease identifier:
relizy release --canary --preid snapshot
# → 1.3.0-0.snapshot-a3f4b2cSee the Canary Releases guide for full details.
--no-commit
Skip creating git commit:
relizy release --no-commit--no-push
Skip pushing to remote:
relizy release --no-push--dry-run
Preview changes without executing:
relizy release --dry-run--yes
Skip all confirmations:
relizy release --yes--no-git-tag
Skip pushing git tag:
relizy release --no-git-tag--no-social
Skip social media posting:
relizy release --no-social--no-pr-comment
Skip PR/MR comment posting:
relizy release --no-pr-comment--pr-number
Override the auto-detected PR/MR number:
relizy release --patch --pr-number 42Useful in CI/CD where the PR number is available as an environment variable:
relizy release --patch --yes --pr-number ${{ github.event.pull_request.number }}--ai / --no-ai
Force-enable or force-disable AI enhancement for release notes and social media:
# Force AI for this release
relizy release --patch --ai
# Disable AI for this release
relizy release --patch --no-aiThese flags override the ai.providerRelease and ai.social settings in your config file. See the AI-Enhanced Changelogs guide for setup.
--no-provider-release
Skip provider release creation (GitHub/GitLab):
relizy release --no-provider-release--no-publish
Skip npm publishing:
relizy release --no-publish--skip-existing-versions
Skip packages whose version already exists on the registry instead of failing:
relizy release --skip-existing-versionsMakes a re-run idempotent: already-published versions are skipped with a warning, and only missing packages are published. Particularly useful for canary releases, where re-running a pipeline on the same commit regenerates the same version. Without this flag, an already-published version fails the release with a clear error message. See publish.skipExistingVersions for details.
--include-private
Include private packages (packages with "private": true in their package.json) in the release. By default, private packages are skipped entirely.
relizy release --minor --include-privateWhen enabled:
- Private packages are bumped alongside public ones.
- Private packages get their own
CHANGELOG.md. - Their commits are included in the aggregated root changelog.
- In
independentmode, they get their own git tag and GitHub/GitLab release. - They are listed in the PR comment, without install commands.
Private packages are never published to a registry, even with this flag. See Private Projects & Apps to version a project that publishes nothing.
This is equivalent to setting monorepo.includePrivates: true in relizy.config.ts. See Monorepo Configuration — includePrivates.
Examples
Basic Release
# Interactive release
relizy release --patch
# Output:
# → Bumping version to 1.0.1
# → Generating changelog
# → Creating commit
# → Creating tag v1.0.1
# → Pushing to remote
# ✓ Release complete!Complete Release with Publishing
relizy release --minor
# This will:
# 1. Bump to 1.1.0
# 2. Update changelog
# 3. Commit and tag
# 4. Publish to npm
# 5. Create GitHub releaseMonorepo Selective Release
relizy release --selective --minor
# Only packages with changes are bumpedCI/CD Usage
# Automated release in CI
relizy release --patch --yes --no-cleanCanary Release
# Publish a canary version
relizy release --canary
# Canary with custom preid in CI
relizy release --canary --preid snapshot --yes
# Canary with PR comment
relizy release --canary --yes --pr-number 42See Also
- AI-Enhanced Changelogs - AI-powered release notes
- Canary Releases - Full guide on canary releases
- bump - Version bumping only
- changelog - Changelog generation only
- publish - NPM publishing only
- provider-release - Provider releases only
- pr-comment - PR/MR comments only