- release-please: only works on github
- releaser-pleaser: no support for monorepos
- release-plz: rust projects only
- git-cliff: changelog only, no tagging, no releasing
Releasaurus works entirely through forge APIs, so no local clone is required, or git for that matter. Although it does offer an optional hybrid mode that will use a locally cloned repo for git operations and forge API calls for PR and release creation.
Here are some features I included:
- Supports Github, Gitlab, Gitea, Forgejo (Codeberg), AzureDevops (experimental)
- Monorepo support with independent versioning for each configured package
- Customizable CHANGELOG.md generation
- Customizable Release notes
- Choose from semantic or date based versioning strategies
- Semantic: "x.x.x" Uses conventional commits standard to analyze commits
- Date: `year.month.day-time`
- Customizable prerelease strategies - versioned: "x.x.x-<id>.<version>"
- static: "x.x.x-<static_id>"
- Explicit support for version file updates for the following languages - Go
- Java
- Node (supports workspaces)
- Php
- Python
- Ruby
- Rust (supports workspaces)
There are a handful of commands you can use to automate your releases. Here are
a few:- release-pr: analyzes commits and generates a release PR for review
- release: finds merged release PRs, tags the appropriate shas, and generates Releases for the target forge
- release-direct: Combines all analysis, committing, tagging, and releasing into a single flow and skips generating release PR for review
- get next-release: outputs json for the upcoming projected release - useful for generating notification prior to release
- get recompiled-notes: feed modified json from "get next-release" back in to regenerate changelog notes. Can also be useful for generating notifications.
GitHub: https://github.com/robgonnella/releasaurus
Docs: https://releasaurus.rgon.io
Happy to answer questions