Publish harness and TUI open-source
initial sync from the monorepo
This commit is contained in:
commit
c68e39f604
2734 changed files with 1437016 additions and 0 deletions
12
crates/codegen/xai-grok-version/Cargo.toml
Normal file
12
crates/codegen/xai-grok-version/Cargo.toml
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
[package]
|
||||
license = "Apache-2.0"
|
||||
name = "xai-grok-version"
|
||||
version = "0.2.0-dev"
|
||||
edition.workspace = true
|
||||
description = "Lockstepped grok CLI version."
|
||||
|
||||
[dependencies]
|
||||
semver = { workspace = true }
|
||||
|
||||
[lints]
|
||||
workspace = true
|
||||
3
crates/codegen/xai-grok-version/build.rs
Normal file
3
crates/codegen/xai-grok-version/build.rs
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
fn main() {
|
||||
println!("cargo:rerun-if-env-changed=GROK_VERSION");
|
||||
}
|
||||
75
crates/codegen/xai-grok-version/src/lib.rs
Normal file
75
crates/codegen/xai-grok-version/src/lib.rs
Normal file
|
|
@ -0,0 +1,75 @@
|
|||
//! Installed grok CLI version, lockstepped with shipping binaries.
|
||||
|
||||
use semver::Version;
|
||||
|
||||
pub const TEST_VERSION_ENV: &str = "GROK_TEST_VERSION";
|
||||
|
||||
pub const VERSION: &str = match option_env!("GROK_VERSION") {
|
||||
Some(v) => v,
|
||||
None => env!("CARGO_PKG_VERSION"),
|
||||
};
|
||||
|
||||
/// [`TEST_VERSION_ENV`] override first, then [`VERSION`]. Trimmed so
|
||||
/// non-semver-aware callers can pass the result straight into parsing.
|
||||
pub fn installed() -> String {
|
||||
std::env::var(TEST_VERSION_ENV)
|
||||
.map(|v| v.trim().to_string())
|
||||
.unwrap_or_else(|_| VERSION.to_string())
|
||||
}
|
||||
|
||||
pub fn installed_semver() -> Result<Version, semver::Error> {
|
||||
Version::parse(&installed())
|
||||
}
|
||||
|
||||
/// Format the compiled version with a channel label for user-facing display.
|
||||
///
|
||||
/// `channel_label` is a pre-formatted suffix such as `" [alpha]"`, `" [stable]"`,
|
||||
/// or `""` (empty when no cached pointer is available). Obtain it from
|
||||
/// `xai_grok_update::channel_label()`.
|
||||
///
|
||||
/// Example: `"0.2.5 [stable]"` or `"0.2.5 [alpha]"`.
|
||||
pub fn display_version(channel_label: &str) -> String {
|
||||
format!("{}{}", VERSION, channel_label)
|
||||
}
|
||||
|
||||
/// Format a version-with-commit string with a channel label.
|
||||
///
|
||||
/// Same semantics as [`display_version`] but for the full
|
||||
/// `"0.2.5 (abc1234)"` string.
|
||||
pub fn display_version_with_commit(version_with_commit: &str, channel_label: &str) -> String {
|
||||
format!("{}{}", version_with_commit, channel_label)
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
use super::*;
|
||||
|
||||
/// Display formatting invariant matrix — verifies label appending
|
||||
/// works correctly across all label states (alpha, stable, empty).
|
||||
#[test]
|
||||
fn test_display_version_formatting_matrix() {
|
||||
let cases: &[(&str, &str, &str)] = &[
|
||||
// (version_with_commit, label, expected_suffix)
|
||||
("0.2.5 (abc1234)", " [alpha]", "0.2.5 (abc1234) [alpha]"),
|
||||
("0.2.5 (abc1234)", " [stable]", "0.2.5 (abc1234) [stable]"),
|
||||
("0.2.5 (abc1234)", "", "0.2.5 (abc1234)"),
|
||||
(
|
||||
"0.1.220-alpha.2 (def0)",
|
||||
" [alpha]",
|
||||
"0.1.220-alpha.2 (def0) [alpha]",
|
||||
),
|
||||
];
|
||||
for (vwc, label, expected) in cases {
|
||||
assert_eq!(
|
||||
display_version_with_commit(vwc, label),
|
||||
*expected,
|
||||
"display_version_with_commit({:?}, {:?})",
|
||||
vwc,
|
||||
label,
|
||||
);
|
||||
}
|
||||
// display_version uses compiled VERSION — just verify the label appends
|
||||
assert_eq!(display_version(""), VERSION);
|
||||
assert!(display_version(" [stable]").ends_with("[stable]"));
|
||||
}
|
||||
}
|
||||
Loading…
Reference in a new issue