Automated Versioning
Analyses Conventional Commits since the last tag and determines the correct SemVer bump automatically.
semrel automates your release pipeline by reading Conventional Commits, calculating the correct next SemVer version, generating a changelog, and running configurable release plugins — with zero runtime dependencies.
Manual versioning is error-prone and slow. semrel removes the guesswork:
feat: commit bumps the minor version.fix: commit bumps the patch version.BREAKING CHANGE: in the footer bumps the major version.Automated Versioning
Analyses Conventional Commits since the last tag and determines the correct SemVer bump automatically.
Plugin System
Every step of the release pipeline can be handled by a standalone plugin executable discovered and run by semrel.
Monorepo Support
Version multiple independent modules inside one repository, each with its own tag history.
Language Agnostic
Plugins are plain executables, so they can be written in any language and integrated through environment variables and normal process execution.
Each stage can be handled by a separate plugin executable. Install official plugins with commands such as semrel plugin install github, then configure them in .semrel.yaml.
| semrel | semantic-release | goreleaser | release-please | release-it | changesets | |
|---|---|---|---|---|---|---|
| Runtime | None (static binary) | Node.js + npm | None (static binary) | Node.js + npm | Node.js + npm | Node.js + npm |
| Semantic versioning from commits | ✅ | ✅ | ❌ (tag-based) | ✅ | ✅ | ❌ (manual) |
| Scope-based bump rules | ✅ | ✅ | ❌ | ❌ | ❌ | ❌ |
| Air-gap / offline CI | ✅ Native | ❌ | ✅ | ❌ | ❌ | ❌ |
| Supply-chain security | Cosign + SBOM + SLSA | ❌ | Cosign | ❌ | ❌ | ❌ |
| Plugin language | Any binary | JavaScript | Go (built-in) | Hardcoded | JavaScript | JavaScript |
| Monorepo | ✅ Free | ✅ Free | ✅ Free (OSS) | ✅ | ✅ | ✅ |