version_bump/plugins/commit_analyzer
The commit-analyzer plugin: determines the release type implied by a set
of conventional commits, mirroring @semantic-release/commit-analyzer.
Rules (the highest matching type wins):
- any breaking change -> Major
- else any
feat-> Minor - else any
fixorperf-> Patch - otherwise -> no release
The pure analyze function holds all the logic so it can be unit-tested
without a context; plugin/0 wraps it as the analyze_commits hook.
Values
pub fn analyze(
commits: List(commit_parser.ConventionalCommit),
) -> option.Option(semver.ReleaseType)
Determine the release type for a list of conventional commits.
Returns the highest release type any commit warrants, or None when no
commit triggers a release. This is the pure core of the plugin.
pub fn plugin() -> plugin.Plugin
The commit-analyzer plugin, implementing only analyze_commits.