Expand description
Semantic version bump calculation from conventional commits.
Computes the next version from a list of parsed conventional commits and
bump rules. Also provides the VersionFile trait for ecosystem-specific
version file detection and updating, with built-in support for
Cargo.toml via CargoVersionFile, pyproject.toml via
PyprojectVersionFile, package.json via JsonVersionFile,
deno.json/deno.jsonc via DenoVersionFile, pubspec.yaml via
PubspecVersionFile, gradle.properties via GradleVersionFile,
and plain VERSION files via PlainVersionFile.
§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.tomlstringupdate_version_files— discover and update version files at a repo root
§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));Re-exports§
pub use cargo::CargoVersionFile;pub use gradle::GradleVersionFile;pub use json::DenoVersionFile;pub use json::JsonVersionFile;pub use pubspec::PubspecVersionFile;pub use pyproject::PyprojectVersionFile;pub use regex_engine::RegexVersionFile;pub use version_file::CustomVersionFile;pub use version_file::DetectedFile;pub use version_file::UpdateResult;pub use version_file::VersionFile;pub use version_file::VersionFileError;pub use version_file::detect_version_files;pub use version_file::update_version_files;pub use version_plain::PlainVersionFile;
Modules§
- calver
- Calendar versioning (calver) support.
- cargo
- Cargo.toml version file engine.
- gradle
gradle.propertiesversion file engine.- json
- JSON version file engines for
package.jsonanddeno.json/deno.jsonc. - pubspec
pubspec.yamlversion file engine.- pyproject
- pyproject.toml version file engine.
- regex_
engine - Regex-based version file engine for user-defined
[[version_files]]. - toml_
helpers - Shared helpers for TOML section-based version scanning.
- version_
file - Version file detection and updating.
- version_
plain - Plain
VERSIONfile engine.
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.