Skip to content

feat(ffe): support arbitrary semver core parts - #2413

Merged
gh-worker-dd-mergequeue-cf854d[bot] merged 3 commits into
mainfrom
greg.huels/FFL-3092/extended-semver-2
Aug 25, 2026
Merged

gh-worker-dd-mergequeue-cf854d[bot] merged 3 commits into
mainfrom
greg.huels/FFL-3092/extended-semver-2

Conversation

@greghuels

@greghuels greghuels commented Aug 25, 2026 •

Copy link
Copy Markdown
Contributor

Summary

  • pin canonical FFE fixtures to 2c0c8d55f665fe4a847fc0ded3abf59b7e2896fc
  • accept and compare SemVer core versions with any positive number of numeric dot-separated parts
  • preserve abbreviated version normalization and SemVer prerelease/build precedence

Testing

  • cargo test -p libdd-ffe semver --lib
  • cargo nextest run -p libdd-ffe-test-suite
  • cargo check -p libdd-ffe
  • cargo +stable clippy -p libdd-ffe --all-targets -- -D warnings
  • cargo +nightly-2026-07-26 fmt --all -- --check

@datadog-official

datadog-official Bot commented Aug 25, 2026 •

Copy link
Copy Markdown

Tests

🎉 All green!

🧪 All tests passed
❄️ No new flaky tests detected

🎯 Code Coverage (details)
• Patch Coverage: 97.26%
• Overall Coverage: 76.73% (+0.04%)

This comment will be updated automatically if new data arrives.
🔗 Commit SHA: 6e2f2b5 | Docs | View more details | Give us feedback!

@pr-commenter

pr-commenter Bot commented Aug 25, 2026 •

Copy link
Copy Markdown

Benchmarks

Comparison

Benchmark execution time: 2026-08-25 17:27:50

Comparing candidate commit 6e2f2b5 in PR branch greg.huels/FFL-3092/extended-semver-2 with baseline commit 1766e7e in branch main.

Found 0 performance improvements and 1 performance regressions! Performance is the same for 13 metrics, 0 unstable metrics.

Explanation

This is an A/B test comparing a candidate commit's performance against that of a baseline commit. Performance changes are noted in the tables below as:

  • 🟩 = significantly better candidate vs. baseline
  • 🟥 = significantly worse candidate vs. baseline

We compute a confidence interval (CI) over the relative difference of means between metrics from the candidate and baseline commits, considering the baseline as the reference.

If the CI is entirely outside the configured SIGNIFICANT_IMPACT_THRESHOLD (or the deprecated UNCONFIDENCE_THRESHOLD), the change is considered significant.

Feel free to reach out to #apm-benchmarking-platform on Slack if you have any questions.

More details about the CI and significant changes

You can imagine this CI as a range of values that is likely to contain the true difference of means between the candidate and baseline commits.

CIs of the difference of means are often centered around 0%, because often changes are not that big:

---------------------------------(------|---^--------)-------------------------------->
                              -0.6%    0%  0.3%     +1.2%
                                 |          |        |
         lower bound of the CI --'          |        |
sample mean (center of the CI) -------------'        |
         upper bound of the CI ----------------------'

As described above, a change is considered significant if the CI is entirely outside the configured SIGNIFICANT_IMPACT_THRESHOLD (or the deprecated UNCONFIDENCE_THRESHOLD).

For instance, for an execution time metric, this confidence interval indicates a significantly worse performance:

----------------------------------------|---------|---(---------^---------)---------->
                                       0%        1%  1.3%      2.2%      3.1%
                                                  |   |         |         |
       significant impact threshold --------------'   |         |         |
                      lower bound of CI --------------'         |         |
       sample mean (center of the CI) --------------------------'         |
                      upper bound of CI ----------------------------------'

scenario:sdk_test_data/rules-based

  • 🟥 execution_time [+116.893µs; +120.756µs] or [+80.007%; +82.651%]

Candidate

Candidate benchmark details

Group 1

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 6e2f2b5 1787677929 greg.huels/FFL-3092/extended-semver-2
scenario metric min mean ± sd median ± mad p75 p95 p99 max peak_to_median_ratio skewness kurtosis cv sem runs sample_size
flagevaluation_evp/payloads/scale/2500flags_500users_20fields execution_time 21.877ms 21.965ms ± 0.027ms 21.965ms ± 0.017ms 21.983ms 22.012ms 22.020ms 22.035ms 0.32% -0.201 0.278 0.12% 0.002ms 1 200
flagevaluation_evp/payloads/scale/2500flags_500users_20fields throughput 113456.514op/s 113817.968op/s ± 141.665op/s 113818.531op/s ± 90.572op/s 113905.057op/s 114040.322op/s 114199.868op/s 114272.783op/s 0.40% 0.209 0.286 0.12% 10.017op/s 1 200
flagevaluation_evp/payloads/stress/10flags_1000users_250fields execution_time 105.027ms 105.363ms ± 0.307ms 105.285ms ± 0.033ms 105.322ms 105.907ms 106.151ms 108.645ms 3.19% 6.803 64.258 0.29% 0.022ms 1 200
flagevaluation_evp/payloads/stress/10flags_1000users_250fields throughput 9204.289op/s 9491.055op/s ± 27.150op/s 9497.992op/s ± 2.935op/s 9500.618op/s 9503.392op/s 9506.640op/s 9521.323op/s 0.25% -6.632 61.507 0.29% 1.920op/s 1 200
flagevaluation_evp/payloads/typical/100flags_50users_10fields execution_time 602.265µs 603.058µs ± 0.338µs 603.035µs ± 0.212µs 603.254µs 603.540µs 603.973µs 604.390µs 0.22% 0.502 1.237 0.06% 0.024µs 1 200
flagevaluation_evp/payloads/typical/100flags_50users_10fields throughput 165456.066op/s 165821.593op/s ± 92.886op/s 165827.733op/s ± 58.294op/s 165881.571op/s 165954.259op/s 166035.261op/s 166039.846op/s 0.13% -0.497 1.227 0.06% 6.568op/s 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
flagevaluation_evp/payloads/scale/2500flags_500users_20fields execution_time [21.961ms; 21.969ms] or [-0.017%; +0.017%] None None None
flagevaluation_evp/payloads/scale/2500flags_500users_20fields throughput [113798.334op/s; 113837.601op/s] or [-0.017%; +0.017%] None None None
flagevaluation_evp/payloads/stress/10flags_1000users_250fields execution_time [105.321ms; 105.406ms] or [-0.040%; +0.040%] None None None
flagevaluation_evp/payloads/stress/10flags_1000users_250fields throughput [9487.292op/s; 9494.818op/s] or [-0.040%; +0.040%] None None None
flagevaluation_evp/payloads/typical/100flags_50users_10fields execution_time [603.011µs; 603.105µs] or [-0.008%; +0.008%] None None None
flagevaluation_evp/payloads/typical/100flags_50users_10fields throughput [165808.720op/s; 165834.466op/s] or [-0.008%; +0.008%] None None None

Group 2

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 6e2f2b5 1787677929 greg.huels/FFL-3092/extended-semver-2
scenario metric min mean ± sd median ± mad p75 p95 p99 max peak_to_median_ratio skewness kurtosis cv sem runs sample_size
sdk_test_data/rules-based execution_time 259.202µs 264.929µs ± 12.707µs 262.001µs ± 1.163µs 263.824µs 276.346µs 310.946µs 403.373µs 53.96% 7.794 73.995 4.78% 0.898µs 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
sdk_test_data/rules-based execution_time [263.168µs; 266.690µs] or [-0.665%; +0.665%] None None None

Group 3

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 6e2f2b5 1787677929 greg.huels/FFL-3092/extended-semver-2
scenario metric min mean ± sd median ± mad p75 p95 p99 max peak_to_median_ratio skewness kurtosis cv sem runs sample_size
single_flag_killswitch/rules-based execution_time 156.077ns 159.255ns ± 2.555ns 158.927ns ± 1.438ns 160.283ns 163.267ns 168.708ns 172.058ns 8.26% 1.576 4.186 1.60% 0.181ns 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
single_flag_killswitch/rules-based execution_time [158.901ns; 159.610ns] or [-0.222%; +0.222%] None None None

Group 4

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 6e2f2b5 1787677929 greg.huels/FFL-3092/extended-semver-2
scenario metric min mean ± sd median ± mad p75 p95 p99 max peak_to_median_ratio skewness kurtosis cv sem runs sample_size
flagevaluation_evp/coalescer/scale/2500flags_500users_20fields execution_time 5.297ms 5.313ms ± 0.018ms 5.312ms ± 0.004ms 5.317ms 5.323ms 5.327ms 5.554ms 4.55% 11.404 147.318 0.34% 0.001ms 1 200
flagevaluation_evp/coalescer/scale/2500flags_500users_20fields throughput 450166.116op/s 470531.649op/s ± 1559.832op/s 470666.421op/s ± 388.817op/s 470971.773op/s 471549.710op/s 471887.691op/s 471935.907op/s 0.27% -11.203 143.830 0.33% 110.297op/s 1 200
flagevaluation_evp/coalescer/stress/10flags_1000users_250fields execution_time 7.922ms 7.935ms ± 0.007ms 7.934ms ± 0.003ms 7.938ms 7.946ms 7.964ms 7.971ms 0.46% 2.011 6.715 0.09% 0.001ms 1 200
flagevaluation_evp/coalescer/stress/10flags_1000users_250fields throughput 125462.539op/s 126026.653op/s ± 114.859op/s 126041.129op/s ± 53.910op/s 126091.805op/s 126166.856op/s 126205.526op/s 126235.026op/s 0.15% -1.999 6.649 0.09% 8.122op/s 1 200
flagevaluation_evp/coalescer/typical/100flags_50users_10fields execution_time 178.044µs 180.622µs ± 0.641µs 180.508µs ± 0.315µs 180.923µs 181.738µs 182.215µs 182.571µs 1.14% -0.227 3.131 0.35% 0.045µs 1 200
flagevaluation_evp/coalescer/typical/100flags_50users_10fields throughput 547732.115op/s 553649.415op/s ± 1967.045op/s 553993.255op/s ± 968.264op/s 554819.800op/s 555395.749op/s 561567.583op/s 561658.127op/s 1.38% 0.281 3.277 0.35% 139.091op/s 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
flagevaluation_evp/coalescer/scale/2500flags_500users_20fields execution_time [5.311ms; 5.316ms] or [-0.048%; +0.048%] None None None
flagevaluation_evp/coalescer/scale/2500flags_500users_20fields throughput [470315.471op/s; 470747.827op/s] or [-0.046%; +0.046%] None None None
flagevaluation_evp/coalescer/stress/10flags_1000users_250fields execution_time [7.934ms; 7.936ms] or [-0.013%; +0.013%] None None None
flagevaluation_evp/coalescer/stress/10flags_1000users_250fields throughput [126010.734op/s; 126042.571op/s] or [-0.013%; +0.013%] None None None
flagevaluation_evp/coalescer/typical/100flags_50users_10fields execution_time [180.533µs; 180.711µs] or [-0.049%; +0.049%] None None None
flagevaluation_evp/coalescer/typical/100flags_50users_10fields throughput [553376.802op/s; 553922.029op/s] or [-0.049%; +0.049%] None None None

Baseline

Baseline benchmark details

Group 1

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 1766e7e 1787678449 main
scenario metric min mean ± sd median ± mad p75 p95 p99 max peak_to_median_ratio skewness kurtosis cv sem runs sample_size
flagevaluation_evp/payloads/scale/2500flags_500users_20fields execution_time 21.919ms 21.994ms ± 0.032ms 21.992ms ± 0.021ms 22.013ms 22.053ms 22.069ms 22.083ms 0.41% 0.367 -0.192 0.14% 0.002ms 1 200
flagevaluation_evp/payloads/scale/2500flags_500users_20fields throughput 113209.599op/s 113665.514op/s ± 164.763op/s 113677.542op/s ± 107.482op/s 113774.936op/s 113907.564op/s 113996.865op/s 114058.838op/s 0.34% -0.360 -0.197 0.14% 11.650op/s 1 200
flagevaluation_evp/payloads/stress/10flags_1000users_250fields execution_time 102.606ms 103.827ms ± 0.393ms 103.888ms ± 0.159ms 104.040ms 104.150ms 104.429ms 107.061ms 3.05% 2.210 21.824 0.38% 0.028ms 1 200
flagevaluation_evp/payloads/stress/10flags_1000users_250fields throughput 9340.501op/s 9631.516op/s ± 36.202op/s 9625.716op/s ± 14.730op/s 9642.889op/s 9689.442op/s 9713.261op/s 9746.029op/s 1.25% -2.001 19.951 0.37% 2.560op/s 1 200
flagevaluation_evp/payloads/typical/100flags_50users_10fields execution_time 598.676µs 599.845µs ± 0.650µs 599.757µs ± 0.449µs 600.299µs 600.858µs 601.240µs 603.738µs 0.66% 1.419 5.360 0.11% 0.046µs 1 200
flagevaluation_evp/payloads/typical/100flags_50users_10fields throughput 165634.775op/s 166709.797op/s ± 180.283op/s 166734.269op/s ± 124.683op/s 166837.443op/s 166940.185op/s 166969.452op/s 167035.387op/s 0.18% -1.401 5.239 0.11% 12.748op/s 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
flagevaluation_evp/payloads/scale/2500flags_500users_20fields execution_time [21.990ms; 21.999ms] or [-0.020%; +0.020%] None None None
flagevaluation_evp/payloads/scale/2500flags_500users_20fields throughput [113642.680op/s; 113688.349op/s] or [-0.020%; +0.020%] None None None
flagevaluation_evp/payloads/stress/10flags_1000users_250fields execution_time [103.773ms; 103.882ms] or [-0.053%; +0.053%] None None None
flagevaluation_evp/payloads/stress/10flags_1000users_250fields throughput [9626.499op/s; 9636.533op/s] or [-0.052%; +0.052%] None None None
flagevaluation_evp/payloads/typical/100flags_50users_10fields execution_time [599.755µs; 599.936µs] or [-0.015%; +0.015%] None None None
flagevaluation_evp/payloads/typical/100flags_50users_10fields throughput [166684.812op/s; 166734.782op/s] or [-0.015%; +0.015%] None None None

Group 2

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 1766e7e 1787678449 main
scenario metric min mean ± sd median ± mad p75 p95 p99 max peak_to_median_ratio skewness kurtosis cv sem runs sample_size
sdk_test_data/rules-based execution_time 142.557µs 146.104µs ± 5.724µs 144.931µs ± 0.770µs 145.772µs 151.245µs 167.059µs 206.507µs 42.49% 7.339 66.306 3.91% 0.405µs 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
sdk_test_data/rules-based execution_time [145.311µs; 146.897µs] or [-0.543%; +0.543%] None None None

Group 3

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 1766e7e 1787678449 main
scenario metric min mean ± sd median ± mad p75 p95 p99 max peak_to_median_ratio skewness kurtosis cv sem runs sample_size
single_flag_killswitch/rules-based execution_time 156.497ns 160.182ns ± 2.825ns 159.433ns ± 1.288ns 161.052ns 165.496ns 168.803ns 174.042ns 9.16% 1.614 3.341 1.76% 0.200ns 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
single_flag_killswitch/rules-based execution_time [159.791ns; 160.574ns] or [-0.244%; +0.244%] None None None

Group 4

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 1766e7e 1787678449 main
scenario metric min mean ± sd median ± mad p75 p95 p99 max peak_to_median_ratio skewness kurtosis cv sem runs sample_size
flagevaluation_evp/coalescer/scale/2500flags_500users_20fields execution_time 5.311ms 5.325ms ± 0.008ms 5.325ms ± 0.004ms 5.329ms 5.337ms 5.343ms 5.374ms 0.91% 1.465 7.362 0.14% 0.001ms 1 200
flagevaluation_evp/coalescer/scale/2500flags_500users_20fields throughput 465229.817op/s 469466.023op/s ± 665.041op/s 469460.404op/s ± 386.518op/s 469896.901op/s 470388.581op/s 470599.828op/s 470683.657op/s 0.26% -1.434 7.140 0.14% 47.025op/s 1 200
flagevaluation_evp/coalescer/stress/10flags_1000users_250fields execution_time 7.907ms 7.921ms ± 0.007ms 7.920ms ± 0.004ms 7.925ms 7.931ms 7.945ms 7.963ms 0.54% 2.026 9.181 0.09% 0.000ms 1 200
flagevaluation_evp/coalescer/stress/10flags_1000users_250fields throughput 125580.091op/s 126241.150op/s ± 108.408op/s 126257.743op/s ± 56.632op/s 126310.176op/s 126380.029op/s 126446.129op/s 126470.499op/s 0.17% -2.008 9.062 0.09% 7.666op/s 1 200
flagevaluation_evp/coalescer/typical/100flags_50users_10fields execution_time 178.876µs 180.707µs ± 0.761µs 180.540µs ± 0.208µs 180.816µs 181.686µs 182.377µs 188.382µs 4.34% 5.449 50.513 0.42% 0.054µs 1 200
flagevaluation_evp/coalescer/typical/100flags_50users_10fields throughput 530837.688op/s 553391.428op/s ± 2279.835op/s 553894.053op/s ± 636.813op/s 554483.319op/s 555069.951op/s 555575.560op/s 559047.011op/s 0.93% -5.170 46.769 0.41% 161.209op/s 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
flagevaluation_evp/coalescer/scale/2500flags_500users_20fields execution_time [5.324ms; 5.326ms] or [-0.020%; +0.020%] None None None
flagevaluation_evp/coalescer/scale/2500flags_500users_20fields throughput [469373.854op/s; 469558.191op/s] or [-0.020%; +0.020%] None None None
flagevaluation_evp/coalescer/stress/10flags_1000users_250fields execution_time [7.920ms; 7.922ms] or [-0.012%; +0.012%] None None None
flagevaluation_evp/coalescer/stress/10flags_1000users_250fields throughput [126226.125op/s; 126256.174op/s] or [-0.012%; +0.012%] None None None
flagevaluation_evp/coalescer/typical/100flags_50users_10fields execution_time [180.602µs; 180.813µs] or [-0.058%; +0.058%] None None None
flagevaluation_evp/coalescer/typical/100flags_50users_10fields throughput [553075.465op/s; 553707.391op/s] or [-0.057%; +0.057%] None None None

@greghuels
greghuels marked this pull request as ready for review August 25, 2026 16:06
@greghuels
greghuels requested a review from a team as a code owner August 25, 2026 16:06
@greghuels
greghuels requested review from pavlokhrebto and sameerank and removed request for a team August 25, 2026 16:06
@dd-octo-sts

dd-octo-sts Bot commented Aug 25, 2026 •

Copy link
Copy Markdown
Contributor

Artifact Size Benchmark Report

aarch64-alpine-linux-musl
Artifact Baseline Commit Change
/aarch64-alpine-linux-musl/lib/libdatadog_profiling.so 8.26 MB 8.26 MB 0% (0 B) 👌
/aarch64-alpine-linux-musl/lib/libdatadog_profiling.a 89.59 MB 89.63 MB +.04% (+37.71 KB) 🔍
aarch64-unknown-linux-gnu
Artifact Baseline Commit Change
/aarch64-unknown-linux-gnu/lib/libdatadog_profiling.a 100.77 MB 100.80 MB +.03% (+36.79 KB) 🔍
/aarch64-unknown-linux-gnu/lib/libdatadog_profiling.so 11.07 MB 11.07 MB +0% (+424 B) 👌
libdatadog-x64-windows
Artifact Baseline Commit Change
/libdatadog-x64-windows/debug/dynamic/datadog_profiling_ffi.dll 26.65 MB 26.68 MB +.09% (+26.50 KB) 🔍
/libdatadog-x64-windows/debug/dynamic/datadog_profiling_ffi.lib 94.96 KB 94.96 KB 0% (0 B) 👌
/libdatadog-x64-windows/debug/dynamic/datadog_profiling_ffi.pdb 180.94 MB 181.12 MB +.10% (+192.00 KB) 🔍
/libdatadog-x64-windows/debug/static/datadog_profiling_ffi.lib 773.55 MB 773.75 MB +.02% (+203.24 KB) 🔍
/libdatadog-x64-windows/release/dynamic/datadog_profiling_ffi.dll 8.74 MB 8.75 MB +.03% (+3.00 KB) 🔍
/libdatadog-x64-windows/release/dynamic/datadog_profiling_ffi.lib 94.96 KB 94.96 KB 0% (0 B) 👌
/libdatadog-x64-windows/release/dynamic/datadog_profiling_ffi.pdb 25.68 MB 25.69 MB +.06% (+16.00 KB) 🔍
/libdatadog-x64-windows/release/static/datadog_profiling_ffi.lib 51.15 MB 51.17 MB +.03% (+17.03 KB) 🔍
libdatadog-x86-windows
Artifact Baseline Commit Change
/libdatadog-x86-windows/debug/dynamic/datadog_profiling_ffi.dll 23.23 MB 23.25 MB +.08% (+20.00 KB) 🔍
/libdatadog-x86-windows/debug/dynamic/datadog_profiling_ffi.lib 96.45 KB 96.45 KB 0% (0 B) 👌
/libdatadog-x86-windows/debug/dynamic/datadog_profiling_ffi.pdb 185.84 MB 186.05 MB +.11% (+216.00 KB) 🔍
/libdatadog-x86-windows/debug/static/datadog_profiling_ffi.lib 760.32 MB 760.72 MB +.05% (+408.35 KB) 🔍
/libdatadog-x86-windows/release/dynamic/datadog_profiling_ffi.dll 6.75 MB 6.76 MB +.04% (+3.00 KB) 🔍
/libdatadog-x86-windows/release/dynamic/datadog_profiling_ffi.lib 96.45 KB 96.45 KB 0% (0 B) 👌
/libdatadog-x86-windows/release/dynamic/datadog_profiling_ffi.pdb 27.62 MB 27.62 MB +.02% (+8.00 KB) 🔍
/libdatadog-x86-windows/release/static/datadog_profiling_ffi.lib 48.67 MB 48.69 MB +.03% (+16.09 KB) 🔍
x86_64-alpine-linux-musl
Artifact Baseline Commit Change
/x86_64-alpine-linux-musl/lib/libdatadog_profiling.a 79.87 MB 79.91 MB +.04% (+34.56 KB) 🔍
/x86_64-alpine-linux-musl/lib/libdatadog_profiling.so 9.17 MB 9.17 MB +.04% (+4.00 KB) 🔍
x86_64-unknown-linux-gnu
Artifact Baseline Commit Change
/x86_64-unknown-linux-gnu/lib/libdatadog_profiling.a 95.51 MB 95.55 MB +.03% (+38.04 KB) 🔍
/x86_64-unknown-linux-gnu/lib/libdatadog_profiling.so 11.19 MB 11.19 MB +0% (+568 B) 👌

Comment thread libdd-ffe-test-suite/ffe-system-test-data
@gh-worker-dd-mergequeue-cf854d
gh-worker-dd-mergequeue-cf854d Bot merged commit 5eb40d6 into main Aug 25, 2026
103 checks passed
@gh-worker-dd-mergequeue-cf854d
gh-worker-dd-mergequeue-cf854d Bot deleted the greg.huels/FFL-3092/extended-semver-2 branch August 25, 2026 20:24
hoolioh added a commit that referenced this pull request Sep 8, 2026
…ker, libdd-data-pipeline, li... (#2482)

# Release proposal for libdd-capabilities-impl, libdd-crashtracker,
libdd-data-pipeline, libdd-ddsketch, libdd-ffe, libdd-http-client,
libdd-ipc, libdd-library-config, libdd-live-debugger,
libdd-otel-thread-ctx, libdd-remote-config, libdd-shared-runtime,
libdd-telemetry, libdd-trace-utils, libdd-tracer-flare and their
dependencies

This PR contains version bumps based on public API changes and commits
since last release.


### ⚠️ Crates left out of this proposal affected by its major
bumps

These publishable workspace crates are not part of this release but
their dependency requirement was rewritten on this branch while their
published version still requires the old major. If they are a dependency
on your deployment not including them in the release could result in
duplicate packages or symbol incompatibility.

- `libdd-common` `5.2.0` → `6.0.0` affects: `libdd-profiling`,
`libdd-sampling`
- `libdd-trace-utils` `11.0.0` → `12.0.0` affects: `libdd-sampling`

## libdd-capabilities
**Next version:** `3.0.1`
**Semver bump:** `patch`
**Tag:** `libdd-capabilities-v3.0.1`

### Commits

- refactor: migrate HTTP & networking deps to workspace level (phase
4bis) (#2350)
- feat: do not entirely disable connection pooling for periodic
connections (#2440)

## libdd-common
**Next version:** `6.0.0`
**Semver bump:** `major`
**Tag:** `libdd-common-v6.0.0`

### Commits

- refactor: migrate HTTP & networking deps to workspace level (phase
4bis) (#2350)
- feat: do not entirely disable connection pooling for periodic
connections (#2440)
- feat(data-pipeline)!: add agentless stats export (#2309)
- feat(data-pipeline): add runtime-independent agentless sending (#2389)
- feat(common)!: add HTTPS_PROXY support for hyper_backend (#2421)

## libdd-ipc-macros
**Next version:** `1.0.1`
**Semver bump:** `patch`
**Tag:** `libdd-ipc-macros-v1.0.1`

### Commits

- feat(sidecar)!: support appsec helper-rust integration with sidecar
(#2310)

## libdd-otel-thread-ctx
**Next version:** `1.1.0`
**Semver bump:** `minor`
**Tag:** `libdd-otel-thread-ctx-v1.1.0`

### Commits

- feat(otel-thread-ctx): add update-and-attach operation (#2443)

## libdd-tinybytes
**Next version:** `1.1.3`
**Semver bump:** `patch`
**Tag:** `libdd-tinybytes-v1.1.3`

### Commits

- refactor: migrate HTTP & networking deps to workspace level (phase
4bis) (#2350)

## libdd-capabilities-impl
**Next version:** `5.0.0`
**Semver bump:** `major`
**Tag:** `libdd-capabilities-impl-v5.0.0`

### ⚠️ major bump forced due to:

- `libdd-common`: ^5.1.1 → ^6.0.0

### Commits

- refactor: migrate HTTP & networking deps to workspace level (phase
4bis) (#2350)
- feat: do not entirely disable connection pooling for periodic
connections (#2440)
- feat(data-pipeline): add runtime-independent agentless sending (#2389)

## libdd-http-client
**Next version:** `2.0.0`
**Semver bump:** `major`
**Tag:** `libdd-http-client-v2.0.0`

### ⚠️ major bump forced due to:

- `libdd-common`: ^5.1.1 → ^6.0.0

### Commits

- refactor: migrate HTTP & networking deps to workspace level (phase
4bis) (#2350)
- feat(data-pipeline): add runtime-independent agentless sending (#2389)
- feat(common)!: add HTTPS_PROXY support for hyper_backend (#2421)

## libdd-remote-config
**Next version:** `5.0.0`
**Semver bump:** `major`
**Tag:** `libdd-remote-config-v5.0.0`

### ⚠️ major bump forced due to:

- `libdd-common`: ^5.2.0 → ^6.0.0

### Commits

- fix(remote-config): refresh fetcher identity (#2469)
- refactor: migrate HTTP & networking deps to workspace level (phase
4bis) (#2350)
- fix(remote-config): reuse injected sleep capability (#2429)

## libdd-shared-runtime
**Next version:** `4.0.0`
**Semver bump:** `major`
**Tag:** `libdd-shared-runtime-v4.0.0`

### ⚠️ major bump forced due to:

- `libdd-common`: ^5.2.0 → ^6.0.0

### Commits

- fix(shared-runtime): allow disabling worker fork restart (#2464)

## libdd-trace-utils
**Next version:** `12.0.0`
**Semver bump:** `major`
**Tag:** `libdd-trace-utils-v12.0.0`

### ⚠️ major bump forced due to:

- `libdd-common`: ^5.2.0 → ^6.0.0

### Commits

- feat(trace-utils): add v1-native JSON log encoder brick (#2371)
- feat(trace-utils): add v1-native agentless JSON encoder brick (#2370)
- refactor: migrate HTTP & networking deps to workspace level (phase
4bis) (#2350)
- fix(trace-stats): read OTel HTTP names for the status and method
dimensions (#2323)
- feat(data-pipeline): emit native trace export telemetry (#2338)
- feat(data-pipeline)!: add agentless stats export (#2309)
- fix(trace-utils): use vec map dedup when serializing (#2422)
- feat(data-pipeline): add runtime-independent agentless sending (#2389)
- fix(compression): align zstd behavior across targets (#2400)
- feat(trace-utils)!: add from owned to SpanText (#2403)

## libdd-ffe
**Next version:** `2.0.0`
**Semver bump:** `major`
**Tag:** `libdd-ffe-v2.0.0`

### ⚠️ major bump forced due to:

- `libdd-common`: ^5.1.1 → ^6.0.0
- `libdd-remote-config`: ^3.0.0 → ^4.1.0
- `libdd-trace-protobuf`: ^4.0.1 → ^5.0.0

### Commits

- refactor: migrate HTTP & networking deps to workspace level (phase
4bis) (#2350)
- feat(ffe): support arbitrary semver core parts (#2413)
- feat(ffe)!: send the split serial id on exposure events [EX-3425]
(#2402)
- feat(ffe): expose observeFullEvaluationData config-level FFI getter
(#2373)
- fix(ffe): report rejected flags as parse errors (#2339)
- test: skip/shorten slow miri jobs (#2331)

## libdd-dogstatsd-client
**Next version:** `6.0.0`
**Semver bump:** `major`
**Tag:** `libdd-dogstatsd-client-v6.0.0`

### ⚠️ major bump forced due to:

- `libdd-common`: ^5.2.0 → ^6.0.0

### Commits

- refactor: migrate HTTP & networking deps to workspace level (phase
4bis) (#2350)

## libdd-telemetry
**Next version:** `8.0.0`
**Semver bump:** `major`
**Tag:** `libdd-telemetry-v8.0.0`

### ⚠️ major bump forced due to:

- `libdd-common`: ^5.2.0 → ^6.0.0

### Commits

- refactor: migrate HTTP & networking deps to workspace level (phase
4bis) (#2350)
- refactor(telemetry): avoid doing two separate http requests in stop
telemetry (#2435)

## libdd-trace-obfuscation
**Next version:** `8.0.0`
**Semver bump:** `major`
**Tag:** `libdd-trace-obfuscation-v8.0.0`

### ⚠️ major bump forced due to:

- `libdd-common`: ^5.2.0 → ^6.0.0
- `libdd-trace-utils`: ^11.0.0 → ^12.0.0

### Commits

- fix(trace-obfuscation): scan all span meta for credit-card obfuscation
(#2472)
- refactor: migrate HTTP & networking deps to workspace level (phase
4bis) (#2350)
- feat(data-pipeline)!: Obfuscate v04 spans in agentless context (#2418)

## libdd-tracer-flare
**Next version:** `3.0.0`
**Semver bump:** `major`
**Tag:** `libdd-tracer-flare-v3.0.0`

### ⚠️ major bump forced due to:

- `libdd-common`: ^5.2.0 → ^6.0.0
- `libdd-trace-utils`: ^11.0.0 → ^12.0.0

### Commits

- refactor: migrate HTTP & networking deps to workspace level (phase
4bis) (#2350)

## libdd-crashtracker
**Next version:** `3.0.0`
**Semver bump:** `major`
**Tag:** `libdd-crashtracker-v3.0.0`

### ⚠️ major bump forced due to:

- `libdd-common`: ^5.2.0 → ^6.0.0

### Commits

- refactor: migrate HTTP & networking deps to workspace level (phase
4bis) (#2350)
- fix(crashtracking): filter out frames above faulting frame (#2428)
- feat(sidecar)!: support appsec helper-rust integration with sidecar
(#2310)
- chore(crashtracking): use RAII remote ptrace API (#2416)
- chore(crashtracking): bump libdd-libunwind-sys to v1.0.3 (#2414)

## libdd-data-pipeline-core
**Next version:** `1.0.0`
**Semver bump:** `major`
**Tag:** `libdd-data-pipeline-core-v1.0.0`

**Warning:** this is an initial release. Please verify that the version
and commits included are correct.


## libdd-trace-stats
**Next version:** `9.0.0`
**Semver bump:** `major`
**Tag:** `libdd-trace-stats-v9.0.0`

### ⚠️ major bump forced due to:

- `libdd-common`: ^5.2.0 → ^6.0.0
- `libdd-trace-obfuscation`: ^7.0.0 → ^8.0.0
- `libdd-trace-utils`: ^11.0.0 → ^12.0.0

### Commits

- refactor: migrate HTTP & networking deps to workspace level (phase
4bis) (#2350)
- fix(trace-stats): read OTel HTTP names for the status and method
dimensions (#2323)
- feat(data-pipeline)!: add agentless stats export (#2309)
- feat(trace-utils)!: add from owned to SpanText (#2403)

## libdd-data-pipeline
**Next version:** `10.0.0`
**Semver bump:** `major`
**Tag:** `libdd-data-pipeline-v10.0.0`

### ⚠️ major bump forced due to:

- `libdd-common`: ^5.2.0 → ^6.0.0
- `libdd-trace-obfuscation`: ^7.0.0 → ^8.0.0
- `libdd-trace-stats`: ^8.0.0 → ^9.0.0
- `libdd-trace-utils`: ^11.0.0 → ^12.0.0

### Commits

- feat(trace-utils): add v1-native JSON log encoder brick (#2371)
- chore: prepare crate for publishing (#2466)
- refactor: migrate HTTP & networking deps to workspace level (phase
4bis) (#2350)
- fix(trace-stats): read OTel HTTP names for the status and method
dimensions (#2323)
- fix(data-pipeline): pass obfuscation config to OTLP stats (#2444)
- feat(data-pipeline): emit native trace export telemetry (#2338)
- feat(data-pipeline): add fork-safe OTLP gRPC trace transport (#2273)
- feat(data-pipeline)!: add agentless stats export (#2309)
- feat(data-pipeline)!: Obfuscate v04 spans in agentless context (#2418)
- feat(data-pipeline): add runtime-independent agentless sending (#2389)
- feat(trace-utils)!: add from owned to SpanText (#2403)

## libdd-ipc
**Next version:** `2.0.0`
**Semver bump:** `major`
**Tag:** `libdd-ipc-v2.0.0`

### ⚠️ major bump forced due to:

- `libdd-common`: ^5.2.0 → ^6.0.0
- `libdd-trace-stats`: ^8.0.0 → ^9.0.0

### Commits

- fix(ipc): drop the signal feature from libdd-ipc (#2431)

## libdd-live-debugger
**Next version:** `1.0.0`
**Semver bump:** `major`
**Tag:** `libdd-live-debugger-v1.0.0`

**Warning:** this is an initial release. Please verify that the version
and commits included are correct.


[EX-3425]:
https://datadoghq.atlassian.net/browse/EX-3425?atlOrigin=eyJpIjoiNWRkNTljNzYxNjVmNDY3MDlhMDU5Y2ZhYzA5YTRkZjUiLCJwIjoiZ2l0aHViLWNvbS1KU1cifQ

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: hoolioh <107922352+hoolioh@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants