Expand description
Semantic version bump calculation from conventional commits.
Pure library — computes the next version from a list of parsed conventional commits and bump rules. No I/O, no git operations.
§Main entry points
determine_bump— analyse commits and return the bump levelapply_bump— apply a bump level to a semver versionapply_prerelease— bump with a pre-release tag (e.g.rc.0)replace_version_in_toml— update the version in aCargo.tomlstring
§Example
use standard_version::{determine_bump, apply_bump, BumpLevel};
let commits = vec![
standard_commit::parse("feat: add login").unwrap(),
standard_commit::parse("fix: handle timeout").unwrap(),
];
let level = determine_bump(&commits).unwrap();
assert_eq!(level, BumpLevel::Minor);
let current = semver::Version::new(1, 2, 3);
let next = apply_bump(¤t, level);
assert_eq!(next, semver::Version::new(1, 3, 0));Structs§
- Bump
Summary - Summary of analysed commits for display purposes.
Enums§
- Bump
Level - The level of version bump to apply.
Functions§
- apply_
bump - Apply a bump level to a semver version, returning the new version.
- apply_
prerelease - Apply a pre-release bump. If the current version already has a pre-release
tag matching
tag, the numeric suffix is incremented. Otherwise,.0is appended to the bumped version. - determine_
bump - Analyse a list of conventional commits and return the highest applicable bump level.
- replace_
version_ in_ toml - Replace the
versionvalue in a TOML string’s[package]section while preserving formatting. - summarise
- Summarise a list of conventional commits for display purposes.