
semantic-release
Automatically works out the next version number, writes release notes, and publishes your package.
- Stars
- 24.1k
- Forks
- 1.8k
- Licence
- MIT
- Language
- JavaScript
- Last update
- 6 days ago
- Type
- Dev tool
What it is
semantic-release is a tool that runs in a continuous integration (CI) environment after code is merged. It reads your commit messages to decide whether the next release is a fix, a feature, or a breaking change, then assigns a matching Semantic Versioning number, generates release notes and a changelog, and publishes the package. The goal is to remove manual version bumping and publishing from the release process.
- Publish a new npm package version automatically whenever a fix or feature is merged to the main branch
- Generate release notes and a changelog from commit messages
- Publish pre-releases from a beta or next branch on a separate npm dist-tag
- Create Git tags for each new release version
Great for
- Maintainers of JavaScript packages who already use a CI service
- Teams that want consistent Semantic Versioning without manual version edits
- Projects that follow the Angular commit message convention or can adopt one
- Maintainers who want pre-release or maintenance channels such as npm dist-tags
Not ideal for
- Projects that do not use commit messages in a structured format, since version decisions depend on them
- Teams that want to choose version numbers by hand for each release
- Beginners with no CI setup, because the tool is meant to run inside CI after each build
How to get it
- 1
Install with a package manager
You'll need: Node.js · npm · Git
Clone the repository
git clone https://github.com/semantic-release/semantic-release.git - 2
Run it
- Set up a CI workflow that runs after your tests pass on a release branch
- Write commit messages using a format such as Angular conventions
- Run the semantic-release command in CI
- Check the Git tag, release notes, and published package after the first run
- 3
Get the most out of it
- Use shareable configurations to reuse one setup across projects
- Use distribution channels to publish pre-releases and maintenance releases
- Use the preset or config options to change the commit message format
- Enable npm provenance on GitHub Actions for signed supply-chain attestations
- Add commitlint or commitizen to enforce valid commit messages
Downloads
Strengths
- Version numbers follow the Semantic Versioning specification consistently
- Release steps are automated, which reduces manual publishing errors
- Plugin-based design supports different package managers and distribution channels
Trade-offs
- Relies on a strict commit message convention, which contributors must learn and follow
- Designed to run in CI on every release branch push, so setup requires CI knowledge
- The README provided is truncated, so detailed configuration and requirements could not be fully verified here
How it compares
| Project | Stars | Type | Level | Updated | Best for |
|---|---|---|---|---|---|
| semantic-release (this) | 24.1k | Dev tool | intermediate | 6 days ago | Maintainers of JavaScript packages who already use a CI service |
| changesets | 12.6k | Dev tool | intermediate | 5 days ago | Teams maintaining a monorepo with several interdependent packages |
| goreleaser | 16.1k | Dev tool | intermediate | 4 days ago | Go developers who want to publish command-line tools or binaries for several operating systems |
| lerna | 36k | Dev tool | intermediate | 5 days ago | JavaScript or TypeScript teams maintaining several related npm packages in one repository |
| cz-cli | 17.5k | Dev tool | beginner | 1 months ago | Teams that want every commit message to follow the same format |
| oh-my-claudecode | 40.5k | Dev tool | intermediate | 4 days ago | Developers already using Claude Code who want multi-agent workflows |
Stats synced from GitHub. The assessment above was drafted with AI from the project's README on 2026-10-29 and may miss recent changes — check the README before relying on a command. MIT licence: free to use, modify and distribute, including commercially, as long as you keep the copyright notice.