From 141e0452ef17d266282003022618aa21b22e0421 Mon Sep 17 00:00:00 2001 From: Damien Mehala Date: Thu, 15 May 2025 12:14:28 +0200 Subject: [PATCH 1/8] deps(library_config): bump to v18.0.0 Preparatory changes to facilitate memfd configuration support. --- Cargo.lock | 4 ++-- crates/library_config/Cargo.toml | 4 ++-- crates/library_config/src/lib.rs | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 5e2ff17..5fc362e 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -396,7 +396,7 @@ dependencies = [ [[package]] name = "datadog-library-config" version = "0.0.1" -source = "git+https://github.com/DataDog/libdatadog.git?tag=v16.0.3#ce8c536ddef78a49142fe4a6c77ab0a1263c1018" +source = "git+https://github.com/DataDog/libdatadog.git?tag=v18.0.0#60583218a8de6768f67d04fcd5bc6443f67f516b" dependencies = [ "anyhow", "serde", @@ -1001,7 +1001,7 @@ dependencies = [ [[package]] name = "library-config" -version = "0.1.0" +version = "0.2.0" dependencies = [ "anyhow", "datadog-library-config", diff --git a/crates/library_config/Cargo.toml b/crates/library_config/Cargo.toml index 94f0bad..f8ae954 100644 --- a/crates/library_config/Cargo.toml +++ b/crates/library_config/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "library-config" -version = "0.1.0" +version = "0.2.0" edition = "2018" [lib] @@ -8,7 +8,7 @@ crate-type = ["cdylib", "rlib"] [dependencies] anyhow = "1" -datadog-library-config = { git = "https://github.com/DataDog/libdatadog.git", tag = "v16.0.3" } +datadog-library-config = { git = "https://github.com/DataDog/libdatadog.git", tag = "v18.0.0" } wasm-bindgen = "0.2.84" serde = { version = "1.0", features = ["derive"] } diff --git a/crates/library_config/src/lib.rs b/crates/library_config/src/lib.rs index 61c0712..c993fbc 100644 --- a/crates/library_config/src/lib.rs +++ b/crates/library_config/src/lib.rs @@ -120,7 +120,7 @@ impl JsConfigurator { let config_entries: Vec = config .into_iter() .map(|c| ConfigEntry { - name: c.name.to_str().into(), + name: c.name.to_string().into(), value: c.value, source: c.source.to_str().into(), config_id: c.config_id.unwrap_or_default(), From ac8b185062de5a003b0c5f61655b58a2fc4883ba Mon Sep 17 00:00:00 2001 From: Damien Mehala Date: Wed, 28 May 2025 16:06:54 +0200 Subject: [PATCH 2/8] fix library_config tests --- test/wasm/library_config/index.js | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/test/wasm/library_config/index.js b/test/wasm/library_config/index.js index 64a60f8..e5b55ec 100644 --- a/test/wasm/library_config/index.js +++ b/test/wasm/library_config/index.js @@ -40,9 +40,12 @@ function test_service_selector() { }); assert.strictEqual(values.length, 2) - assert.strictEqual(values[0].name, 'DD_RUNTIME_METRICS_ENABLED') - assert.strictEqual(values[0].value, 'true') - assert.strictEqual(values[0].source, 'local_stable_config') + assert.strictEqual(values[0].name, 'DD_SERVICE') + assert.strictEqual(values[0].value, 'my-service_butremote') + assert.strictEqual(values[0].source, 'fleet_stable_config') + assert.strictEqual(values[1].name, 'DD_RUNTIME_METRICS_ENABLED') + assert.strictEqual(values[1].value, 'true') + assert.strictEqual(values[1].source, 'local_stable_config') if (process.platform == 'linux') { assert.strictEqual(configurator.get_config_local_path(process.platform), "/etc/datadog-agent/application_monitoring.yaml"); From fe230fe28ab712f57883404f132b425867cc9af3 Mon Sep 17 00:00:00 2001 From: Damien Mehala Date: Wed, 28 May 2025 16:10:04 +0200 Subject: [PATCH 3/8] update rust version --- rust-toolchain.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rust-toolchain.toml b/rust-toolchain.toml index e25453f..83ad02e 100644 --- a/rust-toolchain.toml +++ b/rust-toolchain.toml @@ -1,4 +1,4 @@ [toolchain] -channel = "1.80.0" +channel = "1.82.0" profile = "minimal" components = ["clippy", "rustfmt", "rust-src"] From 881ba235e07147ee84e6e5b4c038a00813cc914d Mon Sep 17 00:00:00 2001 From: Damien Mehala Date: Wed, 28 May 2025 16:22:38 +0200 Subject: [PATCH 4/8] update wasm dependencies --- crates/library_config/Cargo.toml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/crates/library_config/Cargo.toml b/crates/library_config/Cargo.toml index f8ae954..b66e9c0 100644 --- a/crates/library_config/Cargo.toml +++ b/crates/library_config/Cargo.toml @@ -10,9 +10,9 @@ crate-type = ["cdylib", "rlib"] anyhow = "1" datadog-library-config = { git = "https://github.com/DataDog/libdatadog.git", tag = "v18.0.0" } -wasm-bindgen = "0.2.84" +wasm-bindgen = "0.2.100" serde = { version = "1.0", features = ["derive"] } serde-wasm-bindgen = "0.4" [dev-dependencies] -wasm-bindgen-test = "0.3.34" +wasm-bindgen-test = "0.3.50" From 6dd295c628f67ba07d4942266db6ec04e84490bb Mon Sep 17 00:00:00 2001 From: Damien Mehala Date: Mon, 2 Jun 2025 12:24:28 +0200 Subject: [PATCH 5/8] upgrade to v18.1.0 --- Cargo.lock | 88 +++++++++++++++++--------------- crates/library_config/Cargo.toml | 2 +- rust-toolchain.toml | 2 +- 3 files changed, 49 insertions(+), 43 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 5fc362e..27f12c8 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -267,16 +267,6 @@ dependencies = [ "tokio", ] -[[package]] -name = "console_error_panic_hook" -version = "0.1.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a06aeb73f470f66dcdbf7223caeebb85984942f22f1adb2a088cf9668146bbbc" -dependencies = [ - "cfg-if", - "wasm-bindgen", -] - [[package]] name = "convert_case" version = "0.6.0" @@ -395,10 +385,14 @@ dependencies = [ [[package]] name = "datadog-library-config" -version = "0.0.1" -source = "git+https://github.com/DataDog/libdatadog.git?tag=v18.0.0#60583218a8de6768f67d04fcd5bc6443f67f516b" +version = "0.0.2" +source = "git+https://github.com/DataDog/libdatadog.git?tag=v18.1.0#5fdc3357f0070d5ad11dcaf89014b7479d32104f" dependencies = [ "anyhow", + "memfd", + "rand", + "rmp", + "rmp-serde", "serde", "serde_yaml", ] @@ -964,10 +958,11 @@ dependencies = [ [[package]] name = "js-sys" -version = "0.3.72" +version = "0.3.77" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a88f1bda2bd75b0452a14784937d796722fdebfe50df998aeb3f0b7603019a9" +checksum = "1cfaf33c695fc6e08064efbc1f72ec937429614f25eef83af942d0e227c3a28f" dependencies = [ + "once_cell", "wasm-bindgen", ] @@ -1029,6 +1024,15 @@ version = "2.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" +[[package]] +name = "memfd" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2cffa4ad52c6f791f4f8b15f0c05f9824b2ced1160e88cc393d64fff9a8ac64" +dependencies = [ + "rustix", +] + [[package]] name = "memmap2" version = "0.9.5" @@ -1592,6 +1596,12 @@ dependencies = [ "untrusted 0.9.0", ] +[[package]] +name = "rustversion" +version = "1.0.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a0d197bd2c9dc6e53b84da9556a69ba4cdfab8619eb41a8bd1cc2027a0f6b1d" + [[package]] name = "ryu" version = "1.0.18" @@ -1640,12 +1650,6 @@ dependencies = [ "syn 2.0.87", ] -[[package]] -name = "scoped-tls" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1cf6437eb19a8f4a6cc0f7dca544973b0b78843adbfeb3683d1a94a0024a294" - [[package]] name = "sct" version = "0.7.1" @@ -2043,24 +2047,24 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasm-bindgen" -version = "0.2.95" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "128d1e363af62632b8eb57219c8fd7877144af57558fb2ef0368d0087bddeb2e" +checksum = "1edc8929d7499fc4e8f0be2262a241556cfc54a0bea223790e71446f2aab1ef5" dependencies = [ "cfg-if", "once_cell", + "rustversion", "wasm-bindgen-macro", ] [[package]] name = "wasm-bindgen-backend" -version = "0.2.95" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb6dd4d3ca0ddffd1dd1c9c04f94b868c37ff5fac97c30b97cff2d74fce3a358" +checksum = "2f0a0651a5c2bc21487bde11ee802ccaf4c51935d0d3d42a6101f98161700bc6" dependencies = [ "bumpalo", "log", - "once_cell", "proc-macro2", "quote", "syn 2.0.87", @@ -2069,21 +2073,22 @@ dependencies = [ [[package]] name = "wasm-bindgen-futures" -version = "0.4.45" +version = "0.4.50" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc7ec4f8827a71586374db3e87abdb5a2bb3a15afed140221307c3ec06b1f63b" +checksum = "555d470ec0bc3bb57890405e5d4322cc9ea83cebb085523ced7be4144dac1e61" dependencies = [ "cfg-if", "js-sys", + "once_cell", "wasm-bindgen", "web-sys", ] [[package]] name = "wasm-bindgen-macro" -version = "0.2.95" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e79384be7f8f5a9dd5d7167216f022090cf1f9ec128e6e6a482a2cb5c5422c56" +checksum = "7fe63fc6d09ed3792bd0897b314f53de8e16568c2b3f7982f468c0bf9bd0b407" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -2091,9 +2096,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.95" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26c6ab57572f7a24a4985830b120de1594465e5d500f24afe89e16b4e833ef68" +checksum = "8ae87ea40c9f689fc23f209965b6fb8a99ad69aeeb0231408be24920604395de" dependencies = [ "proc-macro2", "quote", @@ -2104,20 +2109,21 @@ dependencies = [ [[package]] name = "wasm-bindgen-shared" -version = "0.2.95" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "65fc09f10666a9f147042251e0dda9c18f166ff7de300607007e96bdebc1068d" +checksum = "1a05d73b933a847d6cccdda8f838a22ff101ad9bf93e33684f39c1f5f0eece3d" +dependencies = [ + "unicode-ident", +] [[package]] name = "wasm-bindgen-test" -version = "0.3.45" +version = "0.3.50" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d381749acb0943d357dcbd8f0b100640679883fcdeeef04def49daf8d33a5426" +checksum = "66c8d5e33ca3b6d9fa3b4676d774c5778031d27a578c2b007f905acf816152c3" dependencies = [ - "console_error_panic_hook", "js-sys", "minicov", - "scoped-tls", "wasm-bindgen", "wasm-bindgen-futures", "wasm-bindgen-test-macro", @@ -2125,9 +2131,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-test-macro" -version = "0.3.45" +version = "0.3.50" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c97b2ef2c8d627381e51c071c2ab328eac606d3f69dd82bcbca20a9e389d95f0" +checksum = "17d5042cc5fa009658f9a7333ef24291b1291a25b6382dd68862a7f3b969f69b" dependencies = [ "proc-macro2", "quote", @@ -2136,9 +2142,9 @@ dependencies = [ [[package]] name = "web-sys" -version = "0.3.72" +version = "0.3.77" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6488b90108c040df0fe62fa815cbdee25124641df01814dd7282749234c6112" +checksum = "33b6dd2ef9186f1f2072e409e99cd22a975331a6b3591b12c764e0e55c60d5d2" dependencies = [ "js-sys", "wasm-bindgen", diff --git a/crates/library_config/Cargo.toml b/crates/library_config/Cargo.toml index b66e9c0..72b0f1b 100644 --- a/crates/library_config/Cargo.toml +++ b/crates/library_config/Cargo.toml @@ -8,7 +8,7 @@ crate-type = ["cdylib", "rlib"] [dependencies] anyhow = "1" -datadog-library-config = { git = "https://github.com/DataDog/libdatadog.git", tag = "v18.0.0" } +datadog-library-config = { git = "https://github.com/DataDog/libdatadog.git", tag = "v18.1.0" } wasm-bindgen = "0.2.100" serde = { version = "1.0", features = ["derive"] } diff --git a/rust-toolchain.toml b/rust-toolchain.toml index 83ad02e..e25453f 100644 --- a/rust-toolchain.toml +++ b/rust-toolchain.toml @@ -1,4 +1,4 @@ [toolchain] -channel = "1.82.0" +channel = "1.80.0" profile = "minimal" components = ["clippy", "rustfmt", "rust-src"] From 04ac79fe526376629da85f3f3815f3f8c72d1e4d Mon Sep 17 00:00:00 2001 From: Damien Mehala Date: Mon, 2 Jun 2025 12:33:19 +0200 Subject: [PATCH 6/8] fix random wasm --- crates/library_config/Cargo.toml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/crates/library_config/Cargo.toml b/crates/library_config/Cargo.toml index 72b0f1b..a88f20f 100644 --- a/crates/library_config/Cargo.toml +++ b/crates/library_config/Cargo.toml @@ -16,3 +16,6 @@ serde-wasm-bindgen = "0.4" [dev-dependencies] wasm-bindgen-test = "0.3.50" + +[target.'cfg(target_arch = "wasm32")'.dependencies] +getrandom = { version = "0.2", features = ["js"] } From 71ae5103a0269029db5714ff6f5321f79ed687e3 Mon Sep 17 00:00:00 2001 From: Damien Mehala Date: Mon, 2 Jun 2025 13:09:54 +0200 Subject: [PATCH 7/8] downgrade rust to 1.78.0 --- Cargo.lock | 3 +++ crates/library_config/src/lib.rs | 2 +- rust-toolchain.toml | 2 +- 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 27f12c8..af4df47 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -673,8 +673,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c4567c8db10ae91089c99af84c68c38da3ec2f087c3f82960bcdbf3656b6f4d7" dependencies = [ "cfg-if", + "js-sys", "libc", "wasi", + "wasm-bindgen", ] [[package]] @@ -1000,6 +1002,7 @@ version = "0.2.0" dependencies = [ "anyhow", "datadog-library-config", + "getrandom", "serde", "serde-wasm-bindgen", "wasm-bindgen", diff --git a/crates/library_config/src/lib.rs b/crates/library_config/src/lib.rs index c993fbc..61c0712 100644 --- a/crates/library_config/src/lib.rs +++ b/crates/library_config/src/lib.rs @@ -120,7 +120,7 @@ impl JsConfigurator { let config_entries: Vec = config .into_iter() .map(|c| ConfigEntry { - name: c.name.to_string().into(), + name: c.name.to_str().into(), value: c.value, source: c.source.to_str().into(), config_id: c.config_id.unwrap_or_default(), diff --git a/rust-toolchain.toml b/rust-toolchain.toml index e25453f..1917f74 100644 --- a/rust-toolchain.toml +++ b/rust-toolchain.toml @@ -1,4 +1,4 @@ [toolchain] -channel = "1.80.0" +channel = "1.78.0" profile = "minimal" components = ["clippy", "rustfmt", "rust-src"] From 29aae3e9c927a4fc0b15d819f25563275f1e611f Mon Sep 17 00:00:00 2001 From: Damien Mehala Date: Mon, 2 Jun 2025 13:12:07 +0200 Subject: [PATCH 8/8] use to_string instead of to_str --- crates/library_config/src/lib.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/crates/library_config/src/lib.rs b/crates/library_config/src/lib.rs index 61c0712..c993fbc 100644 --- a/crates/library_config/src/lib.rs +++ b/crates/library_config/src/lib.rs @@ -120,7 +120,7 @@ impl JsConfigurator { let config_entries: Vec = config .into_iter() .map(|c| ConfigEntry { - name: c.name.to_str().into(), + name: c.name.to_string().into(), value: c.value, source: c.source.to_str().into(), config_id: c.config_id.unwrap_or_default(),