CodeVetter · Repo Unpack · Feature catalog
semantic-release/semantic-release
Users configure a single release command or invoke the asynchronous API. Features cover commit-driven versions, notes, branch channels, maintenance ranges, prereleases, and promotion of previously released versions. Plugins provide configurable preparation, publishing, verification, and notification behavior.
- The CLI exposes branches, repository URL, tag format, plugins, shareable configurations, CI verification, debugging, dry-run, help, and lifecycle-specific plugin options.
- The JavaScript API accepts configurable cwd, env, stdout, and stderr and normally returns lastRelease, commits, nextRelease, and releases; skipped runs return false.
- Commit analysis excludes messages containing [skip release] or [release skip], case-insensitively, and selects the highest patch/minor/major result across analyzers.
- First releases start at 1.0.0; prerelease branches append their identifier and start at .1, while later releases increment according to analysis and channel history.
- Branch configuration supports remote-name patterns, interpolated branch properties, maintenance branches, up to three regular release branches, and unique prerelease identifiers.
- Maintenance and regular branches receive computed version ranges and accepted release types; prerelease branches receive an identifier and default channel based on their name.
- Merged releases from higher non-prerelease branches can be added to the current distribution channel using addChannel, without creating a new version.
- Dry-run permits verification, commit analysis, and note generation, skips preparation/publishing/channel/notification hooks, and prints generated notes in the terminal.