Versioning: INBUXA's own dated version, with the Stalwart base shown

inbuxa --version, the banner, startup events, OpenTelemetry and the JMAP
implementation string read "2026.9.18 (Stalwart 0.16.22)". The base comes
from Cargo, which keeps following upstream so version bumps merge cleanly.
Received headers and IMAP ID carry the INBUXA version.
This commit is contained in:
2026-09-18 12:08:41 -07:00
parent bde11d54c3
commit faedf7a1da
10 changed files with 70 additions and 16 deletions
+2 -2
View File
@@ -543,10 +543,10 @@ impl Metrics {
let metrics = bp.setting_infallible::<structs::Metrics>().await;
let resource = Resource::builder()
.with_service_name("stalwart")
.with_attribute(KeyValue::new(SERVICE_VERSION, env!("CARGO_PKG_VERSION")))
.with_attribute(KeyValue::new(SERVICE_VERSION, types::brand_version_full!()))
.build();
let instrumentation = InstrumentationScope::builder("stalwart")
.with_version(env!("CARGO_PKG_VERSION"))
.with_version(types::brand_version_full!())
.build();
Metrics {
+1 -1
View File
@@ -79,7 +79,7 @@ pub static VERSION_PRIVATE: &str = env!("CARGO_PKG_VERSION");
pub static VERSION_PUBLIC: &str = "1.0.0";
pub static USER_AGENT: &str = concat!(types::brand!(), "/1.0.0");
pub static DAEMON_NAME: &str = concat!(types::brand!(), " v", env!("CARGO_PKG_VERSION"),);
pub static DAEMON_NAME: &str = concat!(types::brand!(), " v", types::brand_version!(),);
pub static PROD_ID: &str = types::brand_prodid!();
/*
+6 -6
View File
@@ -39,8 +39,8 @@ pub struct IpcReceivers {
const HELP: &str = concat!(
types::brand_server!(),
" v",
env!("CARGO_PKG_VERSION"),
" ",
types::brand_version_full!(),
r#"
Usage: inbuxa [OPTIONS]
@@ -88,7 +88,7 @@ impl BootManager {
std::process::exit(0);
}
("version" | "V", _) => {
println!("{}", env!("CARGO_PKG_VERSION"));
println!("{}", types::brand_version_full!());
std::process::exit(0);
}
("config" | "c", Some(value)) => {
@@ -166,20 +166,20 @@ impl BootManager {
Hostname = bootstrap.registry.local_hostname().to_string(),
Details =
"No configuration file was found. Port 8080 is open for initial setup.",
Version = env!("CARGO_PKG_VERSION"),
Version = types::brand_version_full!(),
);
} else if bootstrap.registry.is_recovery_mode() {
trc::event!(
Server(trc::ServerEvent::RecoveryMode),
Details = "Port 8080 is open for troubleshooting and recovery.",
Hostname = bootstrap.registry.local_hostname().to_string(),
Version = env!("CARGO_PKG_VERSION"),
Version = types::brand_version_full!(),
);
} else {
trc::event!(
Server(trc::ServerEvent::Startup),
Hostname = bootstrap.registry.local_hostname().to_string(),
Version = env!("CARGO_PKG_VERSION"),
Version = types::brand_version_full!(),
);
}
+2 -2
View File
@@ -13,8 +13,8 @@ use store::{Deserialize, IterateParams, SUBSPACE_INDEXES, SUBSPACE_REGISTRY_IDX,
const HELP: &str = concat!(
types::brand_server!(),
" v",
env!("CARGO_PKG_VERSION"),
" ",
types::brand_version_full!(),
r#" Data Store CLI
Enter commands (type 'help' for available commands).
+2 -2
View File
@@ -28,11 +28,11 @@ pub(crate) fn spawn_otel_tracer(builder: SubscriberBuilder, mut otel: OtelTracer
tokio::spawn(async move {
let resource = Resource::builder()
.with_service_name("stalwart")
.with_attribute(KeyValue::new(SERVICE_VERSION, env!("CARGO_PKG_VERSION")))
.with_attribute(KeyValue::new(SERVICE_VERSION, types::brand_version_full!()))
.build();
let instrumentation = InstrumentationScope::builder("stalwart")
.with_version(env!("CARGO_PKG_VERSION"))
.with_version(types::brand_version_full!())
.build();
otel.log_exporter.set_resource(&resource);