From semantic-release to semrel
This guide targets teams currently using semantic-release and migrating to semrel.
Mapping at a glance
Section titled “Mapping at a glance”| semantic-release concern | semrel equivalent |
|---|---|
| Commit analyzer plugins | analyzer plugin (analyzer-default / analyzer-conventional) |
| Release notes/changelog plugins | generator plugins (generator-release-notes, generator-changelog-*) |
| npm/github/docker publish plugins | publisher plugins (publisher-oci, publisher-generic-http) + CI publish jobs |
Recommended rollout
Section titled “Recommended rollout”- Keep your existing branch and trigger policy unchanged.
- Add semrel in dry-run mode and compare computed version + notes with semantic-release output.
- Switch changelog/release note generation to semrel generators.
- Switch publishing from semantic-release plugins to semrel publishers.
- Disable semantic-release tagging/publishing after one stable release cycle.
Typical semrel baseline
Section titled “Typical semrel baseline”plugins: - uses: @semrel/github
- uses: @semrel/conventional
- uses: @semrel/release-notes
- uses: @semrel/changelog-md args: file: CHANGELOG.mdPublishing replacement examples
Section titled “Publishing replacement examples”- npm package flow: keep
npm publishin CI after semrel determines version and changelog. - GitHub release assets: use your CI upload step or plugin-based publishing.
- OCI/image or generic artifacts: use
@semrel/ocior@semrel/generic-http.
Risks and checks
Section titled “Risks and checks”- Ensure only one system creates tags.
- Compare at least 10 recent commits in dry-run to validate version parity.
- Move credentials to
SEMREL_PLUGIN_*environment variables.