Skip to content

[Test Optimization] Add branch parameter to test management API request#7891

Merged
juan-fernandez merged 1 commit intomasterfrom
juan-fernandez/add-branch-param-test-management
Dec 2, 2025
Merged

[Test Optimization] Add branch parameter to test management API request#7891
juan-fernandez merged 1 commit intomasterfrom
juan-fernandez/add-branch-param-test-management

Conversation

@juan-fernandez
Copy link
Contributor

Summary of changes

Include branch in the request payload to /api/v2/test/libraries/test-management/tests, sourced from CIEnvironmentValues.Branch.

Reason for change

Needed for new flaky PR gates

Implementation details

Test coverage

Today's tests should suffice

Other details

Include git.branch in the request payload to /api/v2/test/libraries/test-management/tests, sourced from CIEnvironmentValues.Branch.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
@datadog-datadog-prod-us1

This comment has been minimized.

@juan-fernandez juan-fernandez marked this pull request as ready for review December 2, 2025 12:08
@juan-fernandez juan-fernandez requested review from a team as code owners December 2, 2025 12:08
@juan-fernandez juan-fernandez changed the title [test optimization] Add branch parameter to test management API request [test optimization][SDTEST-3118] Add branch parameter to test management API request Dec 2, 2025
@juan-fernandez juan-fernandez changed the title [test optimization][SDTEST-3118] Add branch parameter to test management API request [test optimization] Add branch parameter to test management API request Dec 2, 2025
@dd-trace-dotnet-ci-bot
Copy link

Execution-Time Benchmarks Report ⏱️

Execution-time results for samples comparing This PR (7891) and master.

✅ No regressions detected - check the details below

Full Metrics Comparison

FakeDbCommand

Metric Master (Mean ± 95% CI) Current (Mean ± 95% CI) Change Status
.NET Framework 4.8 - Baseline
duration75.51 ± (75.51 - 76.16) ms74.58 ± (74.65 - 75.20) ms-1.2%
.NET Framework 4.8 - Bailout
duration79.71 ± (79.41 - 80.04) ms80.75 ± (80.60 - 81.42) ms+1.3%✅⬆️
.NET Framework 4.8 - CallTarget+Inlining+NGEN
duration1059.05 ± (1059.60 - 1068.42) ms1072.25 ± (1069.64 - 1078.44) ms+1.2%✅⬆️
.NET Core 3.1 - Baseline
process.internal_duration_ms22.87 ± (22.80 - 22.95) ms22.99 ± (22.92 - 23.07) ms+0.5%✅⬆️
process.time_to_main_ms86.29 ± (85.99 - 86.59) ms87.64 ± (87.25 - 88.03) ms+1.6%✅⬆️
runtime.dotnet.exceptions.count0 ± (0 - 0)0 ± (0 - 0)+0.0%
runtime.dotnet.mem.committed10.90 ± (10.90 - 10.91) MB10.91 ± (10.91 - 10.92) MB+0.1%✅⬆️
runtime.dotnet.threads.count12 ± (12 - 12)12 ± (12 - 12)+0.0%
.NET Core 3.1 - Bailout
process.internal_duration_ms22.71 ± (22.65 - 22.77) ms22.71 ± (22.65 - 22.78) ms+0.0%✅⬆️
process.time_to_main_ms87.36 ± (87.01 - 87.71) ms88.24 ± (87.86 - 88.63) ms+1.0%✅⬆️
runtime.dotnet.exceptions.count0 ± (0 - 0)0 ± (0 - 0)+0.0%
runtime.dotnet.mem.committed10.95 ± (10.94 - 10.95) MB10.95 ± (10.95 - 10.95) MB+0.0%✅⬆️
runtime.dotnet.threads.count13 ± (13 - 13)13 ± (13 - 13)+0.0%
.NET Core 3.1 - CallTarget+Inlining+NGEN
process.internal_duration_ms220.19 ± (218.68 - 221.71) ms219.75 ± (218.26 - 221.24) ms-0.2%
process.time_to_main_ms499.39 ± (498.24 - 500.53) ms500.61 ± (499.46 - 501.77) ms+0.2%✅⬆️
runtime.dotnet.exceptions.count0 ± (0 - 0)0 ± (0 - 0)+0.0%
runtime.dotnet.mem.committed47.87 ± (47.85 - 47.89) MB47.89 ± (47.87 - 47.91) MB+0.0%✅⬆️
runtime.dotnet.threads.count28 ± (28 - 28)28 ± (28 - 28)+0.0%
.NET 6 - Baseline
process.internal_duration_ms21.80 ± (21.74 - 21.86) ms22.04 ± (21.97 - 22.11) ms+1.1%✅⬆️
process.time_to_main_ms76.20 ± (75.93 - 76.47) ms77.76 ± (77.38 - 78.13) ms+2.0%✅⬆️
runtime.dotnet.exceptions.count0 ± (0 - 0)0 ± (0 - 0)+0.0%
runtime.dotnet.mem.committed10.59 ± (10.59 - 10.59) MB10.63 ± (10.62 - 10.63) MB+0.3%✅⬆️
runtime.dotnet.threads.count10 ± (10 - 10)10 ± (10 - 10)+0.0%
.NET 6 - Bailout
process.internal_duration_ms21.78 ± (21.71 - 21.85) ms21.66 ± (21.59 - 21.73) ms-0.5%
process.time_to_main_ms77.80 ± (77.49 - 78.10) ms77.54 ± (77.15 - 77.93) ms-0.3%
runtime.dotnet.exceptions.count0 ± (0 - 0)0 ± (0 - 0)+0.0%
runtime.dotnet.mem.committed10.64 ± (10.64 - 10.64) MB10.66 ± (10.65 - 10.66) MB+0.2%✅⬆️
runtime.dotnet.threads.count11 ± (11 - 11)11 ± (11 - 11)+0.0%
.NET 6 - CallTarget+Inlining+NGEN
process.internal_duration_ms210.02 ± (208.88 - 211.16) ms213.21 ± (211.97 - 214.44) ms+1.5%✅⬆️
process.time_to_main_ms465.92 ± (464.77 - 467.07) ms472.39 ± (471.23 - 473.55) ms+1.4%✅⬆️
runtime.dotnet.exceptions.count0 ± (0 - 0)0 ± (0 - 0)+0.0%
runtime.dotnet.mem.committed48.14 ± (48.11 - 48.17) MB48.06 ± (48.04 - 48.09) MB-0.2%
runtime.dotnet.threads.count28 ± (28 - 28)28 ± (28 - 28)+0.0%✅⬆️
.NET 8 - Baseline
process.internal_duration_ms19.67 ± (19.61 - 19.73) ms19.88 ± (19.82 - 19.95) ms+1.1%✅⬆️
process.time_to_main_ms74.47 ± (74.15 - 74.80) ms75.67 ± (75.29 - 76.04) ms+1.6%✅⬆️
runtime.dotnet.exceptions.count0 ± (0 - 0)0 ± (0 - 0)+0.0%
runtime.dotnet.mem.committed7.64 ± (7.64 - 7.65) MB7.66 ± (7.66 - 7.67) MB+0.3%✅⬆️
runtime.dotnet.threads.count10 ± (10 - 10)10 ± (10 - 10)+0.0%
.NET 8 - Bailout
process.internal_duration_ms20.05 ± (19.97 - 20.12) ms19.89 ± (19.83 - 19.96) ms-0.8%
process.time_to_main_ms78.63 ± (78.21 - 79.06) ms76.63 ± (76.25 - 77.01) ms-2.5%
runtime.dotnet.exceptions.count0 ± (0 - 0)0 ± (0 - 0)+0.0%
runtime.dotnet.mem.committed7.69 ± (7.69 - 7.70) MB7.72 ± (7.71 - 7.72) MB+0.3%✅⬆️
runtime.dotnet.threads.count11 ± (11 - 11)11 ± (11 - 11)+0.0%
.NET 8 - CallTarget+Inlining+NGEN
process.internal_duration_ms194.08 ± (192.88 - 195.27) ms198.81 ± (197.31 - 200.31) ms+2.4%✅⬆️
process.time_to_main_ms456.43 ± (455.31 - 457.55) ms468.31 ± (466.84 - 469.78) ms+2.6%✅⬆️
runtime.dotnet.exceptions.count0 ± (0 - 0)0 ± (0 - 0)+0.0%
runtime.dotnet.mem.committed36.34 ± (36.30 - 36.38) MB36.41 ± (36.37 - 36.46) MB+0.2%✅⬆️
runtime.dotnet.threads.count27 ± (27 - 27)27 ± (27 - 27)-0.3%

HttpMessageHandler

Metric Master (Mean ± 95% CI) Current (Mean ± 95% CI) Change Status
.NET Framework 4.8 - Baseline
duration192.38 ± (192.44 - 193.25) ms192.51 ± (192.53 - 193.21) ms+0.1%✅⬆️
.NET Framework 4.8 - Bailout
duration196.53 ± (196.38 - 196.89) ms196.34 ± (196.17 - 196.74) ms-0.1%
.NET Framework 4.8 - CallTarget+Inlining+NGEN
duration1109.78 ± (1112.40 - 1119.95) ms1108.21 ± (1111.44 - 1119.70) ms-0.1%
.NET Core 3.1 - Baseline
process.internal_duration_ms187.76 ± (187.35 - 188.16) ms188.45 ± (188.12 - 188.79) ms+0.4%✅⬆️
process.time_to_main_ms80.58 ± (80.38 - 80.79) ms80.66 ± (80.40 - 80.93) ms+0.1%✅⬆️
runtime.dotnet.exceptions.count3 ± (3 - 3)3 ± (3 - 3)+0.0%
runtime.dotnet.mem.committed16.09 ± (16.06 - 16.11) MB16.08 ± (16.05 - 16.10) MB-0.1%
runtime.dotnet.threads.count20 ± (19 - 20)20 ± (19 - 20)-0.0%
.NET Core 3.1 - Bailout
process.internal_duration_ms187.18 ± (186.86 - 187.50) ms187.91 ± (187.57 - 188.25) ms+0.4%✅⬆️
process.time_to_main_ms81.88 ± (81.75 - 82.00) ms81.87 ± (81.69 - 82.04) ms-0.0%
runtime.dotnet.exceptions.count3 ± (3 - 3)3 ± (3 - 3)+0.0%
runtime.dotnet.mem.committed16.14 ± (16.12 - 16.17) MB16.17 ± (16.14 - 16.20) MB+0.2%✅⬆️
runtime.dotnet.threads.count21 ± (20 - 21)21 ± (21 - 21)+0.5%✅⬆️
.NET Core 3.1 - CallTarget+Inlining+NGEN
process.internal_duration_ms399.72 ± (396.96 - 402.48) ms400.98 ± (398.35 - 403.60) ms+0.3%✅⬆️
process.time_to_main_ms473.05 ± (472.44 - 473.65) ms471.55 ± (470.93 - 472.16) ms-0.3%
runtime.dotnet.exceptions.count3 ± (3 - 3)3 ± (3 - 3)+0.0%
runtime.dotnet.mem.committed58.68 ± (58.56 - 58.81) MB58.60 ± (58.47 - 58.74) MB-0.1%
runtime.dotnet.threads.count29 ± (29 - 29)29 ± (29 - 29)-0.0%
.NET 6 - Baseline
process.internal_duration_ms192.79 ± (192.47 - 193.12) ms192.85 ± (192.42 - 193.28) ms+0.0%✅⬆️
process.time_to_main_ms69.96 ± (69.80 - 70.13) ms69.81 ± (69.63 - 69.99) ms-0.2%
runtime.dotnet.exceptions.count4 ± (4 - 4)4 ± (4 - 4)+0.0%
runtime.dotnet.mem.committed16.22 ± (16.11 - 16.34) MB16.23 ± (16.12 - 16.35) MB+0.1%✅⬆️
runtime.dotnet.threads.count19 ± (19 - 19)18 ± (18 - 19)-2.4%
.NET 6 - Bailout
process.internal_duration_ms191.29 ± (191.04 - 191.54) ms190.69 ± (190.38 - 191.00) ms-0.3%
process.time_to_main_ms70.82 ± (70.73 - 70.91) ms70.47 ± (70.39 - 70.55) ms-0.5%
runtime.dotnet.exceptions.count4 ± (4 - 4)4 ± (4 - 4)+0.0%
runtime.dotnet.mem.committed16.10 ± (15.96 - 16.24) MB16.18 ± (16.04 - 16.33) MB+0.5%✅⬆️
runtime.dotnet.threads.count20 ± (19 - 20)19 ± (19 - 19)-2.9%
.NET 6 - CallTarget+Inlining+NGEN
process.internal_duration_ms409.55 ± (407.01 - 412.10) ms406.89 ± (404.74 - 409.04) ms-0.6%
process.time_to_main_ms441.10 ± (440.35 - 441.85) ms442.10 ± (441.48 - 442.73) ms+0.2%✅⬆️
runtime.dotnet.exceptions.count4 ± (4 - 4)4 ± (4 - 4)+0.0%
runtime.dotnet.mem.committed58.95 ± (58.78 - 59.13) MB58.45 ± (58.30 - 58.61) MB-0.9%
runtime.dotnet.threads.count30 ± (29 - 30)30 ± (30 - 30)+0.1%✅⬆️
.NET 8 - Baseline
process.internal_duration_ms190.32 ± (190.02 - 190.62) ms190.85 ± (190.50 - 191.20) ms+0.3%✅⬆️
process.time_to_main_ms69.33 ± (69.16 - 69.49) ms69.67 ± (69.47 - 69.86) ms+0.5%✅⬆️
runtime.dotnet.exceptions.count4 ± (4 - 4)4 ± (4 - 4)+0.0%
runtime.dotnet.mem.committed11.81 ± (11.78 - 11.83) MB11.77 ± (11.75 - 11.80) MB-0.3%
runtime.dotnet.threads.count18 ± (18 - 18)18 ± (18 - 18)-0.1%
.NET 8 - Bailout
process.internal_duration_ms190.13 ± (189.86 - 190.39) ms189.44 ± (189.19 - 189.69) ms-0.4%
process.time_to_main_ms70.41 ± (70.29 - 70.52) ms70.18 ± (70.11 - 70.26) ms-0.3%
runtime.dotnet.exceptions.count4 ± (4 - 4)4 ± (4 - 4)+0.0%
runtime.dotnet.mem.committed11.80 ± (11.77 - 11.84) MB11.82 ± (11.79 - 11.84) MB+0.1%✅⬆️
runtime.dotnet.threads.count19 ± (19 - 19)19 ± (19 - 19)-0.4%
.NET 8 - CallTarget+Inlining+NGEN
process.internal_duration_ms367.77 ± (366.27 - 369.27) ms365.01 ± (363.41 - 366.61) ms-0.7%
process.time_to_main_ms429.98 ± (429.24 - 430.72) ms429.41 ± (428.77 - 430.06) ms-0.1%
runtime.dotnet.exceptions.count4 ± (4 - 4)4 ± (4 - 4)+0.0%
runtime.dotnet.mem.committed47.88 ± (47.85 - 47.91) MB47.94 ± (47.91 - 47.97) MB+0.1%✅⬆️
runtime.dotnet.threads.count29 ± (29 - 29)29 ± (29 - 29)-0.1%
Comparison explanation

Execution-time benchmarks measure the whole time it takes to execute a program, and are intended to measure the one-off costs. Cases where the execution time results for the PR are worse than latest master results are highlighted in **red**. The following thresholds were used for comparing the execution times:

  • Welch test with statistical test for significance of 5%
  • Only results indicating a difference greater than 5% and 5 ms are considered.

Note that these results are based on a single point-in-time result for each branch. For full results, see the dashboard.

Graphs show the p99 interval based on the mean and StdDev of the test run, as well as the mean value of the run (shown as a diamond below the graph).

Duration charts
FakeDbCommand (.NET Framework 4.8)
gantt
    title Execution time (ms) FakeDbCommand (.NET Framework 4.8)
    dateFormat  x
    axisFormat %Q
    todayMarker off
    section Baseline
    This PR (7891) - mean (75ms)  : 71, 79
    master - mean (76ms)  : 71, 81

    section Bailout
    This PR (7891) - mean (81ms)  : 75, 87
    master - mean (80ms)  : 75, 85

    section CallTarget+Inlining+NGEN
    This PR (7891) - mean (1,074ms)  : 1009, 1139
    master - mean (1,064ms)  : 998, 1130

Loading
FakeDbCommand (.NET Core 3.1)
gantt
    title Execution time (ms) FakeDbCommand (.NET Core 3.1)
    dateFormat  x
    axisFormat %Q
    todayMarker off
    section Baseline
    This PR (7891) - mean (118ms)  : 111, 126
    master - mean (117ms)  : 111, 122

    section Bailout
    This PR (7891) - mean (118ms)  : 112, 125
    master - mean (117ms)  : 110, 125

    section CallTarget+Inlining+NGEN
    This PR (7891) - mean (761ms)  : 709, 812
    master - mean (758ms)  : 718, 798

Loading
FakeDbCommand (.NET 6)
gantt
    title Execution time (ms) FakeDbCommand (.NET 6)
    dateFormat  x
    axisFormat %Q
    todayMarker off
    section Baseline
    This PR (7891) - mean (107ms)  : 99, 115
    master - mean (105ms)  : 100, 110

    section Bailout
    This PR (7891) - mean (106ms)  : 98, 114
    master - mean (107ms)  : 102, 112

    section CallTarget+Inlining+NGEN
    This PR (7891) - mean (714ms)  : 682, 745
    master - mean (703ms)  : 672, 734

Loading
FakeDbCommand (.NET 8)
gantt
    title Execution time (ms) FakeDbCommand (.NET 8)
    dateFormat  x
    axisFormat %Q
    todayMarker off
    section Baseline
    This PR (7891) - mean (104ms)  : 95, 113
    master - mean (103ms)  : 95, 110

    section Bailout
    This PR (7891) - mean (105ms)  : 98, 111
    master - mean (107ms)  : 99, 115

    section CallTarget+Inlining+NGEN
    This PR (7891) - mean (706ms)  : 675, 738
    master - mean (684ms)  : 642, 725

Loading
HttpMessageHandler (.NET Framework 4.8)
gantt
    title Execution time (ms) HttpMessageHandler (.NET Framework 4.8)
    dateFormat  x
    axisFormat %Q
    todayMarker off
    section Baseline
    This PR (7891) - mean (193ms)  : 189, 196
    master - mean (193ms)  : 189, 197

    section Bailout
    This PR (7891) - mean (196ms)  : 194, 199
    master - mean (197ms)  : 194, 199

    section CallTarget+Inlining+NGEN
    This PR (7891) - mean (1,116ms)  : 1056, 1175
    master - mean (1,116ms)  : 1062, 1170

Loading
HttpMessageHandler (.NET Core 3.1)
gantt
    title Execution time (ms) HttpMessageHandler (.NET Core 3.1)
    dateFormat  x
    axisFormat %Q
    todayMarker off
    section Baseline
    This PR (7891) - mean (278ms)  : 272, 283
    master - mean (277ms)  : 271, 283

    section Bailout
    This PR (7891) - mean (278ms)  : 274, 283
    master - mean (277ms)  : 274, 281

    section CallTarget+Inlining+NGEN
    This PR (7891) - mean (908ms)  : 858, 959
    master - mean (911ms)  : 865, 957

Loading
HttpMessageHandler (.NET 6)
gantt
    title Execution time (ms) HttpMessageHandler (.NET 6)
    dateFormat  x
    axisFormat %Q
    todayMarker off
    section Baseline
    This PR (7891) - mean (271ms)  : 265, 277
    master - mean (271ms)  : 267, 275

    section Bailout
    This PR (7891) - mean (269ms)  : 265, 272
    master - mean (270ms)  : 267, 274

    section CallTarget+Inlining+NGEN
    This PR (7891) - mean (879ms)  : 843, 915
    master - mean (885ms)  : 845, 925

Loading
HttpMessageHandler (.NET 8)
gantt
    title Execution time (ms) HttpMessageHandler (.NET 8)
    dateFormat  x
    axisFormat %Q
    todayMarker off
    section Baseline
    This PR (7891) - mean (270ms)  : 264, 277
    master - mean (269ms)  : 265, 272

    section Bailout
    This PR (7891) - mean (269ms)  : 265, 273
    master - mean (270ms)  : 267, 273

    section CallTarget+Inlining+NGEN
    This PR (7891) - mean (825ms)  : 803, 847
    master - mean (827ms)  : 806, 848

Loading

@pr-commenter
Copy link

pr-commenter bot commented Dec 2, 2025

Benchmarks

Benchmarks Report for benchmark platform 🐌

Benchmarks for #7891 compared to master:

  • 2 benchmarks are faster, with geometric mean 1.441
  • 5 benchmarks have fewer allocations
  • 1 benchmarks have more allocations

The following thresholds were used for comparing the benchmark speeds:

  • Mann–Whitney U test with statistical test for significance of 5%
  • Only results indicating a difference greater than 10% and 0.3 ns are considered.

Allocation changes below 0.5% are ignored.

Benchmark details

Benchmarks.Trace.ActivityBenchmark - Same speed ✔️ Fewer allocations 🎉

Fewer allocations 🎉 in #7891

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.ActivityBenchmark.StartStopWithChild‑net472 6 KB 5.97 KB -32 B -0.53%

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master StartStopWithChild net6.0 10.9μs 60.1ns 345ns 0 0 0 5.5 KB
master StartStopWithChild netcoreapp3.1 13.3μs 64ns 271ns 0 0 0 5.71 KB
master StartStopWithChild net472 22.6μs 113ns 490ns 0.901 0.113 0 6 KB
#7891 StartStopWithChild net6.0 10.9μs 58.4ns 325ns 0 0 0 5.49 KB
#7891 StartStopWithChild netcoreapp3.1 14.7μs 70.7ns 308ns 0 0 0 5.71 KB
#7891 StartStopWithChild net472 22.3μs 119ns 632ns 0.864 0.216 0 5.97 KB
Benchmarks.Trace.AgentWriterBenchmark - Same speed ✔️ Fewer allocations 🎉

Fewer allocations 🎉 in #7891

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.AgentWriterBenchmark.WriteAndFlushEnrichedTraces‑net472 3.39 KB 3.26 KB -128 B -3.77%

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master WriteAndFlushEnrichedTraces net6.0 1.27ms 129ns 464ns 0 0 0 2.7 KB
master WriteAndFlushEnrichedTraces netcoreapp3.1 1.4ms 3.16μs 12.2μs 0 0 0 2.7 KB
master WriteAndFlushEnrichedTraces net472 1.73ms 1.22μs 4.74μs 0 0 0 3.39 KB
#7891 WriteAndFlushEnrichedTraces net6.0 1.26ms 126ns 470ns 0 0 0 2.7 KB
#7891 WriteAndFlushEnrichedTraces netcoreapp3.1 1.39ms 113ns 436ns 0 0 0 2.7 KB
#7891 WriteAndFlushEnrichedTraces net472 1.73ms 4.44μs 17.2μs 0 0 0 3.26 KB
Benchmarks.Trace.Asm.AppSecBodyBenchmark - Same speed ✔️ Same allocations ✔️

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master AllCycleSimpleBody net6.0 1.09μs 5.85ns 33.6ns 0 0 0 1.22 KB
master AllCycleSimpleBody netcoreapp3.1 1.39μs 7.92ns 58.2ns 0 0 0 1.2 KB
master AllCycleSimpleBody net472 1.05μs 0.31ns 1.2ns 0.19 0 0 1.23 KB
master AllCycleMoreComplexBody net6.0 7.28μs 33.1ns 128ns 0 0 0 4.72 KB
master AllCycleMoreComplexBody netcoreapp3.1 9.07μs 39.3ns 152ns 0 0 0 4.62 KB
master AllCycleMoreComplexBody net472 7.7μs 4.18ns 16.2ns 0.73 0 0 4.74 KB
master ObjectExtractorSimpleBody net6.0 328ns 1.64ns 6.98ns 0 0 0 280 B
master ObjectExtractorSimpleBody netcoreapp3.1 397ns 2.16ns 12.8ns 0 0 0 272 B
master ObjectExtractorSimpleBody net472 300ns 0.0223ns 0.0863ns 0.0438 0 0 281 B
master ObjectExtractorMoreComplexBody net6.0 6.26μs 7.67ns 29.7ns 0 0 0 3.78 KB
master ObjectExtractorMoreComplexBody netcoreapp3.1 7.87μs 40.8ns 192ns 0 0 0 3.69 KB
master ObjectExtractorMoreComplexBody net472 6.77μs 1.04ns 4.02ns 0.576 0 0 3.8 KB
#7891 AllCycleSimpleBody net6.0 1.11μs 6.27ns 46.5ns 0 0 0 1.22 KB
#7891 AllCycleSimpleBody netcoreapp3.1 1.37μs 7.86ns 63.9ns 0 0 0 1.2 KB
#7891 AllCycleSimpleBody net472 1.06μs 3.91ns 15.2ns 0.194 0 0 1.23 KB
#7891 AllCycleMoreComplexBody net6.0 7.38μs 39.9ns 219ns 0 0 0 4.72 KB
#7891 AllCycleMoreComplexBody netcoreapp3.1 9.08μs 38.2ns 143ns 0 0 0 4.62 KB
#7891 AllCycleMoreComplexBody net472 7.73μs 5.29ns 19.8ns 0.735 0 0 4.74 KB
#7891 ObjectExtractorSimpleBody net6.0 324ns 1.82ns 11.4ns 0 0 0 280 B
#7891 ObjectExtractorSimpleBody netcoreapp3.1 403ns 2.05ns 9.83ns 0 0 0 272 B
#7891 ObjectExtractorSimpleBody net472 301ns 0.0958ns 0.345ns 0.0439 0 0 281 B
#7891 ObjectExtractorMoreComplexBody net6.0 6.38μs 31.5ns 133ns 0 0 0 3.78 KB
#7891 ObjectExtractorMoreComplexBody netcoreapp3.1 7.9μs 37.1ns 158ns 0 0 0 3.69 KB
#7891 ObjectExtractorMoreComplexBody net472 6.86μs 13.4ns 52ns 0.579 0 0 3.8 KB
Benchmarks.Trace.Asm.AppSecEncoderBenchmark - Same speed ✔️ Same allocations ✔️

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master EncodeArgs net6.0 76.8μs 166ns 643ns 0 0 0 32.4 KB
master EncodeArgs netcoreapp3.1 99.5μs 120ns 449ns 0 0 0 32.4 KB
master EncodeArgs net472 108μs 16.7ns 64.5ns 4.88 0 0 32.5 KB
master EncodeLegacyArgs net6.0 144μs 70.9ns 265ns 0 0 0 2.14 KB
master EncodeLegacyArgs netcoreapp3.1 197μs 87.9ns 329ns 0 0 0 2.14 KB
master EncodeLegacyArgs net472 263μs 20.3ns 78.5ns 0 0 0 2.14 KB
#7891 EncodeArgs net6.0 76.2μs 233ns 871ns 0 0 0 32.4 KB
#7891 EncodeArgs netcoreapp3.1 97.8μs 283ns 1.1μs 0 0 0 32.4 KB
#7891 EncodeArgs net472 109μs 10.6ns 38.1ns 4.92 0 0 32.5 KB
#7891 EncodeLegacyArgs net6.0 143μs 13.1ns 47.2ns 0 0 0 2.14 KB
#7891 EncodeLegacyArgs netcoreapp3.1 197μs 54.9ns 206ns 0 0 0 2.14 KB
#7891 EncodeLegacyArgs net472 266μs 48.7ns 189ns 0 0 0 2.15 KB
Benchmarks.Trace.Asm.AppSecWafBenchmark - Same speed ✔️ Same allocations ✔️

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master RunWafRealisticBenchmark net6.0 426μs 782ns 2.93μs 0 0 0 4.55 KB
master RunWafRealisticBenchmark netcoreapp3.1 490μs 5.79μs 52.8μs 0 0 0 4.48 KB
master RunWafRealisticBenchmark net472 498μs 845ns 3.16μs 0 0 0 0 b
master RunWafRealisticBenchmarkWithAttack net6.0 310μs 1.45μs 5.62μs 0 0 0 2.24 KB
master RunWafRealisticBenchmarkWithAttack netcoreapp3.1 372μs 3.87μs 37.7μs 0 0 0 2.22 KB
master RunWafRealisticBenchmarkWithAttack net472 372μs 216ns 779ns 0 0 0 0 b
#7891 RunWafRealisticBenchmark net6.0 424μs 777ns 2.8μs 0 0 0 4.55 KB
#7891 RunWafRealisticBenchmark netcoreapp3.1 450μs 1.39μs 4.81μs 0 0 0 4.48 KB
#7891 RunWafRealisticBenchmark net472 495μs 417ns 1.5μs 0 0 0 0 b
#7891 RunWafRealisticBenchmarkWithAttack net6.0 329μs 1.38μs 5.15μs 0 0 0 2.24 KB
#7891 RunWafRealisticBenchmarkWithAttack netcoreapp3.1 349μs 3.2μs 30.8μs 0 0 0 2.22 KB
#7891 RunWafRealisticBenchmarkWithAttack net472 371μs 267ns 964ns 0 0 0 0 b
Benchmarks.Trace.AspNetCoreBenchmark - Unknown 🤷 Same allocations ✔️

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master SendRequest net6.0 84.3μs 71.4ns 258ns 0 0 0 19.03 KB
master SendRequest netcoreapp3.1 97.9μs 478ns 3.67μs 0 0 0 21.25 KB
master SendRequest net472 0ns 0ns 0ns 0 0 0 0 b
#7891 SendRequest net6.0 84.3μs 85.8ns 309ns 0 0 0 19.04 KB
#7891 SendRequest netcoreapp3.1 97.8μs 519ns 2.6μs 0 0 0 21.25 KB
#7891 SendRequest net472 0ns 0ns 0ns 0 0 0 0 b
Benchmarks.Trace.CharSliceBenchmark - Faster 🎉 Same allocations ✔️

Faster 🎉 in #7891

Benchmark base/diff Base Median (ns) Diff Median (ns) Modality
Benchmarks.Trace.CharSliceBenchmark.OriginalCharSlice‑netcoreapp3.1 1.825 3,910,100.00 2,142,250.00

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master OriginalCharSlice net6.0 1.94ms 1.33μs 5.14μs 0 0 0 640 KB
master OriginalCharSlice netcoreapp3.1 3.91ms 816ns 3.16μs 0 0 0 640.05 KB
master OriginalCharSlice net472 2.68ms 772ns 2.99μs 0 0 0 638.98 KB
master OptimizedCharSlice net6.0 1.5ms 545ns 1.89μs 0 0 0 0 b
master OptimizedCharSlice netcoreapp3.1 2.81ms 798ns 2.99μs 0 0 0 0 b
master OptimizedCharSlice net472 1.93ms 754ns 2.92μs 0 0 0 0 b
master OptimizedCharSliceWithPool net6.0 1.07ms 227ns 788ns 0 0 0 0 b
master OptimizedCharSliceWithPool netcoreapp3.1 1.86ms 2.14μs 8.29μs 0 0 0 0 b
master OptimizedCharSliceWithPool net472 1.13ms 402ns 1.51μs 0 0 0 0 b
#7891 OriginalCharSlice net6.0 1.94ms 781ns 2.92μs 0 0 0 640 KB
#7891 OriginalCharSlice netcoreapp3.1 2.14ms 2.69μs 18.2μs 0 0 0 640 KB
#7891 OriginalCharSlice net472 2.59ms 2.01μs 7.25μs 0 0 0 638.98 KB
#7891 OptimizedCharSlice net6.0 1.42ms 1μs 3.88μs 0 0 0 0 b
#7891 OptimizedCharSlice netcoreapp3.1 2.8ms 1.95μs 7.28μs 0 0 0 0 b
#7891 OptimizedCharSlice net472 1.93ms 417ns 1.51μs 0 0 0 0 b
#7891 OptimizedCharSliceWithPool net6.0 1.15ms 397ns 1.48μs 0 0 0 0 b
#7891 OptimizedCharSliceWithPool netcoreapp3.1 1.9ms 1.27μs 4.91μs 0 0 0 0 b
#7891 OptimizedCharSliceWithPool net472 1.14ms 611ns 2.37μs 0 0 0 0 b
Benchmarks.Trace.CIVisibilityProtocolWriterBenchmark - Faster 🎉 Fewer allocations 🎉

Faster 🎉 in #7891

Benchmark base/diff Base Median (ns) Diff Median (ns) Modality
Benchmarks.Trace.CIVisibilityProtocolWriterBenchmark.WriteAndFlushEnrichedTraces‑netcoreapp3.1 1.138 787,737.05 692,233.93

Fewer allocations 🎉 in #7891

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.CIVisibilityProtocolWriterBenchmark.WriteAndFlushEnrichedTraces‑netcoreapp3.1 42.05 KB 41.82 KB -238 B -0.57%
Benchmarks.Trace.CIVisibilityProtocolWriterBenchmark.WriteAndFlushEnrichedTraces‑net6.0 42.48 KB 41.73 KB -747 B -1.76%

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master WriteAndFlushEnrichedTraces net6.0 704μs 3.36μs 15μs 0 0 0 42.48 KB
master WriteAndFlushEnrichedTraces netcoreapp3.1 768μs 4.74μs 46.2μs 0 0 0 42.05 KB
master WriteAndFlushEnrichedTraces net472 873μs 1.94μs 7μs 8.33 4.17 0 55.71 KB
#7891 WriteAndFlushEnrichedTraces net6.0 648μs 2.5μs 9.34μs 0 0 0 41.73 KB
#7891 WriteAndFlushEnrichedTraces netcoreapp3.1 692μs 859ns 3.1μs 0 0 0 41.82 KB
#7891 WriteAndFlushEnrichedTraces net472 818μs 1.41μs 5.27μs 4.46 0 0 55.74 KB
Benchmarks.Trace.DbCommandBenchmark - Same speed ✔️ Same allocations ✔️

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master ExecuteNonQuery net6.0 1.99μs 10.1ns 48.5ns 0 0 0 1.02 KB
master ExecuteNonQuery netcoreapp3.1 2.79μs 12.8ns 51.1ns 0 0 0 1.02 KB
master ExecuteNonQuery net472 2.72μs 1.61ns 5.81ns 0.149 0 0 987 B
#7891 ExecuteNonQuery net6.0 1.93μs 0.652ns 2.52ns 0 0 0 1.02 KB
#7891 ExecuteNonQuery netcoreapp3.1 2.63μs 2.7ns 10.4ns 0 0 0 1.02 KB
#7891 ExecuteNonQuery net472 2.77μs 3.31ns 12.8ns 0.152 0 0 987 B
Benchmarks.Trace.ElasticsearchBenchmark - Same speed ✔️ Same allocations ✔️

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master CallElasticsearch net6.0 1.69μs 8.66ns 41.5ns 0 0 0 1.01 KB
master CallElasticsearch netcoreapp3.1 2.36μs 6.77ns 26.2ns 0 0 0 1.02 KB
master CallElasticsearch net472 3.3μs 5.6ns 21.7ns 0.148 0 0 1.01 KB
master CallElasticsearchAsync net6.0 1.73μs 1.26ns 4.86ns 0 0 0 984 B
master CallElasticsearchAsync netcoreapp3.1 2.49μs 7.99ns 31ns 0 0 0 1.07 KB
master CallElasticsearchAsync net472 3.6μs 2.19ns 7.9ns 0.162 0 0 1.07 KB
#7891 CallElasticsearch net6.0 1.84μs 4.34ns 16.8ns 0 0 0 1.01 KB
#7891 CallElasticsearch netcoreapp3.1 2.4μs 11.8ns 47.1ns 0 0 0 1.02 KB
#7891 CallElasticsearch net472 3.34μs 6.96ns 27ns 0.151 0 0 1.01 KB
#7891 CallElasticsearchAsync net6.0 1.74μs 7.44ns 28.8ns 0 0 0 984 B
#7891 CallElasticsearchAsync netcoreapp3.1 2.47μs 6.48ns 25.1ns 0 0 0 1.07 KB
#7891 CallElasticsearchAsync net472 3.49μs 2.8ns 10.9ns 0.158 0 0 1.07 KB
Benchmarks.Trace.GraphQLBenchmark - Same speed ✔️ Same allocations ✔️

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master ExecuteAsync net6.0 1.85μs 8.87ns 36.6ns 0 0 0 952 B
master ExecuteAsync netcoreapp3.1 2.45μs 8.82ns 34.2ns 0 0 0 952 B
master ExecuteAsync net472 2.67μs 0.607ns 2.27ns 0.133 0 0 915 B
#7891 ExecuteAsync net6.0 1.89μs 7.28ns 26.3ns 0 0 0 952 B
#7891 ExecuteAsync netcoreapp3.1 2.33μs 7.34ns 27.4ns 0 0 0 952 B
#7891 ExecuteAsync net472 2.7μs 2.68ns 10.4ns 0.136 0 0 915 B
Benchmarks.Trace.HttpClientBenchmark - Same speed ✔️ Same allocations ✔️

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master SendAsync net6.0 7.26μs 7.62ns 28.5ns 0 0 0 2.34 KB
master SendAsync netcoreapp3.1 8.24μs 21.4ns 83.1ns 0 0 0 2.89 KB
master SendAsync net472 12.3μs 10.3ns 40ns 0.489 0 0 3.14 KB
#7891 SendAsync net6.0 6.99μs 7.47ns 28.9ns 0 0 0 2.34 KB
#7891 SendAsync netcoreapp3.1 8.35μs 18.7ns 72.3ns 0 0 0 2.89 KB
#7891 SendAsync net472 12.2μs 9.99ns 37.4ns 0.489 0 0 3.14 KB
Benchmarks.Trace.Iast.StringAspectsBenchmark - Same speed ✔️ More allocations ⚠️

More allocations ⚠️ in #7891

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.Iast.StringAspectsBenchmark.StringConcatAspectBenchmark‑net6.0 273.73 KB 276.85 KB 3.12 KB 1.14%

Fewer allocations 🎉 in #7891

Benchmark Base Allocated Diff Allocated Change Change %
Benchmarks.Trace.Iast.StringAspectsBenchmark.StringConcatAspectBenchmark‑netcoreapp3.1 275.78 KB 257.8 KB -17.98 KB -6.52%

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master StringConcatBenchmark net6.0 44.2μs 242ns 1.28μs 0 0 0 42.51 KB
master StringConcatBenchmark netcoreapp3.1 49.9μs 335ns 3.13μs 0 0 0 42.54 KB
master StringConcatBenchmark net472 57μs 267ns 1.07μs 0 0 0 49.15 KB
master StringConcatAspectBenchmark net6.0 510μs 1.92μs 9.42μs 0 0 0 273.73 KB
master StringConcatAspectBenchmark netcoreapp3.1 469μs 5.64μs 55.8μs 0 0 0 275.78 KB
master StringConcatAspectBenchmark net472 406μs 2.18μs 18.9μs 0 0 0 270.34 KB
#7891 StringConcatBenchmark net6.0 45.6μs 244ns 1.22μs 0 0 0 42.51 KB
#7891 StringConcatBenchmark netcoreapp3.1 49.8μs 232ns 1.39μs 0 0 0 42.54 KB
#7891 StringConcatBenchmark net472 56.9μs 295ns 1.41μs 0 0 0 49.15 KB
#7891 StringConcatAspectBenchmark net6.0 490μs 1.97μs 7.87μs 0 0 0 276.85 KB
#7891 StringConcatAspectBenchmark netcoreapp3.1 432μs 5.6μs 55.2μs 0 0 0 257.8 KB
#7891 StringConcatAspectBenchmark net472 408μs 2.19μs 12μs 0 0 0 270.34 KB
Benchmarks.Trace.ILoggerBenchmark - Same speed ✔️ Same allocations ✔️

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master EnrichedLog net6.0 2.69μs 13.2ns 54.6ns 0 0 0 1.69 KB
master EnrichedLog netcoreapp3.1 3.53μs 16.1ns 62.3ns 0 0 0 1.7 KB
master EnrichedLog net472 3.76μs 4.8ns 18.6ns 0.244 0 0 1.6 KB
#7891 EnrichedLog net6.0 2.73μs 2.32ns 8.97ns 0 0 0 1.69 KB
#7891 EnrichedLog netcoreapp3.1 3.47μs 16.8ns 69.4ns 0 0 0 1.7 KB
#7891 EnrichedLog net472 3.86μs 2.41ns 9.34ns 0.251 0 0 1.6 KB
Benchmarks.Trace.Log4netBenchmark - Same speed ✔️ Same allocations ✔️

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master EnrichedLog net6.0 124μs 42ns 157ns 0 0 0 4.31 KB
master EnrichedLog netcoreapp3.1 128μs 34.8ns 126ns 0 0 0 4.31 KB
master EnrichedLog net472 169μs 462ns 1.79μs 0 0 0 4.51 KB
#7891 EnrichedLog net6.0 122μs 71.2ns 267ns 0 0 0 4.31 KB
#7891 EnrichedLog netcoreapp3.1 128μs 241ns 903ns 0 0 0 4.31 KB
#7891 EnrichedLog net472 167μs 143ns 554ns 0 0 0 4.51 KB
Benchmarks.Trace.NLogBenchmark - Same speed ✔️ Same allocations ✔️

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master EnrichedLog net6.0 5.04μs 6.63ns 25.7ns 0 0 0 2.24 KB
master EnrichedLog netcoreapp3.1 6.87μs 3.7ns 13.8ns 0 0 0 2.26 KB
master EnrichedLog net472 7.59μs 6.82ns 26.4ns 0.303 0 0 2.05 KB
#7891 EnrichedLog net6.0 5.08μs 13.6ns 52.8ns 0 0 0 2.24 KB
#7891 EnrichedLog netcoreapp3.1 6.83μs 16.4ns 63.4ns 0 0 0 2.26 KB
#7891 EnrichedLog net472 7.62μs 5.5ns 21.3ns 0.305 0 0 2.05 KB
Benchmarks.Trace.RedisBenchmark - Same speed ✔️ Same allocations ✔️

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master SendReceive net6.0 1.92μs 1.85ns 7.18ns 0 0 0 1.18 KB
master SendReceive netcoreapp3.1 2.51μs 2.13ns 7.99ns 0 0 0 1.19 KB
master SendReceive net472 2.96μs 1.84ns 6.87ns 0.178 0 0 1.17 KB
#7891 SendReceive net6.0 1.96μs 1.43ns 5.53ns 0 0 0 1.18 KB
#7891 SendReceive netcoreapp3.1 2.53μs 12.7ns 58ns 0 0 0 1.19 KB
#7891 SendReceive net472 2.92μs 1.25ns 4.85ns 0.175 0 0 1.17 KB
Benchmarks.Trace.SerilogBenchmark - Same speed ✔️ Same allocations ✔️

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master EnrichedLog net6.0 4.31μs 7.06ns 27.3ns 0 0 0 1.58 KB
master EnrichedLog netcoreapp3.1 5.57μs 22.7ns 87.8ns 0 0 0 1.63 KB
master EnrichedLog net472 6.61μs 9.56ns 37ns 0.296 0 0 2.03 KB
#7891 EnrichedLog net6.0 4.46μs 4.31ns 16.1ns 0 0 0 1.58 KB
#7891 EnrichedLog netcoreapp3.1 5.75μs 18.8ns 70.3ns 0 0 0 1.63 KB
#7891 EnrichedLog net472 6.6μs 6.06ns 23.5ns 0.297 0 0 2.03 KB
Benchmarks.Trace.SpanBenchmark - Same speed ✔️ Same allocations ✔️

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master StartFinishSpan net6.0 787ns 3.97ns 18.6ns 0 0 0 576 B
master StartFinishSpan netcoreapp3.1 970ns 5.15ns 27.8ns 0 0 0 576 B
master StartFinishSpan net472 899ns 0.0761ns 0.285ns 0.0901 0 0 578 B
master StartFinishScope net6.0 947ns 1.91ns 7.41ns 0 0 0 696 B
master StartFinishScope netcoreapp3.1 1.16μs 5.53ns 22.1ns 0 0 0 696 B
master StartFinishScope net472 1.11μs 0.458ns 1.77ns 0.0997 0 0 658 B
master StartFinishTwoScopes net6.0 1.78μs 8.37ns 35.5ns 0 0 0 1.19 KB
master StartFinishTwoScopes netcoreapp3.1 2.2μs 8.76ns 33.9ns 0 0 0 1.19 KB
master StartFinishTwoScopes net472 2.13μs 2.11ns 8.16ns 0.16 0 0 1.08 KB
#7891 StartFinishSpan net6.0 792ns 4.09ns 17.3ns 0 0 0 576 B
#7891 StartFinishSpan netcoreapp3.1 975ns 5.18ns 25.9ns 0 0 0 576 B
#7891 StartFinishSpan net472 914ns 0.18ns 0.648ns 0.0873 0 0 578 B
#7891 StartFinishScope net6.0 918ns 5.03ns 27.6ns 0 0 0 696 B
#7891 StartFinishScope netcoreapp3.1 1.16μs 6.08ns 31.6ns 0 0 0 696 B
#7891 StartFinishScope net472 1.09μs 0.589ns 2.28ns 0.104 0 0 658 B
#7891 StartFinishTwoScopes net6.0 1.8μs 8.76ns 36.1ns 0 0 0 1.19 KB
#7891 StartFinishTwoScopes netcoreapp3.1 2.18μs 1.24ns 4.79ns 0 0 0 1.19 KB
#7891 StartFinishTwoScopes net472 2.16μs 2.15ns 8.32ns 0.162 0 0 1.08 KB
Benchmarks.Trace.TraceAnnotationsBenchmark - Same speed ✔️ Same allocations ✔️

Raw results

Branch Method Toolchain Mean StdError StdDev Gen 0 Gen 1 Gen 2 Allocated
master RunOnMethodBegin net6.0 1.07μs 0.985ns 3.81ns 0 0 0 696 B
master RunOnMethodBegin netcoreapp3.1 1.41μs 5.98ns 23.1ns 0 0 0 696 B
master RunOnMethodBegin net472 1.48μs 2.63ns 10.2ns 0.0983 0 0 658 B
#7891 RunOnMethodBegin net6.0 1.1μs 0.501ns 1.94ns 0 0 0 696 B
#7891 RunOnMethodBegin netcoreapp3.1 1.46μs 5.15ns 18.6ns 0 0 0 696 B
#7891 RunOnMethodBegin net472 1.44μs 0.464ns 1.8ns 0.101 0 0 658 B

@juan-fernandez juan-fernandez changed the title [test optimization] Add branch parameter to test management API request [Test Optimization] Add branch parameter to test management API request Dec 2, 2025
@juan-fernandez juan-fernandez merged commit f273b96 into master Dec 2, 2025
150 checks passed
@juan-fernandez juan-fernandez deleted the juan-fernandez/add-branch-param-test-management branch December 2, 2025 13:00
@github-actions github-actions bot added this to the vNext-v3 milestone Dec 2, 2025
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