Skip to content

Conversation

@hoolioh
Copy link
Contributor

@hoolioh hoolioh commented Dec 17, 2025

What does this PR do?

This PR introduces a new workflow (pr-title-semver-check.yml) that automatically:

  1. Detects Changed Crates: Identifies which published workspace crates have been modified in the PR
  2. Analyzes API Changes: Uses cargo-public-api to detect breaking, additive, or patch-level changes to the public API of each affected crate
  3. Validates PR Titles: Ensures the PR title's conventional commit type matches the detected semver level

Validation Rules

The workflow enforces the following mappings between conventional commit types and API changes:

  • fix: - Only for patch-level changes
  • feat: - For minor changes (new APIs), or major changes when marked with ! or BREAKING CHANGE: in the body
  • chore:, ci:, docs:, style:, test:, build:, perf: - Should not include API changes
  • refactor: - Can include any level of changes, but major changes require breaking change markers
  • revert: - Allowed for any semver level

Technical Details

The workflow consists of three jobs:

  1. detect-changes: Parses the workspace Cargo.toml and identifies changed published crates
  2. semver-check: Runs semver analysis using cargo-public-api to determine the highest change level
  3. validate: Cross-references the PR title against detected changes and fails if there's a mismatch

Benefits

  • Prevents accidental breaking changes without proper version indicators
  • Ensures PR titles accurately describe the nature of changes
  • Provides early feedback before merging
  • Helps maintain semver compliance across the workspace

@pr-commenter
Copy link

pr-commenter bot commented Dec 17, 2025

Benchmarks

Comparison

Benchmark execution time: 2026-01-09 12:11:56

Comparing candidate commit 4ff4f16 in PR branch julio/versioning/pr-semver-check with baseline commit 5c4e535 in branch main.

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

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 4ff4f16 1767959634 julio/versioning/pr-semver-check
scenario metric min mean ± sd median ± mad p75 p95 p99 max peak_to_median_ratio skewness kurtosis cv sem runs sample_size
benching string interning on wordpress profile execution_time 161.869µs 162.901µs ± 0.415µs 162.860µs ± 0.157µs 163.013µs 163.293µs 164.725µs 165.983µs 1.92% 3.949 24.306 0.25% 0.029µs 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
benching string interning on wordpress profile execution_time [162.844µs; 162.959µs] or [-0.035%; +0.035%] None None None

Group 2

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 4ff4f16 1767959634 julio/versioning/pr-semver-check
scenario metric min mean ± sd median ± mad p75 p95 p99 max peak_to_median_ratio skewness kurtosis cv sem runs sample_size
two way interface execution_time 18.040µs 25.934µs ± 9.541µs 18.332µs ± 0.167µs 33.840µs 42.870µs 52.039µs 73.049µs 298.47% 1.102 1.705 36.70% 0.675µs 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
two way interface execution_time [24.611µs; 27.256µs] or [-5.099%; +5.099%] None None None

Group 3

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 4ff4f16 1767959634 julio/versioning/pr-semver-check
scenario metric min mean ± sd median ± mad p75 p95 p99 max peak_to_median_ratio skewness kurtosis cv sem runs sample_size
normalization/normalize_name/normalize_name/Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Lo... execution_time 204.608µs 205.126µs ± 0.301µs 205.094µs ± 0.190µs 205.275µs 205.665µs 205.816µs 206.765µs 0.81% 1.212 3.560 0.15% 0.021µs 1 200
normalization/normalize_name/normalize_name/Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Lo... throughput 4836417.966op/s 4875062.567op/s ± 7137.804op/s 4875819.467op/s ± 4506.115op/s 4880501.901op/s 4884841.028op/s 4886208.930op/s 4887388.622op/s 0.24% -1.194 3.457 0.15% 504.719op/s 1 200
normalization/normalize_name/normalize_name/bad-name execution_time 18.599µs 18.684µs ± 0.064µs 18.663µs ± 0.019µs 18.702µs 18.817µs 18.883µs 19.123µs 2.46% 2.709 11.491 0.34% 0.005µs 1 200
normalization/normalize_name/normalize_name/bad-name throughput 52291729.354op/s 53523131.181op/s ± 182135.214op/s 53580591.119op/s ± 54850.966op/s 53622848.241op/s 53695205.039op/s 53747126.269op/s 53767727.972op/s 0.35% -2.647 10.920 0.34% 12878.904op/s 1 200
normalization/normalize_name/normalize_name/good execution_time 10.808µs 10.901µs ± 0.042µs 10.899µs ± 0.030µs 10.929µs 10.976µs 10.994µs 11.003µs 0.95% 0.318 -0.575 0.38% 0.003µs 1 200
normalization/normalize_name/normalize_name/good throughput 90887862.555op/s 91732087.345op/s ± 351284.165op/s 91755713.944op/s ± 254475.176op/s 92009082.044op/s 92242416.442op/s 92357718.021op/s 92527480.662op/s 0.84% -0.303 -0.585 0.38% 24839.541op/s 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
normalization/normalize_name/normalize_name/Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Lo... execution_time [205.084µs; 205.168µs] or [-0.020%; +0.020%] None None None
normalization/normalize_name/normalize_name/Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Lo... throughput [4874073.336op/s; 4876051.798op/s] or [-0.020%; +0.020%] None None None
normalization/normalize_name/normalize_name/bad-name execution_time [18.675µs; 18.693µs] or [-0.048%; +0.048%] None None None
normalization/normalize_name/normalize_name/bad-name throughput [53497888.992op/s; 53548373.370op/s] or [-0.047%; +0.047%] None None None
normalization/normalize_name/normalize_name/good execution_time [10.896µs; 10.907µs] or [-0.053%; +0.053%] None None None
normalization/normalize_name/normalize_name/good throughput [91683402.738op/s; 91780771.951op/s] or [-0.053%; +0.053%] None None None

Group 4

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 4ff4f16 1767959634 julio/versioning/pr-semver-check
scenario metric min mean ± sd median ± mad p75 p95 p99 max peak_to_median_ratio skewness kurtosis cv sem runs sample_size
benching serializing traces from their internal representation to msgpack execution_time 13.804ms 13.847ms ± 0.030ms 13.844ms ± 0.012ms 13.855ms 13.896ms 13.965ms 14.042ms 1.43% 2.933 12.530 0.22% 0.002ms 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
benching serializing traces from their internal representation to msgpack execution_time [13.843ms; 13.851ms] or [-0.030%; +0.030%] None None None

Group 5

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 4ff4f16 1767959634 julio/versioning/pr-semver-check
scenario metric min mean ± sd median ± mad p75 p95 p99 max peak_to_median_ratio skewness kurtosis cv sem runs sample_size
normalization/normalize_trace/test_trace execution_time 243.308ns 254.575ns ± 14.282ns 248.401ns ± 3.643ns 254.285ns 288.425ns 294.016ns 298.666ns 20.24% 1.615 1.252 5.60% 1.010ns 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
normalization/normalize_trace/test_trace execution_time [252.596ns; 256.555ns] or [-0.778%; +0.778%] None None None

Group 6

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 4ff4f16 1767959634 julio/versioning/pr-semver-check
scenario metric min mean ± sd median ± mad p75 p95 p99 max peak_to_median_ratio skewness kurtosis cv sem runs sample_size
credit_card/is_card_number/ execution_time 3.892µs 3.912µs ± 0.003µs 3.912µs ± 0.002µs 3.913µs 3.916µs 3.919µs 3.920µs 0.21% -1.321 12.581 0.07% 0.000µs 1 200
credit_card/is_card_number/ throughput 255097765.196op/s 255635210.962op/s ± 181943.013op/s 255643438.891op/s ± 100650.666op/s 255745132.623op/s 255853710.517op/s 255902894.960op/s 256949571.461op/s 0.51% 1.349 12.787 0.07% 12865.314op/s 1 200
credit_card/is_card_number/ 3782-8224-6310-005 execution_time 77.353µs 78.376µs ± 0.614µs 78.278µs ± 0.421µs 78.732µs 79.575µs 79.933µs 80.023µs 2.23% 0.531 -0.263 0.78% 0.043µs 1 200
credit_card/is_card_number/ 3782-8224-6310-005 throughput 12496340.183op/s 12759823.810op/s ± 99595.246op/s 12775036.329op/s ± 68622.866op/s 12833435.914op/s 12906821.306op/s 12925949.522op/s 12927769.020op/s 1.20% -0.497 -0.310 0.78% 7042.447op/s 1 200
credit_card/is_card_number/ 378282246310005 execution_time 70.797µs 71.652µs ± 0.532µs 71.572µs ± 0.359µs 71.973µs 72.701µs 73.078µs 73.290µs 2.40% 0.707 0.012 0.74% 0.038µs 1 200
credit_card/is_card_number/ 378282246310005 throughput 13644396.997op/s 13957091.800op/s ± 103054.589op/s 13971952.721op/s ± 70126.901op/s 14035449.382op/s 14095557.807op/s 14108556.739op/s 14124880.897op/s 1.09% -0.674 -0.057 0.74% 7287.060op/s 1 200
credit_card/is_card_number/37828224631 execution_time 3.891µs 3.912µs ± 0.003µs 3.912µs ± 0.002µs 3.914µs 3.917µs 3.919µs 3.921µs 0.24% -1.432 12.160 0.08% 0.000µs 1 200
credit_card/is_card_number/37828224631 throughput 255015784.340op/s 255595911.468op/s ± 198163.134op/s 255615554.206op/s ± 98520.707op/s 255690814.986op/s 255868772.234op/s 255929816.354op/s 257021121.183op/s 0.55% 1.460 12.378 0.08% 14012.250op/s 1 200
credit_card/is_card_number/378282246310005 execution_time 67.949µs 68.656µs ± 0.342µs 68.642µs ± 0.235µs 68.876µs 69.236µs 69.503µs 69.853µs 1.76% 0.308 0.399 0.50% 0.024µs 1 200
credit_card/is_card_number/378282246310005 throughput 14315784.437op/s 14565810.681op/s ± 72530.681op/s 14568340.094op/s ± 49887.399op/s 14617923.054op/s 14689529.757op/s 14713904.517op/s 14716986.800op/s 1.02% -0.274 0.341 0.50% 5128.694op/s 1 200
credit_card/is_card_number/37828224631000521389798 execution_time 44.537µs 44.959µs ± 0.148µs 44.952µs ± 0.092µs 45.047µs 45.116µs 45.198µs 45.881µs 2.07% 1.695 10.470 0.33% 0.010µs 1 200
credit_card/is_card_number/37828224631000521389798 throughput 21795633.777op/s 22242624.562op/s ± 72599.511op/s 22245969.033op/s ± 45786.362op/s 22286508.929op/s 22346687.397op/s 22391836.126op/s 22453263.733op/s 0.93% -1.603 9.885 0.33% 5133.561op/s 1 200
credit_card/is_card_number/x371413321323331 execution_time 5.692µs 5.699µs ± 0.004µs 5.699µs ± 0.002µs 5.701µs 5.705µs 5.709µs 5.712µs 0.23% 0.590 0.650 0.06% 0.000µs 1 200
credit_card/is_card_number/x371413321323331 throughput 175073590.762op/s 175467171.131op/s ± 108109.950op/s 175480521.662op/s ± 61736.057op/s 175529620.624op/s 175630997.907op/s 175665920.856op/s 175696112.000op/s 0.12% -0.586 0.641 0.06% 7644.528op/s 1 200
credit_card/is_card_number_no_luhn/ execution_time 3.895µs 3.912µs ± 0.003µs 3.911µs ± 0.002µs 3.913µs 3.916µs 3.918µs 3.918µs 0.16% -0.925 6.729 0.07% 0.000µs 1 200
credit_card/is_card_number_no_luhn/ throughput 255251581.591op/s 255652641.486op/s ± 172514.018op/s 255659965.075op/s ± 102413.184op/s 255755889.609op/s 255870880.296op/s 255958012.349op/s 256742220.465op/s 0.42% 0.941 6.834 0.07% 12198.583op/s 1 200
credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 execution_time 60.719µs 63.213µs ± 1.079µs 63.127µs ± 0.958µs 64.268µs 64.745µs 64.914µs 64.967µs 2.92% -0.061 -1.272 1.70% 0.076µs 1 200
credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 throughput 15392367.501op/s 15824078.384op/s ± 270581.070op/s 15841188.528op/s ± 241429.955op/s 16043935.146op/s 16230874.030op/s 16316584.993op/s 16469371.011op/s 3.97% 0.098 -1.240 1.71% 19132.971op/s 1 200
credit_card/is_card_number_no_luhn/ 378282246310005 execution_time 53.483µs 53.828µs ± 0.091µs 53.838µs ± 0.056µs 53.887µs 53.947µs 54.003µs 54.183µs 0.64% -0.519 2.101 0.17% 0.006µs 1 200
credit_card/is_card_number_no_luhn/ 378282246310005 throughput 18456033.386op/s 18577633.104op/s ± 31489.005op/s 18574185.897op/s ± 19285.220op/s 18594150.012op/s 18625941.592op/s 18679950.539op/s 18697455.276op/s 0.66% 0.539 2.113 0.17% 2226.609op/s 1 200
credit_card/is_card_number_no_luhn/37828224631 execution_time 3.892µs 3.912µs ± 0.003µs 3.912µs ± 0.001µs 3.913µs 3.916µs 3.918µs 3.919µs 0.18% -1.678 14.743 0.07% 0.000µs 1 200
credit_card/is_card_number_no_luhn/37828224631 throughput 255182770.043op/s 255644366.085op/s ± 173277.033op/s 255651694.612op/s ± 77156.152op/s 255721947.346op/s 255873190.328op/s 255933387.315op/s 256945879.179op/s 0.51% 1.707 14.974 0.07% 12252.537op/s 1 200
credit_card/is_card_number_no_luhn/378282246310005 execution_time 50.189µs 50.499µs ± 0.130µs 50.508µs ± 0.081µs 50.576µs 50.684µs 50.893µs 50.946µs 0.87% 0.272 0.980 0.26% 0.009µs 1 200
credit_card/is_card_number_no_luhn/378282246310005 throughput 19628759.980op/s 19802335.602op/s ± 50786.922op/s 19798734.423op/s ± 31800.168op/s 19835275.080op/s 19892229.896op/s 19918793.622op/s 19924692.672op/s 0.64% -0.250 0.945 0.26% 3591.178op/s 1 200
credit_card/is_card_number_no_luhn/37828224631000521389798 execution_time 44.584µs 44.962µs ± 0.104µs 44.980µs ± 0.068µs 45.033µs 45.110µs 45.146µs 45.177µs 0.44% -0.576 0.231 0.23% 0.007µs 1 200
credit_card/is_card_number_no_luhn/37828224631000521389798 throughput 22135007.865op/s 22240935.367op/s ± 51574.199op/s 22232290.454op/s ± 33503.983op/s 22269764.915op/s 22329759.555op/s 22368567.617op/s 22429713.275op/s 0.89% 0.589 0.258 0.23% 3646.847op/s 1 200
credit_card/is_card_number_no_luhn/x371413321323331 execution_time 5.693µs 5.699µs ± 0.003µs 5.699µs ± 0.002µs 5.701µs 5.705µs 5.708µs 5.709µs 0.17% 0.358 -0.395 0.06% 0.000µs 1 200
credit_card/is_card_number_no_luhn/x371413321323331 throughput 175161343.059op/s 175457840.359op/s ± 104691.707op/s 175459617.969op/s ± 74102.059op/s 175536502.817op/s 175612152.068op/s 175651811.118op/s 175656457.206op/s 0.11% -0.355 -0.398 0.06% 7402.822op/s 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
credit_card/is_card_number/ execution_time [3.911µs; 3.912µs] or [-0.010%; +0.010%] None None None
credit_card/is_card_number/ throughput [255609995.410op/s; 255660426.514op/s] or [-0.010%; +0.010%] None None None
credit_card/is_card_number/ 3782-8224-6310-005 execution_time [78.291µs; 78.461µs] or [-0.109%; +0.109%] None None None
credit_card/is_card_number/ 3782-8224-6310-005 throughput [12746020.867op/s; 12773626.754op/s] or [-0.108%; +0.108%] None None None
credit_card/is_card_number/ 378282246310005 execution_time [71.578µs; 71.726µs] or [-0.103%; +0.103%] None None None
credit_card/is_card_number/ 378282246310005 throughput [13942809.425op/s; 13971374.175op/s] or [-0.102%; +0.102%] None None None
credit_card/is_card_number/37828224631 execution_time [3.912µs; 3.913µs] or [-0.011%; +0.011%] None None None
credit_card/is_card_number/37828224631 throughput [255568447.963op/s; 255623374.972op/s] or [-0.011%; +0.011%] None None None
credit_card/is_card_number/378282246310005 execution_time [68.608µs; 68.703µs] or [-0.069%; +0.069%] None None None
credit_card/is_card_number/378282246310005 throughput [14555758.626op/s; 14575862.735op/s] or [-0.069%; +0.069%] None None None
credit_card/is_card_number/37828224631000521389798 execution_time [44.939µs; 44.980µs] or [-0.045%; +0.045%] None None None
credit_card/is_card_number/37828224631000521389798 throughput [22232562.968op/s; 22252686.156op/s] or [-0.045%; +0.045%] None None None
credit_card/is_card_number/x371413321323331 execution_time [5.699µs; 5.700µs] or [-0.009%; +0.009%] None None None
credit_card/is_card_number/x371413321323331 throughput [175452188.132op/s; 175482154.131op/s] or [-0.009%; +0.009%] None None None
credit_card/is_card_number_no_luhn/ execution_time [3.911µs; 3.912µs] or [-0.009%; +0.009%] None None None
credit_card/is_card_number_no_luhn/ throughput [255628732.702op/s; 255676550.270op/s] or [-0.009%; +0.009%] None None None
credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 execution_time [63.064µs; 63.363µs] or [-0.237%; +0.237%] None None None
credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 throughput [15786578.450op/s; 15861578.318op/s] or [-0.237%; +0.237%] None None None
credit_card/is_card_number_no_luhn/ 378282246310005 execution_time [53.816µs; 53.841µs] or [-0.023%; +0.023%] None None None
credit_card/is_card_number_no_luhn/ 378282246310005 throughput [18573269.031op/s; 18581997.178op/s] or [-0.023%; +0.023%] None None None
credit_card/is_card_number_no_luhn/37828224631 execution_time [3.911µs; 3.912µs] or [-0.009%; +0.009%] None None None
credit_card/is_card_number_no_luhn/37828224631 throughput [255620351.554op/s; 255668380.615op/s] or [-0.009%; +0.009%] None None None
credit_card/is_card_number_no_luhn/378282246310005 execution_time [50.481µs; 50.517µs] or [-0.036%; +0.036%] None None None
credit_card/is_card_number_no_luhn/378282246310005 throughput [19795297.023op/s; 19809374.181op/s] or [-0.036%; +0.036%] None None None
credit_card/is_card_number_no_luhn/37828224631000521389798 execution_time [44.948µs; 44.977µs] or [-0.032%; +0.032%] None None None
credit_card/is_card_number_no_luhn/37828224631000521389798 throughput [22233787.679op/s; 22248083.055op/s] or [-0.032%; +0.032%] None None None
credit_card/is_card_number_no_luhn/x371413321323331 execution_time [5.699µs; 5.700µs] or [-0.008%; +0.008%] None None None
credit_card/is_card_number_no_luhn/x371413321323331 throughput [175443331.095op/s; 175472349.623op/s] or [-0.008%; +0.008%] None None None

Group 7

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 4ff4f16 1767959634 julio/versioning/pr-semver-check
scenario metric min mean ± sd median ± mad p75 p95 p99 max peak_to_median_ratio skewness kurtosis cv sem runs sample_size
profile_add_sample2_frames_x1000 execution_time 524.951µs 526.342µs ± 0.577µs 526.336µs ± 0.326µs 526.626µs 527.124µs 527.747µs 530.175µs 0.73% 1.632 9.055 0.11% 0.041µs 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
profile_add_sample2_frames_x1000 execution_time [526.262µs; 526.422µs] or [-0.015%; +0.015%] None None None

Group 8

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 4ff4f16 1767959634 julio/versioning/pr-semver-check
scenario metric min mean ± sd median ± mad p75 p95 p99 max peak_to_median_ratio skewness kurtosis cv sem runs sample_size
concentrator/add_spans_to_concentrator execution_time 10.629ms 10.670ms ± 0.016ms 10.670ms ± 0.010ms 10.679ms 10.698ms 10.719ms 10.741ms 0.67% 0.568 1.569 0.15% 0.001ms 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
concentrator/add_spans_to_concentrator execution_time [10.668ms; 10.673ms] or [-0.021%; +0.021%] None None None

Group 9

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 4ff4f16 1767959634 julio/versioning/pr-semver-check
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 186.231ns 189.548ns ± 2.708ns 189.005ns ± 1.579ns 190.571ns 194.694ns 197.817ns 201.074ns 6.39% 1.445 2.368 1.43% 0.192ns 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 [189.172ns; 189.923ns] or [-0.198%; +0.198%] None None None

Group 10

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 4ff4f16 1767959634 julio/versioning/pr-semver-check
scenario metric min mean ± sd median ± mad p75 p95 p99 max peak_to_median_ratio skewness kurtosis cv sem runs sample_size
receiver_entry_point/report/2597 execution_time 9.849ms 10.171ms ± 0.085ms 10.178ms ± 0.038ms 10.217ms 10.295ms 10.324ms 10.335ms 1.54% -1.216 2.581 0.83% 0.006ms 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
receiver_entry_point/report/2597 execution_time [10.159ms; 10.183ms] or [-0.116%; +0.116%] None None None

Group 11

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 4ff4f16 1767959634 julio/versioning/pr-semver-check
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 144.591µs 146.554µs ± 1.827µs 146.301µs ± 0.574µs 146.869µs 148.468µs 152.094µs 165.519µs 13.14% 6.672 60.866 1.24% 0.129µ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 [146.300µs; 146.807µs] or [-0.173%; +0.173%] None None None

Group 12

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 4ff4f16 1767959634 julio/versioning/pr-semver-check
scenario metric min mean ± sd median ± mad p75 p95 p99 max peak_to_median_ratio skewness kurtosis cv sem runs sample_size
sql/obfuscate_sql_string execution_time 89.639µs 90.020µs ± 0.301µs 90.006µs ± 0.089µs 90.074µs 90.221µs 90.568µs 93.758µs 4.17% 9.748 118.086 0.33% 0.021µs 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
sql/obfuscate_sql_string execution_time [89.978µs; 90.062µs] or [-0.046%; +0.046%] None None None

Group 13

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 4ff4f16 1767959634 julio/versioning/pr-semver-check
scenario metric min mean ± sd median ± mad p75 p95 p99 max peak_to_median_ratio skewness kurtosis cv sem runs sample_size
normalization/normalize_service/normalize_service/A0000000000000000000000000000000000000000000000000... execution_time 533.981µs 534.791µs ± 0.497µs 534.733µs ± 0.234µs 535.027µs 535.349µs 536.138µs 538.374µs 0.68% 3.019 18.343 0.09% 0.035µs 1 200
normalization/normalize_service/normalize_service/A0000000000000000000000000000000000000000000000000... throughput 1857445.433op/s 1869890.522op/s ± 1731.393op/s 1870093.514op/s ± 817.833op/s 1870843.769op/s 1872044.596op/s 1872583.598op/s 1872724.777op/s 0.14% -2.988 18.076 0.09% 122.428op/s 1 200
normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて execution_time 380.542µs 381.084µs ± 0.264µs 381.057µs ± 0.173µs 381.247µs 381.559µs 381.782µs 381.881µs 0.22% 0.463 0.062 0.07% 0.019µs 1 200
normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて throughput 2618613.813op/s 2624093.050op/s ± 1816.976op/s 2624279.307op/s ± 1194.812op/s 2625339.336op/s 2626992.906op/s 2627380.394op/s 2627828.729op/s 0.14% -0.459 0.056 0.07% 128.480op/s 1 200
normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters execution_time 190.094µs 190.666µs ± 0.218µs 190.647µs ± 0.140µs 190.803µs 191.010µs 191.353µs 191.664µs 0.53% 0.624 2.235 0.11% 0.015µs 1 200
normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters throughput 5217452.727op/s 5244773.702op/s ± 5992.028op/s 5245299.455op/s ± 3864.824op/s 5248290.577op/s 5254011.448op/s 5257720.811op/s 5260552.466op/s 0.29% -0.611 2.193 0.11% 423.700op/s 1 200
normalization/normalize_service/normalize_service/[empty string] execution_time 37.272µs 37.408µs ± 0.049µs 37.410µs ± 0.031µs 37.436µs 37.489µs 37.548µs 37.574µs 0.44% 0.237 0.942 0.13% 0.003µs 1 200
normalization/normalize_service/normalize_service/[empty string] throughput 26613834.222op/s 26732572.109op/s ± 34670.870op/s 26730754.317op/s ± 22021.043op/s 26756262.227op/s 26787771.347op/s 26817326.347op/s 26829873.699op/s 0.37% -0.226 0.928 0.13% 2451.601op/s 1 200
normalization/normalize_service/normalize_service/test_ASCII execution_time 45.778µs 45.904µs ± 0.112µs 45.894µs ± 0.025µs 45.920µs 45.965µs 46.039µs 47.363µs 3.20% 11.024 140.427 0.24% 0.008µs 1 200
normalization/normalize_service/normalize_service/test_ASCII throughput 21113715.657op/s 21784761.996op/s ± 51946.513op/s 21789134.923op/s ± 11866.626op/s 21799488.456op/s 21818987.411op/s 21833948.523op/s 21844776.841op/s 0.26% -10.870 137.760 0.24% 3673.173op/s 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
normalization/normalize_service/normalize_service/A0000000000000000000000000000000000000000000000000... execution_time [534.722µs; 534.860µs] or [-0.013%; +0.013%] None None None
normalization/normalize_service/normalize_service/A0000000000000000000000000000000000000000000000000... throughput [1869650.568op/s; 1870130.477op/s] or [-0.013%; +0.013%] None None None
normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて execution_time [381.048µs; 381.121µs] or [-0.010%; +0.010%] None None None
normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて throughput [2623841.235op/s; 2624344.866op/s] or [-0.010%; +0.010%] None None None
normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters execution_time [190.636µs; 190.696µs] or [-0.016%; +0.016%] None None None
normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters throughput [5243943.265op/s; 5245604.140op/s] or [-0.016%; +0.016%] None None None
normalization/normalize_service/normalize_service/[empty string] execution_time [37.401µs; 37.414µs] or [-0.018%; +0.018%] None None None
normalization/normalize_service/normalize_service/[empty string] throughput [26727767.060op/s; 26737377.158op/s] or [-0.018%; +0.018%] None None None
normalization/normalize_service/normalize_service/test_ASCII execution_time [45.888µs; 45.919µs] or [-0.034%; +0.034%] None None None
normalization/normalize_service/normalize_service/test_ASCII throughput [21777562.709op/s; 21791961.283op/s] or [-0.033%; +0.033%] None None None

Group 14

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 4ff4f16 1767959634 julio/versioning/pr-semver-check
scenario metric min mean ± sd median ± mad p75 p95 p99 max peak_to_median_ratio skewness kurtosis cv sem runs sample_size
tags/replace_trace_tags execution_time 2.426µs 2.453µs ± 0.021µs 2.444µs ± 0.008µs 2.460µs 2.513µs 2.522µs 2.524µs 3.28% 1.895 3.236 0.87% 0.002µs 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
tags/replace_trace_tags execution_time [2.450µs; 2.456µs] or [-0.120%; +0.120%] None None None

Group 15

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 4ff4f16 1767959634 julio/versioning/pr-semver-check
scenario metric min mean ± sd median ± mad p75 p95 p99 max peak_to_median_ratio skewness kurtosis cv sem runs sample_size
profile_add_sample_frames_x1000 execution_time 3.915ms 3.924ms ± 0.007ms 3.924ms ± 0.002ms 3.926ms 3.930ms 3.941ms 4.005ms 2.07% 8.008 88.933 0.18% 0.000ms 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
profile_add_sample_frames_x1000 execution_time [3.923ms; 3.925ms] or [-0.025%; +0.025%] None None None

Group 16

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 4ff4f16 1767959634 julio/versioning/pr-semver-check
scenario metric min mean ± sd median ± mad p75 p95 p99 max peak_to_median_ratio skewness kurtosis cv sem runs sample_size
ip_address/quantize_peer_ip_address_benchmark execution_time 4.984µs 5.053µs ± 0.040µs 5.054µs ± 0.037µs 5.087µs 5.119µs 5.121µs 5.125µs 1.40% 0.279 -1.319 0.80% 0.003µs 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
ip_address/quantize_peer_ip_address_benchmark execution_time [5.047µs; 5.059µs] or [-0.111%; +0.111%] None None None

Group 17

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 4ff4f16 1767959634 julio/versioning/pr-semver-check
scenario metric min mean ± sd median ± mad p75 p95 p99 max peak_to_median_ratio skewness kurtosis cv sem runs sample_size
redis/obfuscate_redis_string execution_time 34.646µs 35.171µs ± 0.789µs 34.800µs ± 0.104µs 35.082µs 36.757µs 36.804µs 39.293µs 12.91% 1.951 3.483 2.24% 0.056µs 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
redis/obfuscate_redis_string execution_time [35.062µs; 35.280µs] or [-0.311%; +0.311%] None None None

Group 18

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 4ff4f16 1767959634 julio/versioning/pr-semver-check
scenario metric min mean ± sd median ± mad p75 p95 p99 max peak_to_median_ratio skewness kurtosis cv sem runs sample_size
benching deserializing traces from msgpack to their internal representation execution_time 60.594ms 61.191ms ± 1.998ms 60.942ms ± 0.126ms 61.048ms 61.379ms 74.660ms 80.179ms 31.57% 8.035 65.030 3.26% 0.141ms 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
benching deserializing traces from msgpack to their internal representation execution_time [60.915ms; 61.468ms] or [-0.452%; +0.452%] None None None

Group 19

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz 4ff4f16 1767959634 julio/versioning/pr-semver-check
scenario metric min mean ± sd median ± mad p75 p95 p99 max peak_to_median_ratio skewness kurtosis cv sem runs sample_size
write only interface execution_time 1.272µs 3.258µs ± 1.415µs 3.043µs ± 0.026µs 3.069µs 3.697µs 13.951µs 14.959µs 391.50% 7.332 55.040 43.32% 0.100µs 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
write only interface execution_time [3.062µs; 3.454µs] or [-6.019%; +6.019%] None None None

Baseline

Omitted due to size.

@codecov-commenter
Copy link

codecov-commenter commented Dec 17, 2025

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 71.22%. Comparing base (5c4e535) to head (4ff4f16).

Additional details and impacted files
@@           Coverage Diff           @@
##             main    #1414   +/-   ##
=======================================
  Coverage   71.22%   71.22%           
=======================================
  Files         411      411           
  Lines       65788    65788           
=======================================
  Hits        46860    46860           
  Misses      18928    18928           
Components Coverage Δ
libdd-crashtracker 58.70% <ø> (ø)
libdd-crashtracker-ffi 14.72% <ø> (ø)
libdd-alloc 98.73% <ø> (ø)
libdd-data-pipeline 86.01% <ø> (ø)
libdd-data-pipeline-ffi 77.74% <ø> (ø)
libdd-common 81.06% <ø> (ø)
libdd-common-ffi 74.19% <ø> (ø)
libdd-telemetry 59.95% <ø> (ø)
libdd-telemetry-ffi 21.17% <ø> (ø)
libdd-dogstatsd-client 83.75% <ø> (ø)
datadog-ipc 82.61% <ø> (ø)
libdd-profiling 80.82% <ø> (ø)
libdd-profiling-ffi 62.43% <ø> (ø)
datadog-sidecar 35.88% <ø> (ø)
datdog-sidecar-ffi 10.88% <ø> (ø)
spawn-worker 55.18% <ø> (ø)
libdd-tinybytes 92.44% <ø> (ø)
libdd-trace-normalization 82.33% <ø> (ø)
libdd-trace-obfuscation 94.17% <ø> (ø)
libdd-trace-protobuf 61.18% <ø> (ø)
libdd-trace-utils 89.92% <ø> (ø)
datadog-tracer-flare 62.06% <ø> (ø)
libdd-log 75.57% <ø> (ø)
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@dd-octo-sts
Copy link

dd-octo-sts bot commented Dec 17, 2025

Artifact Size Benchmark Report

aarch64-alpine-linux-musl
Artifact Baseline Commit Change
/aarch64-alpine-linux-musl/lib/libdatadog_profiling.a 87.02 MB 87.02 MB 0% (0 B) 👌
/aarch64-alpine-linux-musl/lib/libdatadog_profiling.so 7.50 MB 7.50 MB 0% (0 B) 👌
aarch64-apple-darwin
Artifact Baseline Commit Change
/aarch64-apple-darwin/lib/libdatadog_profiling.a 58.83 MB 58.83 MB 0% (0 B) 👌
/aarch64-apple-darwin/lib/libdatadog_profiling.dylib 8.49 MB 8.49 MB 0% (0 B) 👌
aarch64-unknown-linux-gnu
Artifact Baseline Commit Change
/aarch64-unknown-linux-gnu/lib/libdatadog_profiling.so 9.61 MB 9.61 MB 0% (0 B) 👌
/aarch64-unknown-linux-gnu/lib/libdatadog_profiling.a 100.69 MB 100.69 MB 0% (0 B) 👌
libdatadog-x64-windows
Artifact Baseline Commit Change
/libdatadog-x64-windows/debug/dynamic/datadog_profiling_ffi.dll 20.04 MB 20.04 MB 0% (0 B) 👌
/libdatadog-x64-windows/debug/dynamic/datadog_profiling_ffi.lib 73.49 KB 73.49 KB 0% (0 B) 👌
/libdatadog-x64-windows/debug/dynamic/datadog_profiling_ffi.pdb 141.90 MB 141.89 MB -0% (-8.00 KB) 👌
/libdatadog-x64-windows/debug/static/datadog_profiling_ffi.lib 746.12 MB 746.12 MB 0% (0 B) 👌
/libdatadog-x64-windows/release/dynamic/datadog_profiling_ffi.dll 6.40 MB 6.40 MB 0% (0 B) 👌
/libdatadog-x64-windows/release/dynamic/datadog_profiling_ffi.lib 73.49 KB 73.49 KB 0% (0 B) 👌
/libdatadog-x64-windows/release/dynamic/datadog_profiling_ffi.pdb 19.88 MB 19.88 MB 0% (0 B) 👌
/libdatadog-x64-windows/release/static/datadog_profiling_ffi.lib 38.96 MB 38.96 MB 0% (0 B) 👌
libdatadog-x86-windows
Artifact Baseline Commit Change
/libdatadog-x86-windows/debug/dynamic/datadog_profiling_ffi.dll 17.10 MB 17.10 MB 0% (0 B) 👌
/libdatadog-x86-windows/debug/dynamic/datadog_profiling_ffi.lib 74.62 KB 74.62 KB 0% (0 B) 👌
/libdatadog-x86-windows/debug/dynamic/datadog_profiling_ffi.pdb 144.60 MB 144.61 MB +0% (+8.00 KB) 👌
/libdatadog-x86-windows/debug/static/datadog_profiling_ffi.lib 735.01 MB 735.01 MB 0% (0 B) 👌
/libdatadog-x86-windows/release/dynamic/datadog_profiling_ffi.dll 4.92 MB 4.92 MB 0% (0 B) 👌
/libdatadog-x86-windows/release/dynamic/datadog_profiling_ffi.lib 74.62 KB 74.62 KB 0% (0 B) 👌
/libdatadog-x86-windows/release/dynamic/datadog_profiling_ffi.pdb 21.16 MB 21.16 MB 0% (0 B) 👌
/libdatadog-x86-windows/release/static/datadog_profiling_ffi.lib 36.76 MB 36.76 MB 0% (0 B) 👌
x86_64-alpine-linux-musl
Artifact Baseline Commit Change
/x86_64-alpine-linux-musl/lib/libdatadog_profiling.a 75.30 MB 75.30 MB 0% (0 B) 👌
/x86_64-alpine-linux-musl/lib/libdatadog_profiling.so 8.93 MB 8.93 MB 0% (0 B) 👌
x86_64-apple-darwin
Artifact Baseline Commit Change
/x86_64-apple-darwin/lib/libdatadog_profiling.a 60.17 MB 60.17 MB 0% (0 B) 👌
/x86_64-apple-darwin/lib/libdatadog_profiling.dylib 9.54 MB 9.54 MB 0% (0 B) 👌
x86_64-unknown-linux-gnu
Artifact Baseline Commit Change
/x86_64-unknown-linux-gnu/lib/libdatadog_profiling.a 94.85 MB 94.85 MB 0% (0 B) 👌
/x86_64-unknown-linux-gnu/lib/libdatadog_profiling.so 10.35 MB 10.35 MB 0% (0 B) 👌

@hoolioh hoolioh changed the title Julio/versioning/pr semver check ci: check that PR title and source code changes are aligned Dec 19, 2025
@hoolioh hoolioh changed the base branch from main to julio/versioning/enforce-conventional-commits-pr December 19, 2025 16:44
Base automatically changed from julio/versioning/enforce-conventional-commits-pr to main January 8, 2026 12:04
@hoolioh hoolioh force-pushed the julio/versioning/pr-semver-check branch from 9a57b41 to 3c6890c Compare January 9, 2026 11:22
@hoolioh hoolioh force-pushed the julio/versioning/pr-semver-check branch from 3c6890c to 4ff4f16 Compare January 9, 2026 11:54
@hoolioh hoolioh marked this pull request as ready for review January 9, 2026 11:55
@hoolioh hoolioh requested a review from a team as a code owner January 9, 2026 11:55
Comment on lines +44 to +73
while IFS= read -r crate_path; do
# Skip empty lines
if [[ -z "$crate_path" ]]; then
continue
fi

# Check if any files in this crate directory changed
if echo "$CHANGED_FILES" | grep -q "^${crate_path}/"; then
CRATE_MANIFEST="${crate_path}/Cargo.toml"

# Skip if Cargo.toml doesn't exist
if [[ ! -f "$CRATE_MANIFEST" ]]; then
continue
fi

# Check if crate has "publish = false"
if grep -q "^publish = false" "$CRATE_MANIFEST"; then
echo "Skipping unpublished crate: $crate_path"
continue
fi

# Extract crate name
CRATE_NAME=$(grep "^name = " "$CRATE_MANIFEST" | head -1 | sed 's/name = "\(.*\)"/\1/')

if [[ -n "$CRATE_NAME" ]]; then
echo "Detected change in published crate: $CRATE_NAME ($crate_path)"
CHANGED_CRATES+=("$CRATE_NAME")
fi
fi
done < <(sed -n 's/^ "\(.*\)",\?$/\1/p' Cargo.toml)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this whole section would be less brittle if you just parsed the output of cargo metadata

A small jq script like this to grab the paths and names works for instance

cargo metadata | jq '.workspace_default_members as $members
  | .packages
  | map(
    select(.id | IN($members[]))
    | select(.publish != null)
    | {name, path: .manifest_path | rtrimstr("/Cargo.toml")}
  )'

- name: Detect changed published crates
id: detect
run: |
set -euo pipefail
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think it'd be better to have the scripts in files in the scripts/ folders instead of inline in the yaml

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants