rskit-version 0.2.0-alpha.2

Build-time version and git metadata for rskit
Documentation

rskit-version

Build-time version and git metadata for rskit, captured at compile time via build.rs.

Installation

[dependencies]
rskit-version = { path = "../rskit-version" }

Quick Start

use rskit_version::{get_version_info, get_short_version, get_full_version, package_semver};

fn main() {
    let info = get_version_info();
    println!("{}", info.version);       // e.g. "0.1.0-alpha.1"
    println!("{}", info.git_commit);    // e.g. "a1b2c3d4..."
    println!("{}", info.git_branch);    // e.g. "main"
    println!("{}", info.rust_version);  // e.g. "rustc 1.91.0 ..."

    println!("{}", get_short_version()); // "0.1.0-alpha.1-a1b2c3d"
    println!("{}", get_full_version());  // "0.1.0-alpha.1-a1b2c3d (built 2024-01-15T10:30:00Z)"
    println!("{:?}", package_semver());   // Some(Version { major: 0, minor: 1, patch: 0 })
}

How It Works

The build.rs script runs at compile time to capture:

Variable Source
version CARGO_PKG_VERSION from Cargo.toml
git_commit git rev-parse HEAD
git_branch git rev-parse --abbrev-ref HEAD
build_time UTC timestamp at build time (captured as Unix epoch, formatted to RFC 3339)
rust_version rustc --version

Key Types & Functions

Name Description
VersionInfo Struct with version, git_commit, git_branch, build_time, rust_version, is_release
get_version_info() Returns full VersionInfo
get_short_version() Returns version-commit string
get_full_version() Returns detailed version string with branch and build time
is_release() true when version is not "dev" and does not contain "dirty"
package_semver() Returns the package version parsed as SemVer
semver SemVer parsing and requirement helpers backed by the semver crate

Cross-Kit Consistency

This crate mirrors the API of:

  • gokitversion.VersionInfo / version.GetVersionInfo()
  • pykitpykit_version.VersionInfo / pykit_version.get_version_info()

⬅ Back to main README