A generic CLI tool to automate versioning, changelog generation, and package publishing for software projects.
Release It! is a command-line interface tool that automates the software release process for projects. It handles tasks like incrementing version numbers, generating changelogs, creating Git tags, and publishing packages to registries like npm, GitHub, or GitLab. It solves the problem of manual, error-prone release workflows by providing a consistent, configurable pipeline.
Developers and teams managing JavaScript/Node.js packages or any versioned software project who want to automate their release process. It's especially useful for open-source maintainers and organizations with CI/CD pipelines.
Developers choose Release It! for its versatility, extensible plugin system, and strong integration with Git and package managers. Unlike simpler version bumpers, it offers a comprehensive suite of release automation features, hooks for custom scripts, and support for monorepos, pre-releases, and multiple publishing platforms.
🚀 Automate versioning and package publishing
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Offers plugins for conventional changelog, CalVer, monorepo support, and more, enabling integration with tools like Lerna and Changesets without reinventing the wheel, as listed in the plugins section.
Automatically runs in non-interactive mode in CI environments, with support for trusted publishing via OIDC for npm, making it secure and seamless for automated workflows, as detailed in the npm and CI/CD sections.
Allows executing custom shell commands before or after any release step, using variables like version and changelog, with examples provided in the hooks documentation for testing and notifications.
Supports multiple configuration files and a schema for validation, allowing precise tailoring of the release process, as shown in the configuration examples with .release-it.json.
The default configuration has many options, and setting up advanced features like plugins or custom hooks requires significant initial effort, which can be daunting for new users despite the documentation.
For standard practices like conventional commits or Keep a Changelog, additional plugins are required, adding dependencies and maintenance overhead, as the README admits it's agnostic to commit conventions by default.
The README warns that using @inquirer/prompts inside custom hook scripts might cause issues, indicating edge cases where user-defined scripts can interfere with the tool's internal operations.