Automates versioning, publishing, and creating changelogs for Node.js projects using conventional commits and supports multi-package repos.
- 📝 Automated Changelogs - Generate nice looking changelogs from conventional commits
- 🔖 Version Management - Automatic semantic versioning based on commit messages
- 🏷️ Git Tag Management - Automatically creates and publishes git version tags
- 📦 Package Manager Agnostic - Works with npm, pnpm, yarn, and bun
- 🤖 GitHub Integration - Automatic PR creation and GitHub releases
- 🧪 Snapshot Releases - Create preview versions for testing
- 🎯 Monorepo Support - Manage multiple packages in a single repository
- Use squash merge for pull requests.
In your repo settings:
- Go to Settings > General > Pull Requests
- Uncheck "Allow merge commits"
- Check "Allow squash merges"
- Choose "Pull request title" for default commit message
- Update workflow permissions
- Go to Settings > Actions > General
- Set "Workflow permissions" to "Read and write permissions"
- Check "Allow GitHub Actions to create and approve pull requests"
Note
It's recommended to run lazy-release in a CI/CD environment (like GitHub Actions) for automated and consistent release workflows.
- Install the CLI:
pnpm i @lazy-release/cli -D- Add a script to your
package.json:
{
"scripts": {
"lazy-release": "lazy-release"
}
}- Run the CLI:
pnpm lazy-release --npm-token $NPM_TOKEN --github-token $GITHUB_TOKEN --access public- A dev merges a Pull Request into the
mainbranch using squash merge.
Note
The PR should be prefixed with conventional commit prefix e.g "fix", "chore", "feat", etc...
A Release PR....
- A release is created once the Release PR is merged. A release is...
- Publishing packages to npm (If you provide a NPM_TOKEN and the package.json does not have "private": true)
- Creates a GitHub release (If you provide a GITHUB_TOKEN)

Note
If you are using lazy-release in your project, please consider adding it to this list by submitting a pull request!
- Vue.js (Their nice changelogs)
- Nuxt.js (Release PRs, use of emojis etc)

