Move telemetry module into quire-core, delete quire-telemetry crate
Both consumers already pulled in all the same deps; the separate crate
was pure ceremony. quire-core::telemetry is the new home.
https://claude.ai/code/session_016ieFpQg1FfFhs6meg1aRom
diff --git a/Cargo.lock b/Cargo.lock
index 85e8c8c..5378367 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -2133,7 +2133,6 @@ dependencies = [
"miette",
"mlua",
"quire-core",
- "quire-telemetry",
"sentry",
"sentry-tracing",
"serde",
@@ -2155,11 +2154,13 @@ dependencies = [
"mlua",
"petgraph",
"regex",
+ "sentry",
"serde",
"serde_json",
"tempfile",
"thiserror",
"tracing",
+ "tracing-subscriber",
]
[[package]]
@@ -2180,7 +2181,6 @@ dependencies = [
"petgraph",
"predicates",
"quire-core",
- "quire-telemetry",
"regex",
"rusqlite",
"rusqlite_migration",
@@ -2200,17 +2200,6 @@ dependencies = [
"walkdir",
]
-[[package]]
-name = "quire-telemetry"
-version = "0.1.0"
-dependencies = [
- "miette",
- "sentry",
- "serde_json",
- "tracing",
- "tracing-subscriber",
-]
-
[[package]]
name = "quote"
version = "1.0.45"
diff --git a/Cargo.toml b/Cargo.toml
index 89e2bc0..c1877af 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -1,5 +1,5 @@
[workspace]
-members = ["quire-ci", "quire-core", "quire-server", "quire-telemetry"]
+members = ["quire-ci", "quire-core", "quire-server"]
resolver = "3"
[workspace.dependencies]
diff --git a/quire-ci/Cargo.toml b/quire-ci/Cargo.toml
index 179c59f..a607d29 100644
--- a/quire-ci/Cargo.toml
+++ b/quire-ci/Cargo.toml
@@ -10,7 +10,6 @@ jiff = { workspace = true }
miette = { workspace = true, features = ["fancy"] }
mlua = { workspace = true }
quire-core = { path = "../quire-core" }
-quire-telemetry = { path = "../quire-telemetry" }
sentry = { workspace = true }
sentry-tracing = { workspace = true }
serde = { workspace = true }
diff --git a/quire-ci/src/main.rs b/quire-ci/src/main.rs
index 3242207..519b7ed 100644
--- a/quire-ci/src/main.rs
+++ b/quire-ci/src/main.rs
@@ -211,7 +211,7 @@ fn main() -> miette::Result<()> {
// Drop order: `_sentry` flushes first (still inside the
// runtime), then `_enter`, then `rt`.
let _sentry = init_sentry(sentry_handoff.as_ref(), &meta);
- let miette_layer = quire_telemetry::MietteLayer::new()
+ let miette_layer = quire_core::telemetry::MietteLayer::new()
.with_type::<JobError>()
.with_type::<quire_core::fennel::FennelError>();
init_tracing(miette_layer)?;
@@ -237,7 +237,7 @@ fn init_sentry(
handoff.dsn.as_str(),
sentry::ClientOptions {
release: Some(VERSION.into()),
- before_send: Some(std::sync::Arc::new(quire_telemetry::before_send)),
+ before_send: Some(std::sync::Arc::new(quire_core::telemetry::before_send)),
..Default::default()
},
));
@@ -272,7 +272,7 @@ fn init_sentry(
/// Initialize tracing with a stderr fmt layer plus the sentry-tracing
/// bridge so `tracing::error!` (and warn, if configured) events show
/// up in Sentry alongside panics.
-fn init_tracing(miette_layer: quire_telemetry::MietteLayer) -> miette::Result<()> {
+fn init_tracing(miette_layer: quire_core::telemetry::MietteLayer) -> miette::Result<()> {
let filter = EnvFilter::builder()
.with_env_var("QUIRE_LOG")
.from_env()
diff --git a/quire-core/Cargo.toml b/quire-core/Cargo.toml
index aa9d6ea..d83c075 100644
--- a/quire-core/Cargo.toml
+++ b/quire-core/Cargo.toml
@@ -10,10 +10,12 @@ miette = { workspace = true }
mlua = { workspace = true }
petgraph = { workspace = true }
regex = { workspace = true }
+sentry = { workspace = true }
serde = { workspace = true }
+serde_json = { workspace = true }
thiserror = { workspace = true }
tracing = { workspace = true }
+tracing-subscriber = { workspace = true }
[dev-dependencies]
-serde_json = { workspace = true }
tempfile = { workspace = true }
diff --git a/quire-core/src/lib.rs b/quire-core/src/lib.rs
index f3f8311..d237d9c 100644
--- a/quire-core/src/lib.rs
+++ b/quire-core/src/lib.rs
@@ -4,3 +4,4 @@
pub mod ci;
pub mod fennel;
pub mod secret;
+pub mod telemetry;
diff --git a/quire-telemetry/src/lib.rs b/quire-core/src/telemetry.rs
similarity index 100%
rename from quire-telemetry/src/lib.rs
rename to quire-core/src/telemetry.rs
diff --git a/quire-server/Cargo.toml b/quire-server/Cargo.toml
index a9c6d5a..13f1a25 100644
--- a/quire-server/Cargo.toml
+++ b/quire-server/Cargo.toml
@@ -17,7 +17,6 @@ path = "src/bin/quire/main.rs"
[dependencies]
quire-core = { path = "../quire-core" }
-quire-telemetry = { path = "../quire-telemetry" }
fs-err = { workspace = true, features = ["tokio"] }
jiff = { workspace = true }
diff --git a/quire-server/src/bin/quire/main.rs b/quire-server/src/bin/quire/main.rs
index 44f741e..3670e1a 100644
--- a/quire-server/src/bin/quire/main.rs
+++ b/quire-server/src/bin/quire/main.rs
@@ -131,7 +131,7 @@ fn init_sentry(quire: &Quire) -> Option<ClientInitGuard> {
dsn,
sentry::ClientOptions {
release: Some(VERSION.into()),
- before_send: Some(std::sync::Arc::new(quire_telemetry::before_send)),
+ before_send: Some(std::sync::Arc::new(quire_core::telemetry::before_send)),
..Default::default()
},
));
@@ -143,7 +143,7 @@ fn init_sentry(quire: &Quire) -> Option<ClientInitGuard> {
///
/// Emits structured JSON when stderr is not a terminal (e.g. piped to a log
/// collector), and human-readable text when running interactively.
-fn init_tracing(miette_layer: quire_telemetry::MietteLayer) -> Result<()> {
+fn init_tracing(miette_layer: quire_core::telemetry::MietteLayer) -> Result<()> {
let filter = EnvFilter::builder()
.with_env_var("QUIRE_LOG")
.from_env()
@@ -175,7 +175,7 @@ async fn main() -> Result<()> {
None => Quire::default(),
};
let _sentry = init_sentry(&quire);
- let miette_layer = quire_telemetry::MietteLayer::new()
+ let miette_layer = quire_core::telemetry::MietteLayer::new()
.with_type::<quire::Error>()
.with_type::<quire::ci::Error>()
.with_type::<quire_core::fennel::FennelError>();
diff --git a/quire-telemetry/Cargo.toml b/quire-telemetry/Cargo.toml
deleted file mode 100644
index 987ee1c..0000000
--- a/quire-telemetry/Cargo.toml
+++ /dev/null
@@ -1,11 +0,0 @@
-[package]
-name = "quire-telemetry"
-version = "0.1.0"
-edition = "2024"
-
-[dependencies]
-miette = { workspace = true }
-sentry = { workspace = true }
-serde_json = { workspace = true }
-tracing = { workspace = true }
-tracing-subscriber = { workspace = true }