Seamless and automated release manager with elegant changelog generation based on Conventional Commits, supporting both monorepos and single packages. Handles version bumping, changelog generation, Git tagging, and publishing to npm, GitHub & GitLab effortlessly.
Imagine you have multiple packages in your project (like a box with several toys). With one command, this tool helps you to:
- Update version numbers of your packages automatically
- Create changelogs to explain what changed
- Publish your packages to npm so others can use them
- Create releases on GitHub or GitLab
- Announce releases automatically on Twitter and Slack
- π Built on top of changelogen
- π¦ Monorepo support with glob pattern matching
- π Three versioning modes: unified, selective, independent
- π Generate changelogs per package + root aggregate
- π·οΈ Pre-release support (alpha, beta, rc)
- π’ NPM publish with smart tag detection
- π Automatic dependency bumping for workspace dependencies
- π GitHub, GitLab & Bitbucket support
- π 2FA/OTP support for npm publishing
- ποΈ Custom registry support (private registries, GitHub Packages, etc.)
- βοΈ Multiple configuration files support for different release workflows
- π§ Support for npm, yarn, pnpm, and bun (auto-detected)
- π± Social media integration (Twitter & Slack) for release announcements
You can find the documentation here.
pnpm add -D relizyInstall Relizy in your project:
pnpm add -D relizy
# or npm install -D relizy
# or yarn add -D relizyCreate a simple configuration file relizy.config.ts:
import { defineConfig } from 'relizy'
export default defineConfig({
monorepo: {
versionMode: 'selective',
packages: ['packages/*'],
},
})That's it! Now you can release with a single command:
relizy releaseThis will automatically:
- Detect the version bump from your commits
- Update all package versions
- Generate changelogs
- Commit and tag your changes
- Push to your git repository
- Create a release on GitHub/GitLab
- Publish to npm
Relizy isn't just for publishing npm packages. You can use it for any project where you need version tracking and changelogs:
Perfect for managing npm packages in a monorepo or single package repository. Automate the entire release workflow and let your team focus on building features.
relizy release --minorUse Relizy to version your private web applications, mobile apps, or internal tools. Keep track of what changed in each version with automatic changelog generation.
relizy release --patch --no-publishAutomatically post release announcements to Twitter and Slack when you ship new versions. Keep your users and team informed without manual work.
relizy release --minor # Automatically posts to configured social channelsThis README covers the basics to get you started quickly. For detailed documentation, configuration options, and advanced features, visit our full documentation:
Topics covered in the documentation:
- Complete configuration reference
- Monorepo versioning strategies (unified, selective, independent)
- CI/CD integration (GitHub Actions, GitLab CI)
- Social media integration (Twitter & Slack)
- Custom registries and private packages
- Multiple configuration files
- And much more...
Here are some quick examples to get you started:
relizy release --patchThis bumps the version (e.g., 1.0.0 β 1.0.1), generates the changelog, commits, tags, pushes, and publishes to npm.
relizy release --minor --dry-runPreview exactly what will happen without making any changes.
relizy release --patch --no-publishPerfect for versioning private applications where you don't need to publish to npm.
relizy release --prerelease --preid betaCreates beta versions like 1.0.0-beta.0 for testing before stable releases.
# Skip git push
relizy release --patch --no-push
# Skip GitHub/GitLab release
relizy release --patch --no-provider-release
# Just bump and commit
relizy release --patch --no-publish --no-pushFor detailed CLI reference, configuration options, and advanced features, check out the full documentation.
# Run all tests
pnpm test:unit
# Run tests in watch mode
pnpm test:unit:watch
# Run tests with coverage
pnpm test:unit:coverageThis project uses Codecov to track code coverage. Coverage reports are automatically generated and uploaded when you push to main or develop branches, or when you create a pull request.
Coverage Requirements:
- Overall project: Coverage should not decrease by more than 0.5%
- New code (patches): Must have at least 80% coverage
You can view detailed coverage reports on Codecov.
To see coverage locally:
pnpm test:unit:coverage
# Open coverage/index.html in your browserWhen submitting a PR:
- Ensure all tests pass (
pnpm test:unit) - Check TypeScript types (
pnpm typecheck) - Lint your code (
pnpm lint:all) - Add tests for new features
- Maintain or improve code coverage (Codecov will comment on your PR)
The Codecov bot will automatically comment on your PR with coverage details and changes.
For detailed contribution guidelines, including development setup, testing workflows, commit conventions, and the complete PR process, please read our Contributing Guide.
MIT
