From 845577726d265d1bac062bdd25ca1e299af9276a Mon Sep 17 00:00:00 2001 From: Rodolfo Olivieri Date: Wed, 11 Feb 2026 11:10:09 -0300 Subject: [PATCH] Group dependencies in root Cargo.toml (#6948) Signed-off-by: Rodolfo Olivieri --- Cargo.toml | 42 +++++++++++++++++++++------ crates/goose-acp/Cargo.toml | 24 ++++++++-------- crates/goose-cli/Cargo.toml | 37 ++++++++++++------------ crates/goose-mcp/Cargo.toml | 26 ++++++++--------- crates/goose-server/Cargo.toml | 36 +++++++++++------------ crates/goose-test/Cargo.toml | 2 +- crates/goose/Cargo.toml | 52 +++++++++++++++++----------------- 7 files changed, 122 insertions(+), 97 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index c8d41b498e..060e47a6c2 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -17,22 +17,48 @@ string_slice = "warn" [workspace.dependencies] rmcp = { version = "0.14.0", features = ["schemars", "auth"] } anyhow = "1.0" +async-stream = "0.3" +async-trait = "0.1" +axum = "0.8" +base64 = "0.22.1" +bytes = "1" +chrono = { version = "0.4", features = ["serde"] } +clap = { version = "4", features = ["derive"] } +dirs = "5.0" +dotenvy = "0.15" +env-lock = "1.0.1" +etcetera = "0.11.0" +fs2 = "0.4" futures = "0.3" +http = "1.0" +ignore = "0.4.25" +include_dir = "0.7.4" +indoc = "2.0" +lru = "0.16" +once_cell = "1.20" +rand = "0.8" regex = "1.12" +reqwest = { version = "0.12.28", default-features = false, features = ["multipart"] } +schemars = { default-features = false, version = "1.0" } +serde = { version = "1.0", features = ["derive"] } serde_json = "1.0" +serde_yaml = "0.9" +shellexpand = "3.1" +tempfile = "3" +thiserror = "1.0" tokio = { version = "1.49", features = ["full"] } +tokio-stream = "0.1" +tokio-util = "0.7" +tower-http = "0.6.8" tracing = "0.1" +tracing-appender = "0.2" +tracing-subscriber = "0.3" +urlencoding = "2.1" +utoipa = "4.1" +uuid = { version = "1.11", features = ["v4"] } webbrowser = "1.0" which = "8.0.0" -etcetera = "0.11.0" -ignore = "0.4.25" -crunchy = "0.2.4" -env-lock = "1.0.1" wiremock = "0.6" serial_test = "3.2.0" test-case = "3.3.1" -base64 = "0.22.1" -reqwest = { version = "0.12.28", default-features = false, features = ["multipart"] } -tower = "0.5.2" -tower-http = "0.6.8" url = "2.5.8" diff --git a/crates/goose-acp/Cargo.toml b/crates/goose-acp/Cargo.toml index 507df29a6f..261920bcd4 100644 --- a/crates/goose-acp/Cargo.toml +++ b/crates/goose-acp/Cargo.toml @@ -22,7 +22,7 @@ sacp = "10.1.0" agent-client-protocol-schema = { version = "0.10", features = ["unstable_session_model"] } anyhow = { workspace = true } tokio = { workspace = true } -tokio-util = { version = "0.7.15", features = ["compat", "rt"] } +tokio-util = { workspace = true, features = ["compat", "rt"] } tracing = { workspace = true } serde_json = { workspace = true } futures = { workspace = true } @@ -31,22 +31,22 @@ fs-err = "3" url = { workspace = true } # HTTP server dependencies -axum = { version = "0.8", features = ["ws"] } -clap = { version = "4", features = ["derive"] } -serde = { version = "1.0", features = ["derive"] } -tower-http = { version = "0.6", features = ["cors"] } -tracing-subscriber = { version = "0.3", features = ["env-filter", "json"] } -async-stream = "0.3.6" -bytes = "1.11.0" +axum = { workspace = true, features = ["ws"] } +clap = { workspace = true } +serde = { workspace = true } +tower-http = { workspace = true, features = ["cors"] } +tracing-subscriber = { workspace = true, features = ["env-filter", "json"] } +async-stream = { workspace = true } +bytes = { workspace = true } http-body-util = "0.1.3" -uuid = { version = "1.11", features = ["v7"] } +uuid = { workspace = true, features = ["v7"] } [dev-dependencies] assert-json-diff = "2.0.2" -async-trait = "0.1.89" +async-trait = { workspace = true } goose-test-support = { path = "../goose-test-support" } wiremock = { workspace = true } -tempfile = "3" +tempfile = { workspace = true } test-case = { workspace = true } -axum = "0.8" +axum = { workspace = true } rmcp = { workspace = true, features = ["transport-streamable-http-server"] } diff --git a/crates/goose-cli/Cargo.toml b/crates/goose-cli/Cargo.toml index a2f2bb7bda..a1bdd1fb8d 100644 --- a/crates/goose-cli/Cargo.toml +++ b/crates/goose-cli/Cargo.toml @@ -24,41 +24,41 @@ goose = { path = "../goose" } goose-acp = { path = "../goose-acp" } goose-mcp = { path = "../goose-mcp" } rmcp = { workspace = true } -clap = { version = "4.4", features = ["derive"] } +clap = { workspace = true } cliclack = "0.3.5" console = "0.16.1" -uuid = { version = "1.11", features = ["v4"] } -dotenvy = "0.15.7" +uuid = { workspace = true } +dotenvy = { workspace = true } bat = { version = "0.26.1", default-features = false, features = ["regex-onig"] } anyhow = { workspace = true } serde_json = { workspace = true } tokio = { workspace = true } futures = { workspace = true } -serde = { version = "1.0", features = ["derive"] } # For serialization -serde_yaml = "0.9" -tempfile = "3" +serde = { workspace = true } +serde_yaml = { workspace = true } +tempfile = { workspace = true } etcetera = { workspace = true } -rand = "0.8.5" +rand = { workspace = true } rustyline = "15.0.0" tracing = { workspace = true } -chrono = "0.4" -tracing-subscriber = { version = "0.3", features = ["env-filter", "fmt", "json", "time"] } -tracing-appender = "0.2" +chrono = { workspace = true } +tracing-subscriber = { workspace = true, features = ["env-filter", "fmt", "json", "time"] } +tracing-appender = { workspace = true } shlex = "1.3.0" -async-trait = "0.1.89" +async-trait = { workspace = true } base64 = { workspace = true } -regex = "1.11.1" +regex = { workspace = true } tar = "0.4" # Web server dependencies -axum = { version = "0.8.1", features = ["ws", "macros"] } +axum = { workspace = true, features = ["ws", "macros"] } tower-http = { workspace = true, features = ["cors", "fs", "auth"] } -http = "1.0" -webbrowser = {workspace = true} +http = { workspace = true } +webbrowser = { workspace = true } indicatif = "0.18.1" -tokio-util = { version = "0.7.15", features = ["compat", "rt"] } +tokio-util = { workspace = true, features = ["compat", "rt"] } anstream = "0.6.18" open = "5.3.2" -urlencoding = "2.1" +urlencoding = { workspace = true } clap_complete = "4.5.62" [target.'cfg(target_os = "windows")'.dependencies] @@ -69,6 +69,5 @@ winapi = { version = "0.3", features = ["wincred"] } disable-update = [] [dev-dependencies] -tempfile = "3" +tempfile = { workspace = true } tokio = { workspace = true } - diff --git a/crates/goose-mcp/Cargo.toml b/crates/goose-mcp/Cargo.toml index fe7f3cc45d..58c346b552 100644 --- a/crates/goose-mcp/Cargo.toml +++ b/crates/goose-mcp/Cargo.toml @@ -14,32 +14,32 @@ workspace = true rmcp = { workspace = true, features = ["server", "client", "transport-io", "macros"] } anyhow = { workspace = true } tokio = { workspace = true } -tokio-stream = { version = "0.1", features = ["io-util"] } +tokio-stream = { workspace = true, features = ["io-util"] } tracing = { workspace = true } -tracing-subscriber = { version = "0.3", features = ["env-filter"] } -tracing-appender = "0.2" +tracing-subscriber = { workspace = true, features = ["env-filter"] } +tracing-appender = { workspace = true } url = { workspace = true } base64 = { workspace = true } -serde = { version = "1.0", features = ["derive"] } +serde = { workspace = true } serde_json = { workspace = true } -schemars = "1.0" -shellexpand = "3.1.0" -indoc = "2.0.5" +schemars = { workspace = true } +shellexpand = { workspace = true } +indoc = { workspace = true } xcap = "=0.4.0" reqwest = { workspace = true, features = ["json", "rustls-tls-native-roots", "system-proxy"], default-features = false } -chrono = { version = "0.4.38", features = ["serde"] } +chrono = { workspace = true } etcetera = { workspace = true } -tempfile = "3.8" -include_dir = "0.7.4" +tempfile = { workspace = true } +include_dir = { workspace = true } regex = { workspace = true } -once_cell = "1.20.2" +once_cell = { workspace = true } ignore = { workspace = true } lopdf = "0.36.0" docx-rs = "0.4.7" image = { version = "0.24.9", features = ["jpeg"] } umya-spreadsheet = "2.2.3" which = {workspace = true} -lru = "0.16" +lru = { workspace = true } tree-sitter = "0.26" tree-sitter-python = "0.25" tree-sitter-rust = "0.24" @@ -55,7 +55,7 @@ libc = "0.2" # for fuzzy patch matching. Current crate has limited maintenance (single maintainer, # ~1000 downloads). Pinned to exact version to prevent supply chain attacks. mpatch = "=0.2.0" -tokio-util = "0.7.16" +tokio-util = { workspace = true } [dev-dependencies] serial_test = { workspace = true } diff --git a/crates/goose-server/Cargo.toml b/crates/goose-server/Cargo.toml index df35bb5bad..575d5467f1 100644 --- a/crates/goose-server/Cargo.toml +++ b/crates/goose-server/Cargo.toml @@ -18,39 +18,39 @@ cuda = ["goose/cuda"] goose = { path = "../goose" } goose-mcp = { path = "../goose-mcp" } rmcp = { workspace = true } -axum = { version = "0.8.1", features = ["ws", "macros"] } +axum = { workspace = true, features = ["ws", "macros"] } tokio = { workspace = true } -chrono = "0.4" +chrono = { workspace = true } tower-http = { workspace = true, features = ["cors"] } -serde = { version = "1.0", features = ["derive"] } +serde = { workspace = true } serde_json = { workspace = true, features = ["preserve_order"] } futures = { workspace = true } tracing = { workspace = true } -tracing-subscriber = { version = "0.3", features = ["env-filter", "fmt", "json", "time"] } -tracing-appender = "0.2" -tokio-stream = "0.1" +tracing-subscriber = { workspace = true, features = ["env-filter", "fmt", "json", "time"] } +tracing-appender = { workspace = true } +tokio-stream = { workspace = true } anyhow = { workspace = true } -bytes = "1.5" -http = "1.0" +bytes = { workspace = true } +http = { workspace = true } base64 = { workspace = true } config = { version = "0.15.13", features = ["toml"] } -thiserror = "1.0" -clap = { version = "4.4", features = ["derive"] } -serde_yaml = "0.9.34" -utoipa = { version = "4.1", features = ["axum_extras", "chrono"] } +thiserror = { workspace = true } +clap = { workspace = true } +serde_yaml = { workspace = true } +utoipa = { workspace = true, features = ["axum_extras", "chrono"] } reqwest = { workspace = true, features = ["json", "rustls-tls", "blocking", "multipart", "system-proxy"], default-features = false } -tokio-util = "0.7.15" +tokio-util = { workspace = true } serde_path_to_error = "0.1.20" tokio-tungstenite = { version = "0.28.0", features = ["rustls-tls-native-roots"] } url = { workspace = true } rand = "0.9.2" hex = "0.4.3" socket2 = "0.6.1" -fs2 = "0.4.3" +fs2 = { workspace = true } rustls = { version = "0.23", features = ["ring"] } -uuid = { version = "1.19.0", features = ["v4"] } -once_cell = "1.20.2" -dirs = "5.0" +uuid = { workspace = true } +once_cell = { workspace = true } +dirs = { workspace = true } [target.'cfg(windows)'.dependencies] winreg = { version = "0.55.0" } @@ -64,6 +64,6 @@ name = "generate_schema" path = "src/bin/generate_schema.rs" [dev-dependencies] -tower = { workspace = true } +tower = "0.5.2" env-lock = { workspace = true } wiremock = { workspace = true } diff --git a/crates/goose-test/Cargo.toml b/crates/goose-test/Cargo.toml index feb1755c37..bae6ce32d0 100644 --- a/crates/goose-test/Cargo.toml +++ b/crates/goose-test/Cargo.toml @@ -15,5 +15,5 @@ name = "capture" path = "src/bin/capture.rs" [dependencies] -clap = { version = "4.5.44", features = ["derive"] } +clap = { workspace = true } serde_json = { workspace = true } diff --git a/crates/goose/Cargo.toml b/crates/goose/Cargo.toml index c95734bff3..95f4333250 100644 --- a/crates/goose/Cargo.toml +++ b/crates/goose/Cargo.toml @@ -15,7 +15,7 @@ cuda = ["candle-core/cuda", "candle-nn/cuda"] workspace = true [dependencies] -lru = "0.16" +lru = { workspace = true } rmcp = { workspace = true, features = [ "client", "reqwest", @@ -24,34 +24,34 @@ rmcp = { workspace = true, features = [ "transport-streamable-http-client-reqwest", ] } anyhow = { workspace = true } -thiserror = "1.0" +thiserror = { workspace = true } futures = { workspace = true } -dirs = "5.0" +dirs = { workspace = true } reqwest = { workspace = true, features = ["rustls-tls-native-roots", "json", "cookies", "gzip", "brotli", "deflate", "zstd", "charset", "http2", "stream", "blocking", "multipart", "system-proxy"], default-features = false } tokio = { workspace = true } -serde = { version = "1.0", features = ["derive"] } +serde = { workspace = true } serde_json = { workspace = true } serde_urlencoded = "0.7" jsonschema = "0.30.0" -uuid = { version = "1.0", features = ["v4"] } +uuid = { workspace = true } regex = { workspace = true } -async-trait = "0.1.89" -async-stream = "0.3" +async-trait = { workspace = true } +async-stream = { workspace = true } minijinja = { version = "2.12.0", features = ["loader"] } -include_dir = "0.7.4" +include_dir = { workspace = true } tiktoken-rs = "0.6.0" -chrono = { version = "0.4.38", features = ["serde"] } -clap = { version = "4.4", features = ["derive"] } -indoc = "2.0.5" +chrono = { workspace = true } +clap = { workspace = true } +indoc = { workspace = true } nanoid = "0.4" sha2 = "0.10" base64 = { workspace = true } url = { workspace = true } -axum = "0.8.1" +axum = { workspace = true } webbrowser = { workspace = true } lazy_static = "1.5.0" tracing = { workspace = true } -tracing-subscriber = "0.3" +tracing-subscriber = { workspace = true } tracing-opentelemetry = "0.28" opentelemetry = "0.27" opentelemetry-appender-tracing = "0.27" @@ -66,13 +66,13 @@ keyring = { version = "3.6.2", features = [ "sync-secret-service", "vendored", ] } -serde_yaml = "0.9.34" -once_cell = "1.20.2" +serde_yaml = { workspace = true } +once_cell = { workspace = true } etcetera = { workspace = true } -rand = "0.8.5" -utoipa = { version = "4.1", features = ["chrono"] } +rand = { workspace = true } +utoipa = { workspace = true, features = ["chrono"] } tokio-cron-scheduler = "0.14.0" -urlencoding = "2.1" +urlencoding = { workspace = true } v_htmlescape = "0.15" sqlx = { version = "0.8", default-features = false, features = [ "runtime-tokio-rustls", @@ -95,12 +95,12 @@ aws-sdk-sagemakerruntime = "1.62.0" jsonwebtoken = "9.3.1" blake3 = "1.5" -fs2 = "0.4.3" -tokio-stream = "0.1.17" -tempfile = "3.15.0" +fs2 = { workspace = true } +tokio-stream = { workspace = true } +tempfile = { workspace = true } dashmap = "6.1" ahash = "0.8" -tokio-util = { version = "0.7.15", features = ["compat"] } +tokio-util = { workspace = true, features = ["compat"] } unicode-normalization = "0.1" goose-mcp = { path = "../goose-mcp" } @@ -116,13 +116,13 @@ rubato = "0.16" zip = "0.6" sys-info = "0.9" -schemars = { version = "1.0.4", default-features = false, features = [ +schemars = { workspace = true, features = [ "derive", ] } insta = "1.43.2" paste = "1.0.0" posthog-rs = "0.3.7" -shellexpand = "3.1.1" +shellexpand = { workspace = true } indexmap = "2.12.0" ignore = { workspace = true } which = { workspace = true } @@ -142,8 +142,8 @@ serial_test = { workspace = true } mockall = "0.13.1" wiremock = { workspace = true } tokio = { workspace = true } -tokio-util = { version = "0.7.15", features = ["compat"] } -dotenvy = "0.15.7" +tokio-util = { workspace = true, features = ["compat"] } +dotenvy = { workspace = true } ctor = "0.2.9" test-case = { workspace = true } env-lock = { workspace = true }