From f1c6a5b707319ed3c2ed5e6d7dbdcedd5cb9b2a0 Mon Sep 17 00:00:00 2001 From: "NG (Graham)" Date: Sun, 8 Feb 2026 11:18:25 -0500 Subject: [PATCH] Add git commit hash to intercom status version reporting --- Cargo.lock | 9 ++++++--- Cargo.toml | 4 ++-- rc_chat_room/src/main.rs | 5 ++++- rc_lobby_room/Cargo.toml | 1 + rc_lobby_room/src/main.rs | 5 ++++- rc_multiplayer/Cargo.toml | 1 + rc_multiplayer/src/main.rs | 5 ++++- rc_services_room/Cargo.toml | 1 + rc_services_room/src/main.rs | 5 ++++- rc_singleplayer_room/Cargo.toml | 1 + rc_singleplayer_room/src/main.rs | 5 ++++- rc_social_room/Cargo.toml | 1 + rc_social_room/src/main.rs | 5 ++++- 13 files changed, 37 insertions(+), 11 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 7eeed19..7fc84fd 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2592,6 +2592,7 @@ dependencies = [ "chrono", "clap", "env_logger", + "git-version", "log", "oj_polariton_auth", "oj_rc_core", @@ -2627,6 +2628,7 @@ dependencies = [ "chrono", "clap", "env_logger", + "git-version", "literustlib", "literustlib_server", "log", @@ -2668,6 +2670,7 @@ dependencies = [ "clap", "env_logger", "futures", + "git-version", "hex", "libfj", "log", @@ -2704,6 +2707,7 @@ dependencies = [ "chrono", "clap", "env_logger", + "git-version", "log", "oj_polariton_auth", "oj_rc_core", @@ -2734,6 +2738,7 @@ dependencies = [ "chrono", "clap", "env_logger", + "git-version", "log", "oj_polariton_auth", "oj_rc_core", @@ -2745,9 +2750,7 @@ dependencies = [ [[package]] name = "oj_serdes" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "986fe9d0d1382b2e04678db42e8e3754b8263203b590bfca72b18751250bbb72" +version = "0.3.0" dependencies = [ "quick-xml", "serde", diff --git a/Cargo.toml b/Cargo.toml index 7a9c80e..4be04b5 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -49,5 +49,5 @@ rand = { version = "0.9", features = [ "thread_rng" ] } num-quaternion = "1.0" hex = "0.4" base64 = "0.22" -#oj_serdes = { version = "0.2.0", path = "../oj_core/serdes" } -oj_serdes = "0.2.0" +oj_serdes = { version = "0.3.0", path = "../oj_core/serdes" } +#oj_serdes = "0.2.0" diff --git a/rc_chat_room/src/main.rs b/rc_chat_room/src/main.rs index 5c01cb6..32b1edc 100644 --- a/rc_chat_room/src/main.rs +++ b/rc_chat_room/src/main.rs @@ -289,12 +289,15 @@ async fn do_connect_handshake( } pub async fn update_status(user_info: &dyn oj_rc_core::persist::user::IntercomUser) { + let version = env!("CARGO_PKG_VERSION"); + let git_version = git_version::git_version!(args = ["--always", "--dirty=+"]); + let full_version = format!("{}:{}", version, git_version); user_info.update_status( env!("CARGO_PKG_NAME"), oj_serdes::ServerStatus { uptime_s: (chrono::Utc::now().timestamp() - crate::START_TIMESTAMP_S.load(std::sync::atomic::Ordering::Relaxed)).try_into().unwrap_or_default(), players: ONLINE_USERS.load(std::sync::atomic::Ordering::SeqCst), - version: env!("CARGO_PKG_VERSION").to_owned(), + version: full_version, }, ).await; } diff --git a/rc_lobby_room/Cargo.toml b/rc_lobby_room/Cargo.toml index 4e1aa12..f28dd4e 100644 --- a/rc_lobby_room/Cargo.toml +++ b/rc_lobby_room/Cargo.toml @@ -18,5 +18,6 @@ polariton_server.workspace = true oj_rc_core = { version = "*", path = "../rc_core" } oj_rc_factory = { version = "*", path = "../rc_factory" } async-trait.workspace = true +git-version.workspace = true chrono.workspace = true oj_serdes.workspace = true diff --git a/rc_lobby_room/src/main.rs b/rc_lobby_room/src/main.rs index 3ca234f..8b71e2f 100644 --- a/rc_lobby_room/src/main.rs +++ b/rc_lobby_room/src/main.rs @@ -301,12 +301,15 @@ async fn do_connect_handshake( } pub async fn update_status(user_info: &dyn oj_rc_core::persist::user::IntercomUser) { + let version = env!("CARGO_PKG_VERSION"); + let git_version = git_version::git_version!(args = ["--always", "--dirty=+"]); + let full_version = format!("{}:{}", version, git_version); user_info.update_status( env!("CARGO_PKG_NAME"), oj_serdes::ServerStatus { uptime_s: (chrono::Utc::now().timestamp() - crate::START_TIMESTAMP_S.load(std::sync::atomic::Ordering::Relaxed)).try_into().unwrap_or_default(), players: ONLINE_USERS.load(std::sync::atomic::Ordering::SeqCst), - version: env!("CARGO_PKG_VERSION").to_owned(), + version: full_version, }, ).await; } diff --git a/rc_multiplayer/Cargo.toml b/rc_multiplayer/Cargo.toml index 42a0893..a8bd9f2 100644 --- a/rc_multiplayer/Cargo.toml +++ b/rc_multiplayer/Cargo.toml @@ -20,6 +20,7 @@ chrono.workspace = true atomic_float = "1.1" num-quaternion.workspace = true rand.workspace = true +git-version.workspace = true literustlib_server = { version = "0.4", path = "../../LiteRustLib/server" } literustlib = { version = "0.4", path = "../../LiteRustLib" } diff --git a/rc_multiplayer/src/main.rs b/rc_multiplayer/src/main.rs index e69022e..b4a151a 100644 --- a/rc_multiplayer/src/main.rs +++ b/rc_multiplayer/src/main.rs @@ -60,12 +60,15 @@ async fn main() -> std::io::Result<()> { } pub async fn update_status(user_info: &dyn oj_rc_core::persist::user::IntercomUser, player_count: u64) { + let version = env!("CARGO_PKG_VERSION"); + let git_version = git_version::git_version!(args = ["--always", "--dirty=+"]); + let full_version = format!("{}:{}", version, git_version); user_info.update_status( env!("CARGO_PKG_NAME"), oj_serdes::ServerStatus { uptime_s: (chrono::Utc::now().timestamp() - crate::START_TIMESTAMP_S.load(std::sync::atomic::Ordering::Relaxed)).try_into().unwrap_or_default(), players: player_count, - version: env!("CARGO_PKG_VERSION").to_owned(), + version: full_version, }, ).await; } diff --git a/rc_services_room/Cargo.toml b/rc_services_room/Cargo.toml index 1c5c8b4..4ae8612 100644 --- a/rc_services_room/Cargo.toml +++ b/rc_services_room/Cargo.toml @@ -24,5 +24,6 @@ oj_rc_core = { version = "*", path = "../rc_core" } oj_rc_factory = { version = "*", path = "../rc_factory" } rand.workspace = true async-trait.workspace = true +git-version.workspace = true libfj.workspace = true oj_serdes.workspace = true diff --git a/rc_services_room/src/main.rs b/rc_services_room/src/main.rs index e724d6e..505f627 100644 --- a/rc_services_room/src/main.rs +++ b/rc_services_room/src/main.rs @@ -313,12 +313,15 @@ async fn do_connect_handshake( } pub async fn update_status(user_info: &dyn oj_rc_core::persist::user::IntercomUser) { + let version = env!("CARGO_PKG_VERSION"); + let git_version = git_version::git_version!(args = ["--always", "--dirty=+"]); + let full_version = format!("{}:{}", version, git_version); user_info.update_status( env!("CARGO_PKG_NAME"), oj_serdes::ServerStatus { uptime_s: (chrono::Utc::now().timestamp() - crate::START_TIMESTAMP_S.load(std::sync::atomic::Ordering::Relaxed)).try_into().unwrap_or_default(), players: ONLINE_USERS.load(std::sync::atomic::Ordering::SeqCst), - version: env!("CARGO_PKG_VERSION").to_owned(), + version: full_version, }, ).await; } diff --git a/rc_singleplayer_room/Cargo.toml b/rc_singleplayer_room/Cargo.toml index fbf863a..bef5133 100644 --- a/rc_singleplayer_room/Cargo.toml +++ b/rc_singleplayer_room/Cargo.toml @@ -17,5 +17,6 @@ oj_polariton_auth = { version = "*", path = "../polariton_auth" } polariton_server.workspace = true oj_rc_core = { version = "*", path = "../rc_core" } async-trait.workspace = true +git-version.workspace = true chrono.workspace = true oj_serdes.workspace = true diff --git a/rc_singleplayer_room/src/main.rs b/rc_singleplayer_room/src/main.rs index 9544afc..67566f1 100644 --- a/rc_singleplayer_room/src/main.rs +++ b/rc_singleplayer_room/src/main.rs @@ -291,12 +291,15 @@ async fn do_connect_handshake( } pub async fn update_status(user_info: &dyn oj_rc_core::persist::user::IntercomUser) { + let version = env!("CARGO_PKG_VERSION"); + let git_version = git_version::git_version!(args = ["--always", "--dirty=+"]); + let full_version = format!("{}:{}", version, git_version); user_info.update_status( env!("CARGO_PKG_NAME"), oj_serdes::ServerStatus { uptime_s: (chrono::Utc::now().timestamp() - crate::START_TIMESTAMP_S.load(std::sync::atomic::Ordering::Relaxed)).try_into().unwrap_or_default(), players: ONLINE_USERS.load(std::sync::atomic::Ordering::SeqCst), - version: env!("CARGO_PKG_VERSION").to_owned(), + version: full_version, }, ).await; } diff --git a/rc_social_room/Cargo.toml b/rc_social_room/Cargo.toml index 38115fe..d9c9974 100644 --- a/rc_social_room/Cargo.toml +++ b/rc_social_room/Cargo.toml @@ -17,5 +17,6 @@ oj_polariton_auth = { version = "*", path = "../polariton_auth" } polariton_server.workspace = true oj_rc_core = { version = "*", path = "../rc_core" } async-trait.workspace = true +git-version.workspace = true chrono.workspace = true oj_serdes.workspace = true diff --git a/rc_social_room/src/main.rs b/rc_social_room/src/main.rs index 1c109f3..0168711 100644 --- a/rc_social_room/src/main.rs +++ b/rc_social_room/src/main.rs @@ -276,12 +276,15 @@ async fn do_connect_handshake( } pub async fn update_status(user_info: &dyn oj_rc_core::persist::user::IntercomUser) { + let version = env!("CARGO_PKG_VERSION"); + let git_version = git_version::git_version!(args = ["--always", "--dirty=+"]); + let full_version = format!("{}:{}", version, git_version); user_info.update_status( env!("CARGO_PKG_NAME"), oj_serdes::ServerStatus { uptime_s: (chrono::Utc::now().timestamp() - crate::START_TIMESTAMP_S.load(std::sync::atomic::Ordering::Relaxed)).try_into().unwrap_or_default(), players: ONLINE_USERS.load(std::sync::atomic::Ordering::SeqCst), - version: env!("CARGO_PKG_VERSION").to_owned(), + version: full_version, }, ).await; }