From 4c39b06776bd0a597c708f8f835e4aac5e6ee6b1 Mon Sep 17 00:00:00 2001 From: MatthewMckee4 Date: Mon, 13 Apr 2026 00:51:40 +0100 Subject: [PATCH 1/2] Fix incorrect `karva --version` --- Cargo.lock | 8 +++++++- Cargo.toml | 1 + crates/karva/Cargo.toml | 3 ++- crates/karva/src/commands/version.rs | 6 +----- crates/karva/src/lib.rs | 1 - crates/karva/src/version.rs | 19 ------------------- crates/karva_cli/Cargo.toml | 1 + crates/karva_cli/src/lib.rs | 2 +- crates/karva_version/Cargo.toml | 15 +++++++++++++++ crates/karva_version/src/lib.rs | 16 ++++++++++++++++ seal.toml | 2 +- 11 files changed, 45 insertions(+), 29 deletions(-) delete mode 100644 crates/karva/src/version.rs create mode 100644 crates/karva_version/Cargo.toml create mode 100644 crates/karva_version/src/lib.rs diff --git a/Cargo.lock b/Cargo.lock index 1443f130..76a4d903 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1063,7 +1063,7 @@ dependencies = [ [[package]] name = "karva" -version = "0.0.1-alpha.4" +version = "0.0.0" dependencies = [ "anyhow", "argfile", @@ -1086,6 +1086,7 @@ dependencies = [ "karva_runner", "karva_snapshot", "karva_static", + "karva_version", "notify-debouncer-mini", "regex", "rstest", @@ -1135,6 +1136,7 @@ dependencies = [ "clap", "karva_logging", "karva_metadata", + "karva_version", "ruff_db", ] @@ -1328,6 +1330,10 @@ dependencies = [ "tracing", ] +[[package]] +name = "karva_version" +version = "0.0.1-alpha.4" + [[package]] name = "karva_worker" version = "0.0.0" diff --git a/Cargo.toml b/Cargo.toml index 240b3c90..f6f2ea10 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -27,6 +27,7 @@ karva_runner = { path = "crates/karva_runner" } karva_snapshot = { path = "crates/karva_snapshot" } karva_static = { path = "crates/karva_static" } karva_test_semantic = { path = "crates/karva_test_semantic" } +karva_version = { path = "crates/karva_version" } karva_worker = { path = "crates/karva_worker" } anyhow = { version = "1.0.102" } diff --git a/crates/karva/Cargo.toml b/crates/karva/Cargo.toml index 4b6164c2..d4f6950c 100644 --- a/crates/karva/Cargo.toml +++ b/crates/karva/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "karva" -version = "0.0.1-alpha.4" +version = "0.0.0" default-run = "karva" edition = { workspace = true } @@ -26,6 +26,7 @@ karva_python_semantic = { workspace = true } karva_runner = { workspace = true } karva_snapshot = { workspace = true } karva_static = { workspace = true } +karva_version = { workspace = true } anyhow = { workspace = true } argfile = { workspace = true } diff --git a/crates/karva/src/commands/version.rs b/crates/karva/src/commands/version.rs index c540c626..52d54ad4 100644 --- a/crates/karva/src/commands/version.rs +++ b/crates/karva/src/commands/version.rs @@ -5,11 +5,7 @@ use karva_logging::Printer; pub fn version() -> Result<()> { let mut stdout = Printer::default().stream_for_requested_summary().lock(); - if let Some(version_info) = crate::version::version() { - writeln!(stdout, "karva {}", &version_info)?; - } else { - writeln!(stdout, "Failed to get karva version")?; - } + writeln!(stdout, "karva {}", karva_version::version())?; Ok(()) } diff --git a/crates/karva/src/lib.rs b/crates/karva/src/lib.rs index 9daea7d4..ec582576 100644 --- a/crates/karva/src/lib.rs +++ b/crates/karva/src/lib.rs @@ -9,7 +9,6 @@ use karva_cli::{Args, Command}; mod commands; mod utils; -mod version; pub fn karva_main(f: impl FnOnce(Vec) -> Vec) -> ExitStatus { run(f).unwrap_or_else(|error| { diff --git a/crates/karva/src/version.rs b/crates/karva/src/version.rs deleted file mode 100644 index 2be0464b..00000000 --- a/crates/karva/src/version.rs +++ /dev/null @@ -1,19 +0,0 @@ -use std::fmt; - -pub struct VersionInfo { - version: String, -} - -impl fmt::Display for VersionInfo { - fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { - write!(f, "{}", self.version)?; - - Ok(()) - } -} - -pub fn version() -> Option { - option_env!("CARGO_PKG_VERSION").map(|version| VersionInfo { - version: version.to_string(), - }) -} diff --git a/crates/karva_cli/Cargo.toml b/crates/karva_cli/Cargo.toml index 6aa08020..14f76bd5 100644 --- a/crates/karva_cli/Cargo.toml +++ b/crates/karva_cli/Cargo.toml @@ -12,6 +12,7 @@ license.workspace = true [dependencies] karva_logging = { workspace = true } karva_metadata = { workspace = true } +karva_version = { workspace = true } camino = { workspace = true } clap = { workspace = true, features = ["wrap_help", "string", "env"] } diff --git a/crates/karva_cli/src/lib.rs b/crates/karva_cli/src/lib.rs index 0f1baba2..0cedb6f8 100644 --- a/crates/karva_cli/src/lib.rs +++ b/crates/karva_cli/src/lib.rs @@ -61,7 +61,7 @@ impl Verbosity { #[derive(Debug, Parser)] #[command(author, name = "karva", about = "A Python test runner.")] -#[command(version)] +#[command(version = karva_version::version())] #[command(styles = STYLES)] pub struct Args { #[command(subcommand)] diff --git a/crates/karva_version/Cargo.toml b/crates/karva_version/Cargo.toml new file mode 100644 index 00000000..828f8079 --- /dev/null +++ b/crates/karva_version/Cargo.toml @@ -0,0 +1,15 @@ +[package] +name = "karva_version" +version = "0.0.1-alpha.4" +edition.workspace = true +rust-version.workspace = true +homepage.workspace = true +documentation.workspace = true +repository.workspace = true +authors.workspace = true +license.workspace = true + +[dependencies] + +[lints] +workspace = true diff --git a/crates/karva_version/src/lib.rs b/crates/karva_version/src/lib.rs new file mode 100644 index 00000000..4cba7005 --- /dev/null +++ b/crates/karva_version/src/lib.rs @@ -0,0 +1,16 @@ +/// Return the application version. +/// +/// This should be in sync with the release version based on the crate version. +pub fn version() -> &'static str { + env!("CARGO_PKG_VERSION") +} + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn test_get_version() { + assert_eq!(version().to_string(), env!("CARGO_PKG_VERSION").to_string()); + } +} diff --git a/seal.toml b/seal.toml index 59201310..099d9be3 100644 --- a/seal.toml +++ b/seal.toml @@ -3,7 +3,7 @@ current-version = "0.0.1-alpha.4" version-files = [ "README.md", - "crates/karva/Cargo.toml", + "crates/karva_version/Cargo.toml", "crates/karva_python/Cargo.toml", "pyproject.toml", "python/karva/__init__.py", From 8263c12b333e51042dd31b77041a7314c91c57d0 Mon Sep 17 00:00:00 2001 From: MatthewMckee4 Date: Mon, 13 Apr 2026 00:53:07 +0100 Subject: [PATCH 2/2] . --- Cargo.lock | 2 +- crates/karva/Cargo.toml | 2 +- seal.toml | 1 + 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 76a4d903..69f80a82 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1063,7 +1063,7 @@ dependencies = [ [[package]] name = "karva" -version = "0.0.0" +version = "0.0.1-alpha.4" dependencies = [ "anyhow", "argfile", diff --git a/crates/karva/Cargo.toml b/crates/karva/Cargo.toml index d4f6950c..5b1695f0 100644 --- a/crates/karva/Cargo.toml +++ b/crates/karva/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "karva" -version = "0.0.0" +version = "0.0.1-alpha.4" default-run = "karva" edition = { workspace = true } diff --git a/seal.toml b/seal.toml index 099d9be3..c81cc4d6 100644 --- a/seal.toml +++ b/seal.toml @@ -3,6 +3,7 @@ current-version = "0.0.1-alpha.4" version-files = [ "README.md", + "crates/karva/Cargo.toml", "crates/karva_version/Cargo.toml", "crates/karva_python/Cargo.toml", "pyproject.toml",