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. It handles tasks like incrementing version numbers, generating changelogs, committing and tagging in Git, and publishing packages to registries such as npm. It solves the problem of manual, error-prone release workflows by providing a consistent and configurable automation pipeline.
Developers and teams managing JavaScript/Node.js projects or any software project that follows versioning and release practices, especially those using Git and package managers like npm.
Developers choose Release It! for its versatility, extensive plugin ecosystem, and seamless integration with CI/CD environments. It reduces release overhead, ensures consistency, and supports complex workflows through hooks and configuration options.
🚀 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.
The README lists numerous plugins like @release-it/conventional-changelog and release-it-calver-plugin, allowing customization for versioning strategies, changelog formats, and integration with other tools beyond core features.
Supports automated releases from GitHub Actions and GitLab CI, including secure npm publishing via Trusted Publishing (OIDC), as detailed in the npm and CI/CD documentation sections.
Automates Git commits, tagging, and pushing, with configurable commit messages and options to re-run or update existing releases, reducing manual errors in version control workflows.
Allows execution of shell commands at any stage (e.g., before:init for tests, after:release for notifications), using variables like version and changelog for dynamic scripting, as shown in the hooks examples.
Native handling of monorepos is limited; the README points to external recipes and plugins like @release-it-plugins/workspaces, adding complexity and potential fragmentation to the setup.
With numerous options for Git, npm, GitHub, hooks, and plugins, configuration files can become verbose and overwhelming, especially for users seeking a simple, out-of-the-box solution.
As a Node.js tool, it requires a Node environment, which may not align with projects in other ecosystems unless using the containerized version, adding overhead for non-JavaScript teams.