Common System 0.2.0
Common interfaces and patterns for system integration
Loading...
Searching...
No Matches
kcenon::common::version_info Struct Reference

Version information for Common System. More...

#include <common.h>

Collaboration diagram for kcenon::common::version_info:
Collaboration graph

Static Public Attributes

static constexpr int major = 0
 Major version - incremented for breaking changes.
 
static constexpr int minor = 2
 Minor version - incremented for new features.
 
static constexpr int patch = 0
 Patch version - incremented for bug fixes.
 
static constexpr int tweak = 0
 Tweak version - build metadata (not part of SemVer 2.0.0)
 
static constexpr const char * string = "0.2.0.0"
 Version as human-readable string (MAJOR.MINOR.PATCH.TWEAK format)
 

Detailed Description

Version information for Common System.

This structure provides compile-time version information for the common_system library. It follows Semantic Versioning (SemVer) 2.0.0 principles with an additional tweak component for build identification.

Version number format: MAJOR.MINOR.PATCH.TWEAK

  • MAJOR: Incremented for incompatible API changes
  • MINOR: Incremented for backward-compatible functionality additions
  • PATCH: Incremented for backward-compatible bug fixes
  • TWEAK: Build metadata for internal tracking (not part of SemVer 2.0.0)

Note on Tweak Field: The tweak field is an extension beyond SemVer 2.0.0 specification. It serves as build metadata for:

  • CI/CD pipeline build numbers
  • Internal release candidates (e.g., 1.0.0.1, 1.0.0.2 for RC1, RC2)
  • Distinguishing multiple builds of the same version

For SemVer-compliant version comparison, only compare major.minor.patch. The tweak field should not affect version precedence in dependency resolution.

Usage:

// Check version at compile time
"Requires common_system v1.0.0 or later");
// Print version at runtime
std::cout << "common_system version: "
// SemVer-compliant comparison (ignore tweak)
bool is_newer = (v1.major > v2.major) ||
(v1.major == v2.major && v1.minor > v2.minor) ||
(v1.major == v2.major && v1.minor == v2.minor &&
v1.patch > v2.patch);
static constexpr const char * string
Version as human-readable string (MAJOR.MINOR.PATCH.TWEAK format)
Definition common.h:104
static constexpr int major
Major version - incremented for breaking changes.
Definition common.h:86
See also
https://semver.org/ for Semantic Versioning specification

Definition at line 84 of file common.h.

Member Data Documentation

◆ major

int kcenon::common::version_info::major = 0
staticconstexpr

Major version - incremented for breaking changes.

Definition at line 86 of file common.h.

◆ minor

int kcenon::common::version_info::minor = 2
staticconstexpr

Minor version - incremented for new features.

Definition at line 88 of file common.h.

◆ patch

int kcenon::common::version_info::patch = 0
staticconstexpr

Patch version - incremented for bug fixes.

Definition at line 90 of file common.h.

◆ string

const char* kcenon::common::version_info::string = "0.2.0.0"
staticconstexpr

Version as human-readable string (MAJOR.MINOR.PATCH.TWEAK format)

Definition at line 104 of file common.h.

◆ tweak

int kcenon::common::version_info::tweak = 0
staticconstexpr

Tweak version - build metadata (not part of SemVer 2.0.0)

This field extends SemVer for internal use cases:

  • CI/CD build numbers
  • Release candidate identification
  • Multiple builds of the same semantic version
Note
Do not use for version precedence comparisons. SemVer 2.0.0 specifies only MAJOR.MINOR.PATCH for ordering.

Definition at line 102 of file common.h.


The documentation for this struct was generated from the following file: