Skip to main content

Crate standard_version

Crate standard_version 

Source
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

§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(&current, 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.properties version file engine.
json
JSON version file engines for package.json and deno.json/deno.jsonc.
pubspec
pubspec.yaml version 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 VERSION file engine.

Structs§

BumpSummary
Summary of analysed commits for display purposes.

Enums§

BumpLevel
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, .0 is 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 version value in a TOML string’s [package] section while preserving formatting.
summarise
Summarise a list of conventional commits for display purposes.