Crate bumpversion

Source
Expand description

§Bumpversion

A library for bumping version numbers in projects based on configuration files and version control metadata.

§Examples

use bumpversion::{
  BumpVersion,
  Bump,
  diagnostics::Printer,
  vcs::{TagAndRevision, VersionControlSystem, git::GitRepository},
  logging,
  config,
};
use std::path::PathBuf;

// Locate and parse the configuration
let repo_path: PathBuf = ".".into();
let printer = Printer::stderr(None);

// find and parse configuration
let (config_file, mut config) = bumpversion::find_config(
  &repo_path,
  &Default::default(),
  &printer,
).await?.unwrap();

// open version control system
let repo = GitRepository::open(&repo_path)?;
let components = config::version::version_component_configs(&config);

// build resolved file map
let file_map = bumpversion::files::resolve_files_from_config(
  &mut config,
  &components,
  Some(repo.path()),
)?;

let TagAndRevision { tag, revision } = repo.latest_tag_and_revision(
  &config.global.tag_name,
  &config.global.parse_version_pattern,
)
.await?;

let logger = logging::TracingLogger::new(logging::Verbosity::High);
let manager = BumpVersion {
  repo,
  config,
  logger,
  tag_and_revision: TagAndRevision { tag, revision },
  file_map,
  components,
  config_file: Some(config_file),
};
manager.bump(Bump::Component("patch")).await?;

Modules§

command
Utilities for running and checking external commands.
config
Configuration parsing and merging.
context
Helpers for constructing template contexts used in version serialization and tags. Context construction for template rendering of version strings and tags.
diagnostics
Diagnostics utilities for reporting and emitting parsing errors with source spans.
f_string
Parsing support for Python-style format strings used in version templates.
files
File operations for searching and replacing version strings in project files.
hooks
Hook execution for setup, pre-commit, and post-commit scripts.
logging
Logging utilities for formatting version and change output based on verbosity.
vcs
Version control integration layer.
version

Structs§

BumpVersion
Manager for performing version bumps in a repository.

Enums§

Bump
Specifies which version bump to perform.
BumpError
Errors that can occur when performing a version bump.

Functions§

apply_modifications
find_config
Find config file in one of the default config file locations.