# Feature catalog — semantic-release/semantic-release

> Canonical page: https://codevetter.com/unpack/semantic-release/feature-catalog

# Feature catalog — semantic-release/semantic-release

Scanned commit e8c2436e5704a6d1fa5b4aa69238f50edbe586bf (2026-09-21). Generated by codevetter codevetter 1.15.0 on 2026-10-02.

Source inspection; upstream code and tests were not executed.

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. — [cli.js#L23-L41](https://github.com/semantic-release/semantic-release/blob/e8c2436e5704a6d1fa5b4aa69238f50edbe586bf/cli.js#L23-L41)
- The JavaScript API accepts configurable cwd, env, stdout, and stderr and normally returns lastRelease, commits, nextRelease, and releases; skipped runs return false. — [index.js#L179-L181](https://github.com/semantic-release/semantic-release/blob/e8c2436e5704a6d1fa5b4aa69238f50edbe586bf/index.js#L179-L181) [index.js#L231-L231](https://github.com/semantic-release/semantic-release/blob/e8c2436e5704a6d1fa5b4aa69238f50edbe586bf/index.js#L231-L231) [index.js#L259-L270](https://github.com/semantic-release/semantic-release/blob/e8c2436e5704a6d1fa5b4aa69238f50edbe586bf/index.js#L259-L270) [index.d.ts#L525-L565](https://github.com/semantic-release/semantic-release/blob/e8c2436e5704a6d1fa5b4aa69238f50edbe586bf/index.d.ts#L525-L565)
- Commit analysis excludes messages containing [skip release] or [release skip], case-insensitively, and selects the highest patch/minor/major result across analyzers. — [lib/definitions/plugins.js#L15-L30](https://github.com/semantic-release/semantic-release/blob/e8c2436e5704a6d1fa5b4aa69238f50edbe586bf/lib/definitions/plugins.js#L15-L30) [lib/definitions/constants.js#L1-L1](https://github.com/semantic-release/semantic-release/blob/e8c2436e5704a6d1fa5b4aa69238f50edbe586bf/lib/definitions/constants.js#L1-L1)
- 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. — [lib/get-next-version.js#L5-L34](https://github.com/semantic-release/semantic-release/blob/e8c2436e5704a6d1fa5b4aa69238f50edbe586bf/lib/get-next-version.js#L5-L34) [lib/definitions/constants.js#L3-L5](https://github.com/semantic-release/semantic-release/blob/e8c2436e5704a6d1fa5b4aa69238f50edbe586bf/lib/definitions/constants.js#L3-L5)
- Branch configuration supports remote-name patterns, interpolated branch properties, maintenance branches, up to three regular release branches, and unique prerelease identifiers. — [lib/branches/expand.js#L5-L19](https://github.com/semantic-release/semantic-release/blob/e8c2436e5704a6d1fa5b4aa69238f50edbe586bf/lib/branches/expand.js#L5-L19) [lib/definitions/branches.js#L5-L21](https://github.com/semantic-release/semantic-release/blob/e8c2436e5704a6d1fa5b4aa69238f50edbe586bf/lib/definitions/branches.js#L5-L21)
- Maintenance and regular branches receive computed version ranges and accepted release types; prerelease branches receive an identifier and default channel based on their name. — [lib/branches/normalize.js#L16-L54](https://github.com/semantic-release/semantic-release/blob/e8c2436e5704a6d1fa5b4aa69238f50edbe586bf/lib/branches/normalize.js#L16-L54) [lib/branches/normalize.js#L58-L103](https://github.com/semantic-release/semantic-release/blob/e8c2436e5704a6d1fa5b4aa69238f50edbe586bf/lib/branches/normalize.js#L58-L103)
- Merged releases from higher non-prerelease branches can be added to the current distribution channel using addChannel, without creating a new version. — [lib/get-release-to-add.js#L20-L57](https://github.com/semantic-release/semantic-release/blob/e8c2436e5704a6d1fa5b4aa69238f50edbe586bf/lib/get-release-to-add.js#L20-L57) [index.js#L112-L151](https://github.com/semantic-release/semantic-release/blob/e8c2436e5704a6d1fa5b4aa69238f50edbe586bf/index.js#L112-L151)
- Dry-run permits verification, commit analysis, and note generation, skips preparation/publishing/channel/notification hooks, and prints generated notes in the terminal. — [lib/definitions/plugins.js#L10-L39](https://github.com/semantic-release/semantic-release/blob/e8c2436e5704a6d1fa5b4aa69238f50edbe586bf/lib/definitions/plugins.js#L10-L39) [lib/definitions/plugins.js#L52-L106](https://github.com/semantic-release/semantic-release/blob/e8c2436e5704a6d1fa5b4aa69238f50edbe586bf/lib/definitions/plugins.js#L52-L106) [index.js#L224-L229](https://github.com/semantic-release/semantic-release/blob/e8c2436e5704a6d1fa5b4aa69238f50edbe586bf/index.js#L224-L229)

Every claim links to its cited files at the pinned commit. Citations identify source evidence; they do not establish runtime correctness. Independent CodeVetter scan — not reviewed by upstream maintainers.

## Public product links

- [CodeVetter](https://codevetter.com/)
- [Download](https://codevetter.com/download)
- [Documentation](https://codevetter.com/docs/)
- [Source](https://github.com/Codevetter/codevetter)
