diff --git a/Cargo.lock b/Cargo.lock index 9e69dd1..2cb7ead 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1185,7 +1185,7 @@ dependencies = [ [[package]] name = "hello-world-with-auth" -version = "0.10.0" +version = "0.12.0" dependencies = [ "anyhow", "async-trait", @@ -2297,7 +2297,7 @@ dependencies = [ [[package]] name = "pulseengine-mcp-auth" -version = "0.11.0" +version = "0.12.0" dependencies = [ "aes-gcm", "anyhow", @@ -2336,7 +2336,7 @@ dependencies = [ [[package]] name = "pulseengine-mcp-cli" -version = "0.11.0" +version = "0.12.0" dependencies = [ "clap", "pulseengine-mcp-cli-derive", @@ -2344,6 +2344,7 @@ dependencies = [ "pulseengine-mcp-protocol", "serde", "serde_json", + "serial_test", "tempfile", "thiserror 2.0.12", "tokio-test", @@ -2355,7 +2356,7 @@ dependencies = [ [[package]] name = "pulseengine-mcp-cli-derive" -version = "0.11.0" +version = "0.12.0" dependencies = [ "async-trait", "clap", @@ -2365,6 +2366,7 @@ dependencies = [ "pulseengine-mcp-server", "quote", "serde", + "serial_test", "syn 2.0.104", "thiserror 2.0.12", "tokio", @@ -2373,7 +2375,7 @@ dependencies = [ [[package]] name = "pulseengine-mcp-external-validation" -version = "0.11.0" +version = "0.12.0" dependencies = [ "anyhow", "arbitrary", @@ -2411,7 +2413,7 @@ dependencies = [ [[package]] name = "pulseengine-mcp-integration-tests" -version = "0.11.0" +version = "0.12.0" dependencies = [ "anyhow", "assert_matches", @@ -2439,7 +2441,7 @@ dependencies = [ [[package]] name = "pulseengine-mcp-logging" -version = "0.11.0" +version = "0.12.0" dependencies = [ "chrono", "hex", @@ -2458,7 +2460,7 @@ dependencies = [ [[package]] name = "pulseengine-mcp-macros" -version = "0.11.0" +version = "0.12.0" dependencies = [ "anyhow", "async-trait", @@ -2484,7 +2486,7 @@ dependencies = [ [[package]] name = "pulseengine-mcp-monitoring" -version = "0.11.0" +version = "0.12.0" dependencies = [ "anyhow", "chrono", @@ -2504,7 +2506,7 @@ dependencies = [ [[package]] name = "pulseengine-mcp-protocol" -version = "0.11.0" +version = "0.12.0" dependencies = [ "async-trait", "chrono", @@ -2521,7 +2523,7 @@ dependencies = [ [[package]] name = "pulseengine-mcp-security" -version = "0.11.0" +version = "0.12.0" dependencies = [ "anyhow", "async-trait", @@ -2543,7 +2545,7 @@ dependencies = [ [[package]] name = "pulseengine-mcp-security-middleware" -version = "0.11.0" +version = "0.12.0" dependencies = [ "anyhow", "assert_matches", @@ -2561,6 +2563,7 @@ dependencies = [ "rand 0.8.5", "serde", "serde_json", + "serial_test", "sha2", "tempfile", "thiserror 2.0.12", @@ -2575,7 +2578,7 @@ dependencies = [ [[package]] name = "pulseengine-mcp-server" -version = "0.11.0" +version = "0.12.0" dependencies = [ "anyhow", "async-trait", @@ -2603,7 +2606,7 @@ dependencies = [ [[package]] name = "pulseengine-mcp-transport" -version = "0.11.0" +version = "0.12.0" dependencies = [ "anyhow", "async-stream", @@ -3024,6 +3027,15 @@ version = "1.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f" +[[package]] +name = "scc" +version = "2.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "46e6f046b7fef48e2660c57ed794263155d713de679057f2d0c169bfc6e756cc" +dependencies = [ + "sdd", +] + [[package]] name = "schannel" version = "0.1.27" @@ -3099,6 +3111,12 @@ dependencies = [ "untrusted", ] +[[package]] +name = "sdd" +version = "3.0.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "490dcfcbfef26be6800d11870ff2df8774fa6e86d047e3e8c8a76b25655e41ca" + [[package]] name = "security-framework" version = "2.11.1" @@ -3209,6 +3227,31 @@ dependencies = [ "unsafe-libyaml", ] +[[package]] +name = "serial_test" +version = "3.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b258109f244e1d6891bf1053a55d63a5cd4f8f4c30cf9a1280989f80e7a1fa9" +dependencies = [ + "futures", + "log", + "once_cell", + "parking_lot", + "scc", + "serial_test_derive", +] + +[[package]] +name = "serial_test_derive" +version = "3.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d69265a08751de7844521fd15003ae0a888e035773ba05695c5c759a6f89eef" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.104", +] + [[package]] name = "sha1" version = "0.10.6" diff --git a/Cargo.toml b/Cargo.toml index 8ad23f6..bc5d2a2 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -30,7 +30,7 @@ members = [ resolver = "2" [workspace.package] -version = "0.11.0" +version = "0.12.0" rust-version = "1.88" edition = "2024" license = "MIT OR Apache-2.0" @@ -108,18 +108,18 @@ assert_matches = "1.5" serde_yaml = "0.9" # Framework internal dependencies (published versions) -pulseengine-mcp-protocol = { version = "0.11.0", path = "mcp-protocol" } -pulseengine-mcp-logging = { version = "0.11.0", path = "mcp-logging" } -pulseengine-mcp-auth = { version = "0.11.0", path = "mcp-auth" } -pulseengine-mcp-security = { version = "0.11.0", path = "mcp-security" } -pulseengine-mcp-security-middleware = { version = "0.11.0", path = "mcp-security-middleware" } -pulseengine-mcp-monitoring = { version = "0.11.0", path = "mcp-monitoring" } -pulseengine-mcp-transport = { version = "0.11.0", path = "mcp-transport" } -pulseengine-mcp-cli = { version = "0.11.0", path = "mcp-cli" } -pulseengine-mcp-cli-derive = { version = "0.11.0", path = "mcp-cli-derive" } -pulseengine-mcp-server = { version = "0.11.0", path = "mcp-server" } -pulseengine-mcp-macros = { version = "0.11.0", path = "mcp-macros" } -pulseengine-mcp-external-validation = { version = "0.11.0", path = "mcp-external-validation" } +pulseengine-mcp-protocol = { version = "0.12.0", path = "mcp-protocol" } +pulseengine-mcp-logging = { version = "0.12.0", path = "mcp-logging" } +pulseengine-mcp-auth = { version = "0.12.0", path = "mcp-auth" } +pulseengine-mcp-security = { version = "0.12.0", path = "mcp-security" } +pulseengine-mcp-security-middleware = { version = "0.12.0", path = "mcp-security-middleware" } +pulseengine-mcp-monitoring = { version = "0.12.0", path = "mcp-monitoring" } +pulseengine-mcp-transport = { version = "0.12.0", path = "mcp-transport" } +pulseengine-mcp-cli = { version = "0.12.0", path = "mcp-cli" } +pulseengine-mcp-cli-derive = { version = "0.12.0", path = "mcp-cli-derive" } +pulseengine-mcp-server = { version = "0.12.0", path = "mcp-server" } +pulseengine-mcp-macros = { version = "0.12.0", path = "mcp-macros" } +pulseengine-mcp-external-validation = { version = "0.12.0", path = "mcp-external-validation" } [profile.release] opt-level = "s" diff --git a/examples/hello-world-with-auth/Cargo.toml b/examples/hello-world-with-auth/Cargo.toml index 2b696b8..3877e61 100644 --- a/examples/hello-world-with-auth/Cargo.toml +++ b/examples/hello-world-with-auth/Cargo.toml @@ -1,8 +1,8 @@ [package] name = "hello-world-with-auth" -version = "0.10.0" -rust-version = "1.88" -edition = "2024" +version.workspace = true +rust-version.workspace = true +edition.workspace = true publish = false [dependencies] diff --git a/mcp-cli-derive/Cargo.toml b/mcp-cli-derive/Cargo.toml index 46b84f3..f772362 100644 --- a/mcp-cli-derive/Cargo.toml +++ b/mcp-cli-derive/Cargo.toml @@ -33,3 +33,4 @@ clap = { version = "4.0", features = ["derive"] } serde = { version = "1.0", features = ["derive"] } tokio = { version = "1.0", features = ["macros", "rt-multi-thread"] } thiserror = { workspace = true } +serial_test = "3.0" diff --git a/mcp-cli-derive/tests/test_mcp_config.rs b/mcp-cli-derive/tests/test_mcp_config.rs index f2a8253..c9db8be 100644 --- a/mcp-cli-derive/tests/test_mcp_config.rs +++ b/mcp-cli-derive/tests/test_mcp_config.rs @@ -358,6 +358,7 @@ mod integration_tests { /// Test environment variable support #[test] + #[serial_test::serial] fn test_env_var_support() { use std::env; diff --git a/mcp-cli/Cargo.toml b/mcp-cli/Cargo.toml index 2569f99..69f2273 100644 --- a/mcp-cli/Cargo.toml +++ b/mcp-cli/Cargo.toml @@ -40,3 +40,4 @@ derive = ["pulseengine-mcp-cli-derive"] [dev-dependencies] tokio-test = "0.4" tempfile = "3.0" +serial_test = "3.0" diff --git a/mcp-cli/src/config_tests.rs b/mcp-cli/src/config_tests.rs index 8168be1..52c3041 100644 --- a/mcp-cli/src/config_tests.rs +++ b/mcp-cli/src/config_tests.rs @@ -147,6 +147,7 @@ fn test_env_utils_get_env_or_default() { } #[test] +#[serial_test::serial] fn test_env_utils_with_set_env_var() { use env_utils::*; @@ -183,6 +184,7 @@ fn test_env_utils_get_required_env_missing() { } #[test] +#[serial_test::serial] fn test_env_utils_get_required_env_present() { use env_utils::*; @@ -204,6 +206,7 @@ fn test_env_utils_get_required_env_present() { } #[test] +#[serial_test::serial] fn test_env_utils_get_required_env_invalid_type() { use env_utils::*; @@ -231,6 +234,7 @@ fn test_env_utils_get_required_env_invalid_type() { } #[test] +#[serial_test::serial] fn test_env_utils_get_required_env_valid_type() { use env_utils::*; diff --git a/mcp-security-middleware/Cargo.toml b/mcp-security-middleware/Cargo.toml index de8fe3f..0a839e3 100644 --- a/mcp-security-middleware/Cargo.toml +++ b/mcp-security-middleware/Cargo.toml @@ -1,12 +1,12 @@ [package] name = "pulseengine-mcp-security-middleware" -version = "0.11.0" -rust-version = "1.88" -edition = "2024" -license = "MIT OR Apache-2.0" -authors = ["PulseEngine Contributors"] -repository = "https://github.com/pulseengine/mcp" -homepage = "https://github.com/pulseengine/mcp" +version.workspace = true +rust-version.workspace = true +edition.workspace = true +license.workspace = true +authors.workspace = true +repository.workspace = true +homepage.workspace = true documentation = "https://docs.rs/pulseengine-mcp-security-middleware" keywords = ["mcp", "security", "middleware", "authentication", "framework"] categories = ["api-bindings", "development-tools", "asynchronous", "web-programming"] @@ -61,6 +61,7 @@ pulseengine-mcp-protocol = { workspace = true } tempfile = { workspace = true } assert_matches = { workspace = true } tokio-test = "0.4" +serial_test = "3.0" [features] default = ["auto-config"] diff --git a/mcp-security-middleware/src/config.rs b/mcp-security-middleware/src/config.rs index 47a62be..8b3db65 100644 --- a/mcp-security-middleware/src/config.rs +++ b/mcp-security-middleware/src/config.rs @@ -473,6 +473,7 @@ mod tests { } #[test] + #[serial_test::serial] fn test_env_config_loading() { unsafe { env::set_var("MCP_SECURITY_PROFILE", "development"); diff --git a/mcp-security-middleware/src/lib.rs b/mcp-security-middleware/src/lib.rs index 7781863..380b635 100644 --- a/mcp-security-middleware/src/lib.rs +++ b/mcp-security-middleware/src/lib.rs @@ -173,6 +173,7 @@ mod tests { } #[test] + #[serial_test::serial] fn test_env_security_with_invalid_profile() { use std::env; @@ -191,6 +192,7 @@ mod tests { } #[test] + #[serial_test::serial] fn test_env_security_with_valid_profiles() { use std::env;