Skip to content

Conversation

@ekump
Copy link
Contributor

@ekump ekump commented May 2, 2025

What does this PR do?

Adds a github action that scans the repo for usages of clippy allow annotations and reports changes across all crates in the repo.

If the action fails, it should not fail CI and block PRs being merged. If for any reason this action causes issues, feel free to disable it. This report shouldn't impede anyone's work in libdatadog.

Motivation

We want to reduce the chance of libdatadog panicking as much as possible. #915 enabled clippy warnings for panic macros in all crates. This PR will start reporting the number of annotations to bring attention to new additions of allow annotations or PRs that reduce the use of the annotations.

Additional Notes

This code is not part of the libdatadog workspace. It's an independent crate. It's included in this repo as it is expected we will need to make tweaks and fix bugs. Once we feel it is stable it should be moved to a separate repo and treated like any other github action we use.

allow annotations from unit tests for the reporter are currently showing up in the report. The option to filter certain file paths or crates will be added in a follow up PR.

Apologies for the size of the PR. I didn't anticipate it being this large.

Here is what the report looks like when crates have been changed:

Screenshot 2025-05-31 at 10 39 37 PM

How to test the change?

Unit tests were added where possible. I verified the report by adding extra allows and observing changes in the report.

@pr-commenter
Copy link

pr-commenter bot commented May 2, 2025

Benchmarks

Comparison

Benchmark execution time: 2025-11-19 20:57:35

Comparing candidate commit c650eff in PR branch ekump/clippy-annotation-action with baseline commit a3f9e86 in branch main.

Found 0 performance improvements and 0 performance regressions! Performance is the same for 55 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 c650eff 1763584966 ekump/clippy-annotation-action
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 189.511ns 192.719ns ± 2.621ns 192.158ns ± 1.614ns 193.935ns 197.129ns 200.238ns 206.181ns 7.30% 1.583 4.106 1.36% 0.185ns 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 [192.356ns; 193.083ns] or [-0.188%; +0.188%] None None None

Group 2

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz c650eff 1763584966 ekump/clippy-annotation-action
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 159.305µs 160.205µs ± 0.283µs 160.188µs ± 0.174µs 160.369µs 160.627µs 161.025µs 161.393µs 0.75% 0.754 2.735 0.18% 0.020µ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 [160.166µs; 160.245µs] or [-0.025%; +0.025%] None None None

Group 3

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz c650eff 1763584966 ekump/clippy-annotation-action
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 205.730µs 206.199µs ± 0.218µs 206.178µs ± 0.150µs 206.338µs 206.590µs 206.740µs 206.789µs 0.30% 0.429 -0.306 0.11% 0.015µs 1 200
normalization/normalize_name/normalize_name/Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Lo... throughput 4835847.800op/s 4849683.504op/s ± 5129.527op/s 4850189.764op/s ± 3525.490op/s 4853449.439op/s 4856964.050op/s 4858316.487op/s 4860750.022op/s 0.22% -0.424 -0.311 0.11% 362.712op/s 1 200
normalization/normalize_name/normalize_name/bad-name execution_time 18.180µs 18.268µs ± 0.060µs 18.265µs ± 0.038µs 18.301µs 18.349µs 18.500µs 18.549µs 1.56% 1.355 4.497 0.33% 0.004µs 1 200
normalization/normalize_name/normalize_name/bad-name throughput 53910553.784op/s 54742239.986op/s ± 179416.392op/s 54750515.939op/s ± 115040.157op/s 54869007.737op/s 54998621.338op/s 55003763.044op/s 55005958.208op/s 0.47% -1.309 4.284 0.33% 12686.655op/s 1 200
normalization/normalize_name/normalize_name/good execution_time 10.753µs 10.885µs ± 0.055µs 10.878µs ± 0.035µs 10.915µs 10.982µs 11.019µs 11.047µs 1.55% 0.484 0.138 0.50% 0.004µs 1 200
normalization/normalize_name/normalize_name/good throughput 90522563.958op/s 91872028.957op/s ± 460564.031op/s 91929147.191op/s ± 296784.818op/s 92198721.482op/s 92525438.725op/s 92745352.162op/s 93000075.962op/s 1.16% -0.456 0.112 0.50% 32566.795op/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 [206.169µs; 206.229µs] or [-0.015%; +0.015%] None None None
normalization/normalize_name/normalize_name/Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Long-.Too-Lo... throughput [4848972.601op/s; 4850394.407op/s] or [-0.015%; +0.015%] None None None
normalization/normalize_name/normalize_name/bad-name execution_time [18.259µs; 18.276µs] or [-0.046%; +0.046%] None None None
normalization/normalize_name/normalize_name/bad-name throughput [54717374.600op/s; 54767105.373op/s] or [-0.045%; +0.045%] None None None
normalization/normalize_name/normalize_name/good execution_time [10.877µs; 10.893µs] or [-0.070%; +0.070%] None None None
normalization/normalize_name/normalize_name/good throughput [91808199.212op/s; 91935858.702op/s] or [-0.069%; +0.069%] None None None

Group 4

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz c650eff 1763584966 ekump/clippy-annotation-action
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 14.835ms 14.904ms ± 0.037ms 14.898ms ± 0.017ms 14.916ms 14.974ms 15.047ms 15.096ms 1.33% 2.085 6.778 0.25% 0.003ms 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 [14.899ms; 14.909ms] or [-0.034%; +0.034%] None None None

Group 5

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz c650eff 1763584966 ekump/clippy-annotation-action
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.900µs 3.915µs ± 0.003µs 3.915µs ± 0.002µs 3.917µs 3.919µs 3.922µs 3.927µs 0.29% -0.350 4.374 0.07% 0.000µs 1 200
credit_card/is_card_number/ throughput 254672644.978op/s 255409382.697op/s ± 185891.518op/s 255420845.080op/s ± 117187.851op/s 255523833.992op/s 255659128.701op/s 255749112.213op/s 256425954.120op/s 0.39% 0.364 4.419 0.07% 13144.515op/s 1 200
credit_card/is_card_number/ 3782-8224-6310-005 execution_time 77.884µs 79.215µs ± 0.605µs 79.181µs ± 0.374µs 79.557µs 80.155µs 80.867µs 80.935µs 2.22% 0.340 0.235 0.76% 0.043µs 1 200
credit_card/is_card_number/ 3782-8224-6310-005 throughput 12355589.149op/s 12624669.110op/s ± 96229.375op/s 12629344.290op/s ± 59713.849op/s 12688616.039op/s 12782780.665op/s 12833163.468op/s 12839639.023op/s 1.67% -0.292 0.179 0.76% 6804.444op/s 1 200
credit_card/is_card_number/ 378282246310005 execution_time 71.428µs 71.747µs ± 0.452µs 71.550µs ± 0.067µs 71.812µs 72.765µs 73.958µs 74.177µs 3.67% 2.885 9.786 0.63% 0.032µs 1 200
credit_card/is_card_number/ 378282246310005 throughput 13481232.728op/s 13938430.479op/s ± 86206.338op/s 13976187.375op/s ± 13117.102op/s 13985326.945op/s 13993922.441op/s 13997566.290op/s 14000183.402op/s 0.17% -2.821 9.315 0.62% 6095.709op/s 1 200
credit_card/is_card_number/37828224631 execution_time 3.902µs 3.915µs ± 0.003µs 3.915µs ± 0.002µs 3.917µs 3.919µs 3.921µs 3.923µs 0.20% -0.447 3.229 0.06% 0.000µs 1 200
credit_card/is_card_number/37828224631 throughput 254903525.750op/s 255429057.835op/s ± 165011.705op/s 255422019.665op/s ± 112786.724op/s 255544573.394op/s 255681142.420op/s 255714823.778op/s 256306082.630op/s 0.35% 0.457 3.268 0.06% 11668.090op/s 1 200
credit_card/is_card_number/378282246310005 execution_time 68.221µs 68.453µs ± 0.289µs 68.350µs ± 0.062µs 68.493µs 68.976µs 69.870µs 70.259µs 2.79% 3.375 13.944 0.42% 0.020µs 1 200
credit_card/is_card_number/378282246310005 throughput 14233049.237op/s 14608897.655op/s ± 60814.603op/s 14630644.892op/s ± 13169.584op/s 14640041.346op/s 14650761.355op/s 14656329.693op/s 14658272.296op/s 0.19% -3.319 13.464 0.42% 4300.242op/s 1 200
credit_card/is_card_number/37828224631000521389798 execution_time 45.468µs 45.713µs ± 0.109µs 45.705µs ± 0.078µs 45.793µs 45.894µs 45.952µs 46.014µs 0.68% 0.163 -0.513 0.24% 0.008µs 1 200
credit_card/is_card_number/37828224631000521389798 throughput 21732423.456op/s 21875645.550op/s ± 52301.412op/s 21879517.588op/s ± 37315.639op/s 21915080.863op/s 21956301.687op/s 21977677.556op/s 21993319.855op/s 0.52% -0.153 -0.519 0.24% 3698.268op/s 1 200
credit_card/is_card_number/x371413321323331 execution_time 6.554µs 6.619µs ± 0.018µs 6.621µs ± 0.014µs 6.635µs 6.642µs 6.647µs 6.647µs 0.39% -0.607 -0.096 0.27% 0.001µs 1 200
credit_card/is_card_number/x371413321323331 throughput 150442628.247op/s 151082149.117op/s ± 411812.889op/s 151029004.859op/s ± 313515.263op/s 151345076.905op/s 151794069.583op/s 152080245.529op/s 152583021.944op/s 1.03% 0.620 -0.063 0.27% 29119.569op/s 1 200
credit_card/is_card_number_no_luhn/ execution_time 3.894µs 3.915µs ± 0.003µs 3.916µs ± 0.002µs 3.918µs 3.919µs 3.921µs 3.925µs 0.25% -1.543 10.136 0.08% 0.000µs 1 200
credit_card/is_card_number_no_luhn/ throughput 254752454.398op/s 255396196.738op/s ± 205055.832op/s 255381413.652op/s ± 147652.780op/s 255534203.262op/s 255682658.415op/s 255742210.657op/s 256819512.976op/s 0.56% 1.567 10.319 0.08% 14499.637op/s 1 200
credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 execution_time 65.570µs 65.683µs ± 0.044µs 65.684µs ± 0.029µs 65.712µs 65.756µs 65.775µs 65.793µs 0.17% 0.005 -0.458 0.07% 0.003µs 1 200
credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 throughput 15199081.141op/s 15224542.173op/s ± 10194.249op/s 15224396.409op/s ± 6732.263op/s 15231627.889op/s 15240524.235op/s 15244795.110op/s 15250933.173op/s 0.17% -0.002 -0.458 0.07% 720.842op/s 1 200
credit_card/is_card_number_no_luhn/ 378282246310005 execution_time 53.361µs 53.438µs ± 0.038µs 53.439µs ± 0.024µs 53.462µs 53.501µs 53.547µs 53.577µs 0.26% 0.446 0.655 0.07% 0.003µs 1 200
credit_card/is_card_number_no_luhn/ 378282246310005 throughput 18664884.898op/s 18713212.144op/s ± 13461.296op/s 18712752.726op/s ± 8436.526op/s 18722668.359op/s 18735090.873op/s 18738524.262op/s 18740323.314op/s 0.15% -0.440 0.643 0.07% 951.857op/s 1 200
credit_card/is_card_number_no_luhn/37828224631 execution_time 3.900µs 3.915µs ± 0.003µs 3.915µs ± 0.002µs 3.917µs 3.919µs 3.921µs 3.923µs 0.20% -0.481 3.588 0.07% 0.000µs 1 200
credit_card/is_card_number_no_luhn/37828224631 throughput 254937797.773op/s 255440779.877op/s ± 179508.996op/s 255457644.023op/s ± 115609.934op/s 255552142.969op/s 255693746.090op/s 255765783.435op/s 256428560.599op/s 0.38% 0.492 3.642 0.07% 12693.203op/s 1 200
credit_card/is_card_number_no_luhn/378282246310005 execution_time 50.139µs 50.205µs ± 0.034µs 50.203µs ± 0.019µs 50.221µs 50.264µs 50.310µs 50.330µs 0.25% 0.949 1.704 0.07% 0.002µs 1 200
credit_card/is_card_number_no_luhn/378282246310005 throughput 19868721.397op/s 19918435.373op/s ± 13416.737op/s 19919292.009op/s ± 7602.298op/s 19926939.371op/s 19937034.761op/s 19941706.923op/s 19944361.216op/s 0.13% -0.944 1.688 0.07% 948.707op/s 1 200
credit_card/is_card_number_no_luhn/37828224631000521389798 execution_time 45.421µs 45.731µs ± 0.110µs 45.736µs ± 0.078µs 45.813µs 45.899µs 45.929µs 45.960µs 0.49% -0.297 -0.433 0.24% 0.008µs 1 200
credit_card/is_card_number_no_luhn/37828224631000521389798 throughput 21758221.254op/s 21867162.810op/s ± 52810.314op/s 21864573.926op/s ± 37230.785op/s 21902571.401op/s 21956574.519op/s 21992690.345op/s 22016011.169op/s 0.69% 0.307 -0.422 0.24% 3734.253op/s 1 200
credit_card/is_card_number_no_luhn/x371413321323331 execution_time 6.542µs 6.617µs ± 0.020µs 6.619µs ± 0.013µs 6.633µs 6.642µs 6.646µs 6.652µs 0.50% -1.089 1.476 0.30% 0.001µs 1 200
credit_card/is_card_number_no_luhn/x371413321323331 throughput 150320130.248op/s 151118770.757op/s ± 459052.000op/s 151077095.400op/s ± 293243.452op/s 151328637.199op/s 151998119.565op/s 152615407.789op/s 152868932.863op/s 1.19% 1.110 1.545 0.30% 32459.878op/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.915µs; 3.916µs] or [-0.010%; +0.010%] None None None
credit_card/is_card_number/ throughput [255383619.921op/s; 255435145.474op/s] or [-0.010%; +0.010%] None None None
credit_card/is_card_number/ 3782-8224-6310-005 execution_time [79.131µs; 79.298µs] or [-0.106%; +0.106%] None None None
credit_card/is_card_number/ 3782-8224-6310-005 throughput [12611332.644op/s; 12638005.576op/s] or [-0.106%; +0.106%] None None None
credit_card/is_card_number/ 378282246310005 execution_time [71.684µs; 71.809µs] or [-0.087%; +0.087%] None None None
credit_card/is_card_number/ 378282246310005 throughput [13926483.109op/s; 13950377.848op/s] or [-0.086%; +0.086%] None None None
credit_card/is_card_number/37828224631 execution_time [3.915µs; 3.915µs] or [-0.009%; +0.009%] None None None
credit_card/is_card_number/37828224631 throughput [255406188.800op/s; 255451926.870op/s] or [-0.009%; +0.009%] None None None
credit_card/is_card_number/378282246310005 execution_time [68.413µs; 68.493µs] or [-0.059%; +0.059%] None None None
credit_card/is_card_number/378282246310005 throughput [14600469.336op/s; 14617325.974op/s] or [-0.058%; +0.058%] None None None
credit_card/is_card_number/37828224631000521389798 execution_time [45.698µs; 45.728µs] or [-0.033%; +0.033%] None None None
credit_card/is_card_number/37828224631000521389798 throughput [21868397.077op/s; 21882894.023op/s] or [-0.033%; +0.033%] None None None
credit_card/is_card_number/x371413321323331 execution_time [6.616µs; 6.621µs] or [-0.038%; +0.038%] None None None
credit_card/is_card_number/x371413321323331 throughput [151025075.812op/s; 151139222.423op/s] or [-0.038%; +0.038%] None None None
credit_card/is_card_number_no_luhn/ execution_time [3.915µs; 3.916µs] or [-0.011%; +0.011%] None None None
credit_card/is_card_number_no_luhn/ throughput [255367777.972op/s; 255424615.504op/s] or [-0.011%; +0.011%] None None None
credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 execution_time [65.677µs; 65.690µs] or [-0.009%; +0.009%] None None None
credit_card/is_card_number_no_luhn/ 3782-8224-6310-005 throughput [15223129.348op/s; 15225954.997op/s] or [-0.009%; +0.009%] None None None
credit_card/is_card_number_no_luhn/ 378282246310005 execution_time [53.433µs; 53.444µs] or [-0.010%; +0.010%] None None None
credit_card/is_card_number_no_luhn/ 378282246310005 throughput [18711346.538op/s; 18715077.750op/s] or [-0.010%; +0.010%] None None None
credit_card/is_card_number_no_luhn/37828224631 execution_time [3.914µs; 3.915µs] or [-0.010%; +0.010%] None None None
credit_card/is_card_number_no_luhn/37828224631 throughput [255415901.656op/s; 255465658.097op/s] or [-0.010%; +0.010%] None None None
credit_card/is_card_number_no_luhn/378282246310005 execution_time [50.200µs; 50.209µs] or [-0.009%; +0.009%] None None None
credit_card/is_card_number_no_luhn/378282246310005 throughput [19916575.943op/s; 19920294.804op/s] or [-0.009%; +0.009%] None None None
credit_card/is_card_number_no_luhn/37828224631000521389798 execution_time [45.716µs; 45.746µs] or [-0.033%; +0.033%] None None None
credit_card/is_card_number_no_luhn/37828224631000521389798 throughput [21859843.808op/s; 21874481.812op/s] or [-0.033%; +0.033%] None None None
credit_card/is_card_number_no_luhn/x371413321323331 execution_time [6.615µs; 6.620µs] or [-0.042%; +0.042%] None None None
credit_card/is_card_number_no_luhn/x371413321323331 throughput [151055150.564op/s; 151182390.949op/s] or [-0.042%; +0.042%] None None None

Group 6

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz c650eff 1763584966 ekump/clippy-annotation-action
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 145.083µs 147.113µs ± 1.508µs 147.007µs ± 0.551µs 147.547µs 148.528µs 154.164µs 160.989µs 9.51% 5.147 39.721 1.02% 0.107µ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.904µs; 147.322µs] or [-0.142%; +0.142%] None None None

Group 7

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz c650eff 1763584966 ekump/clippy-annotation-action
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.203µs 3.204µs ± 1.440µs 3.000µs ± 0.026µs 3.024µs 3.634µs 13.941µs 14.913µs 397.10% 7.396 55.626 44.83% 0.102µ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.005µs; 3.404µs] or [-6.228%; +6.228%] None None None

Group 8

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz c650eff 1763584966 ekump/clippy-annotation-action
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 6.071ms 6.409ms ± 0.064ms 6.421ms ± 0.016ms 6.436ms 6.466ms 6.505ms 6.534ms 1.76% -2.841 9.674 1.00% 0.005ms 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 [6.400ms; 6.418ms] or [-0.139%; +0.139%] None None None

Group 9

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz c650eff 1763584966 ekump/clippy-annotation-action
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.398µs 2.445µs ± 0.020µs 2.440µs ± 0.006µs 2.446µs 2.505µs 2.513µs 2.517µs 3.14% 2.069 4.520 0.83% 0.001µ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.442µs; 2.447µs] or [-0.115%; +0.115%] None None None

Group 10

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz c650eff 1763584966 ekump/clippy-annotation-action
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.595ms 10.619ms ± 0.014ms 10.618ms ± 0.008ms 10.625ms 10.642ms 10.653ms 10.708ms 0.85% 1.826 8.502 0.13% 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.617ms; 10.621ms] or [-0.018%; +0.018%] None None None

Group 11

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz c650eff 1763584966 ekump/clippy-annotation-action
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.604µs 534.783µs ± 0.466µs 534.752µs ± 0.306µs 535.086µs 535.519µs 535.998µs 537.237µs 0.46% 0.842 3.161 0.09% 0.033µs 1 200
normalization/normalize_service/normalize_service/A0000000000000000000000000000000000000000000000000... throughput 1861374.873op/s 1869919.646op/s ± 1627.478op/s 1870025.320op/s ± 1069.667op/s 1870944.813op/s 1872124.496op/s 1873108.669op/s 1874049.540op/s 0.22% -0.831 3.107 0.09% 115.080op/s 1 200
normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて execution_time 380.028µs 381.030µs ± 0.417µs 381.040µs ± 0.276µs 381.300µs 381.612µs 381.903µs 383.468µs 0.64% 0.918 5.084 0.11% 0.030µs 1 200
normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて throughput 2607782.485op/s 2624469.400op/s ± 2872.607op/s 2624396.389op/s ± 1897.948op/s 2626315.574op/s 2628906.460op/s 2630334.008op/s 2631383.852op/s 0.27% -0.897 4.968 0.11% 203.124op/s 1 200
normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters execution_time 194.608µs 195.165µs ± 0.561µs 195.109µs ± 0.158µs 195.249µs 195.465µs 195.676µs 200.379µs 2.70% 8.033 72.107 0.29% 0.040µs 1 200
normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters throughput 4990555.374op/s 5123916.073op/s ± 14395.479op/s 5125338.467op/s ± 4154.226op/s 5129475.729op/s 5133352.405op/s 5136206.634op/s 5138540.460op/s 0.26% -7.950 71.103 0.28% 1017.914op/s 1 200
normalization/normalize_service/normalize_service/[empty string] execution_time 36.851µs 37.011µs ± 0.068µs 37.008µs ± 0.044µs 37.052µs 37.131µs 37.197µs 37.221µs 0.58% 0.324 0.308 0.18% 0.005µs 1 200
normalization/normalize_service/normalize_service/[empty string] throughput 26866419.537op/s 27018737.863op/s ± 49802.357op/s 27021343.799op/s ± 32047.415op/s 27051941.942op/s 27100109.818op/s 27121715.600op/s 27135954.603op/s 0.42% -0.312 0.293 0.18% 3521.558op/s 1 200
normalization/normalize_service/normalize_service/test_ASCII execution_time 44.910µs 45.086µs ± 0.122µs 45.083µs ± 0.107µs 45.189µs 45.275µs 45.289µs 45.427µs 0.76% 0.133 -1.145 0.27% 0.009µs 1 200
normalization/normalize_service/normalize_service/test_ASCII throughput 22013426.233op/s 22180061.722op/s ± 59987.995op/s 22181515.059op/s ± 52952.596op/s 22234868.647op/s 22265386.285op/s 22266410.877op/s 22266965.077op/s 0.39% -0.126 -1.152 0.27% 4241.792op/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.718µs; 534.847µs] or [-0.012%; +0.012%] None None None
normalization/normalize_service/normalize_service/A0000000000000000000000000000000000000000000000000... throughput [1869694.094op/s; 1870145.199op/s] or [-0.012%; +0.012%] None None None
normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて execution_time [380.972µs; 381.088µs] or [-0.015%; +0.015%] None None None
normalization/normalize_service/normalize_service/Data🐨dog🐶 繋がっ⛰てて throughput [2624071.284op/s; 2624867.516op/s] or [-0.015%; +0.015%] None None None
normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters execution_time [195.087µs; 195.243µs] or [-0.040%; +0.040%] None None None
normalization/normalize_service/normalize_service/Test Conversion 0f Weird !@#$%^&**() Characters throughput [5121920.998op/s; 5125911.148op/s] or [-0.039%; +0.039%] None None None
normalization/normalize_service/normalize_service/[empty string] execution_time [37.002µs; 37.021µs] or [-0.026%; +0.026%] None None None
normalization/normalize_service/normalize_service/[empty string] throughput [27011835.735op/s; 27025639.990op/s] or [-0.026%; +0.026%] None None None
normalization/normalize_service/normalize_service/test_ASCII execution_time [45.069µs; 45.103µs] or [-0.037%; +0.037%] None None None
normalization/normalize_service/normalize_service/test_ASCII throughput [22171747.963op/s; 22188375.481op/s] or [-0.037%; +0.037%] None None None

Group 12

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz c650eff 1763584966 ekump/clippy-annotation-action
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 244.873ns 255.307ns ± 13.552ns 250.259ns ± 4.261ns 257.104ns 290.760ns 298.410ns 300.496ns 20.07% 1.868 2.558 5.29% 0.958ns 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 [253.429ns; 257.185ns] or [-0.736%; +0.736%] None None None

Group 13

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz c650eff 1763584966 ekump/clippy-annotation-action
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 17.691µs 24.770µs ± 9.373µs 17.930µs ± 0.137µs 33.530µs 43.140µs 47.428µs 66.274µs 269.63% 1.163 0.998 37.75% 0.663µs 1 200
scenario metric 95% CI mean Shapiro-Wilk pvalue Ljung-Box pvalue (lag=1) Dip test pvalue
two way interface execution_time [23.471µs; 26.069µs] or [-5.244%; +5.244%] None None None

Group 14

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz c650eff 1763584966 ekump/clippy-annotation-action
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.996µs 5.061µs ± 0.043µs 5.064µs ± 0.041µs 5.094µs 5.135µs 5.140µs 5.142µs 1.54% 0.331 -1.216 0.86% 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.055µs; 5.067µs] or [-0.119%; +0.119%] None None None

Group 15

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz c650eff 1763584966 ekump/clippy-annotation-action
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 61.128ms 62.007ms ± 2.541ms 61.733ms ± 0.286ms 61.974ms 62.194ms 80.978ms 84.385ms 36.69% 7.871 61.238 4.09% 0.180ms 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 [61.655ms; 62.360ms] or [-0.568%; +0.568%] None None None

Group 16

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz c650eff 1763584966 ekump/clippy-annotation-action
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 33.565µs 34.058µs ± 0.797µs 33.705µs ± 0.036µs 33.761µs 35.743µs 35.787µs 37.371µs 10.88% 1.808 1.739 2.33% 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 [33.947µs; 34.168µs] or [-0.324%; +0.324%] None None None

Group 17

cpu_model git_commit_sha git_commit_date git_branch
Intel(R) Xeon(R) Platinum 8259CL CPU @ 2.50GHz c650eff 1763584966 ekump/clippy-annotation-action
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 86.534µs 86.816µs ± 0.240µs 86.805µs ± 0.053µs 86.855µs 86.929µs 87.074µs 89.931µs 3.60% 11.023 140.339 0.28% 0.017µ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 [86.783µs; 86.849µs] or [-0.038%; +0.038%] None None None

Baseline

Omitted due to size.

@codecov-commenter
Copy link

codecov-commenter commented May 2, 2025

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 71.17%. Comparing base (a3f9e86) to head (c650eff).

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #1049      +/-   ##
==========================================
- Coverage   71.19%   71.17%   -0.02%     
==========================================
  Files         392      392              
  Lines       62677    62677              
==========================================
- Hits        44622    44613       -9     
- Misses      18055    18064       +9     
Components Coverage Δ
libdd-crashtracker 59.90% <ø> (ø)
libdd-crashtracker-ffi 15.31% <ø> (ø)
libdd-alloc 98.73% <ø> (ø)
libdd-data-pipeline 86.02% <ø> (ø)
libdd-data-pipeline-ffi 77.63% <ø> (ø)
libdd-common 80.93% <ø> (ø)
libdd-common-ffi 73.90% <ø> (ø)
libdd-telemetry 60.02% <ø> (ø)
libdd-telemetry-ffi 21.24% <ø> (ø)
libdd-dogstatsd-client 83.75% <ø> (ø)
datadog-ipc 82.71% <ø> (+0.10%) ⬆️
libdd-profiling 79.68% <ø> (ø)
libdd-profiling-ffi 62.13% <ø> (ø)
datadog-sidecar 36.98% <ø> (ø)
datdog-sidecar-ffi 16.40% <ø> (ø)
spawn-worker 55.18% <ø> (ø)
libdd-tinybytes 92.44% <ø> (ø)
libdd-trace-normalization 98.24% <ø> (ø)
datadog-trace-obfuscation 94.17% <ø> (ø)
libdd-trace-protobuf 59.65% <ø> (ø)
libdd-trace-utils 90.25% <ø> (ø)
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.

@r1viollet
Copy link
Contributor

r1viollet commented May 2, 2025

Artifact Size Benchmark Report

aarch64-alpine-linux-musl
Artifact Baseline Commit Change
/aarch64-alpine-linux-musl/lib/libdatadog_profiling.a 85.96 MB 85.96 MB 0% (0 B) 👌
/aarch64-alpine-linux-musl/lib/libdatadog_profiling.so 7.38 MB 7.38 MB 0% (0 B) 👌
aarch64-apple-darwin
Artifact Baseline Commit Change
/aarch64-apple-darwin/lib/libdatadog_profiling.a 57.99 MB 57.99 MB 0% (0 B) 👌
/aarch64-apple-darwin/lib/libdatadog_profiling.dylib 8.43 MB 8.43 MB 0% (0 B) 👌
aarch64-unknown-linux-gnu
Artifact Baseline Commit Change
/aarch64-unknown-linux-gnu/lib/libdatadog_profiling.so 9.53 MB 9.53 MB 0% (0 B) 👌
/aarch64-unknown-linux-gnu/lib/libdatadog_profiling.a 99.70 MB 99.70 MB 0% (0 B) 👌
libdatadog-x64-windows
Artifact Baseline Commit Change
/libdatadog-x64-windows/debug/dynamic/datadog_profiling_ffi.dll 19.57 MB 19.57 MB 0% (0 B) 👌
/libdatadog-x64-windows/debug/dynamic/datadog_profiling_ffi.lib 69.82 KB 69.82 KB 0% (0 B) 👌
/libdatadog-x64-windows/debug/dynamic/datadog_profiling_ffi.pdb 138.54 MB 138.54 MB 0% (0 B) 👌
/libdatadog-x64-windows/debug/static/datadog_profiling_ffi.lib 735.58 MB 735.58 MB 0% (0 B) 👌
/libdatadog-x64-windows/release/dynamic/datadog_profiling_ffi.dll 6.34 MB 6.34 MB 0% (0 B) 👌
/libdatadog-x64-windows/release/dynamic/datadog_profiling_ffi.lib 69.82 KB 69.82 KB 0% (0 B) 👌
/libdatadog-x64-windows/release/dynamic/datadog_profiling_ffi.pdb 19.67 MB 19.67 MB 0% (0 B) 👌
/libdatadog-x64-windows/release/static/datadog_profiling_ffi.lib 38.64 MB 38.64 MB 0% (0 B) 👌
libdatadog-x86-windows
Artifact Baseline Commit Change
/libdatadog-x86-windows/debug/dynamic/datadog_profiling_ffi.dll 16.70 MB 16.70 MB 0% (0 B) 👌
/libdatadog-x86-windows/debug/dynamic/datadog_profiling_ffi.lib 70.90 KB 70.90 KB 0% (0 B) 👌
/libdatadog-x86-windows/debug/dynamic/datadog_profiling_ffi.pdb 141.11 MB 141.12 MB +0% (+8.00 KB) 👌
/libdatadog-x86-windows/debug/static/datadog_profiling_ffi.lib 724.31 MB 724.31 MB 0% (0 B) 👌
/libdatadog-x86-windows/release/dynamic/datadog_profiling_ffi.dll 4.87 MB 4.87 MB 0% (0 B) 👌
/libdatadog-x86-windows/release/dynamic/datadog_profiling_ffi.lib 70.90 KB 70.90 KB 0% (0 B) 👌
/libdatadog-x86-windows/release/dynamic/datadog_profiling_ffi.pdb 20.90 MB 20.90 MB 0% (0 B) 👌
/libdatadog-x86-windows/release/static/datadog_profiling_ffi.lib 36.39 MB 36.39 MB 0% (0 B) 👌
x86_64-alpine-linux-musl
Artifact Baseline Commit Change
/x86_64-alpine-linux-musl/lib/libdatadog_profiling.a 74.32 MB 74.32 MB 0% (0 B) 👌
/x86_64-alpine-linux-musl/lib/libdatadog_profiling.so 8.85 MB 8.85 MB 0% (0 B) 👌
x86_64-apple-darwin
Artifact Baseline Commit Change
/x86_64-apple-darwin/lib/libdatadog_profiling.a 59.35 MB 59.35 MB 0% (0 B) 👌
/x86_64-apple-darwin/lib/libdatadog_profiling.dylib 9.47 MB 9.47 MB 0% (0 B) 👌
x86_64-unknown-linux-gnu
Artifact Baseline Commit Change
/x86_64-unknown-linux-gnu/lib/libdatadog_profiling.a 93.93 MB 93.93 MB 0% (0 B) 👌
/x86_64-unknown-linux-gnu/lib/libdatadog_profiling.so 10.28 MB 10.28 MB 0% (0 B) 👌

@ekump ekump force-pushed the ekump/clippy-annotation-action branch from 4dae85a to a1c1a9d Compare May 2, 2025 17:05
@DataDog DataDog deleted a comment from github-actions bot May 2, 2025
@ekump ekump force-pushed the ekump/clippy-annotation-action branch from 4db63c3 to c0d22c4 Compare May 2, 2025 19:07
@DataDog DataDog deleted a comment from github-actions bot May 2, 2025
@DataDog DataDog deleted a comment from github-actions bot May 2, 2025
@DataDog DataDog deleted a comment from github-actions bot May 2, 2025
@DataDog DataDog deleted a comment from github-actions bot May 2, 2025
@DataDog DataDog deleted a comment from github-actions bot May 2, 2025
@DataDog DataDog deleted a comment from github-actions bot May 2, 2025
@DataDog DataDog deleted a comment from github-actions bot May 2, 2025
@DataDog DataDog deleted a comment from github-actions bot May 2, 2025
@DataDog DataDog deleted a comment from github-actions bot May 2, 2025
@github-actions
Copy link

github-actions bot commented May 2, 2025

Clippy Allow Annotation Report

Comparing clippy allow annotations between branches:

  • Base Branch: origin/main
  • PR Branch: origin/ekump/clippy-annotation-action

Summary by Rule

Rule Base Branch PR Branch Change
unwrap_used 0 5 ⚠️ +5 (N/A)
Total 0 5 ⚠️ +5 (N/A)

Annotation Counts by File

File Base Branch PR Branch Change
.github/actions/clippy-annotation-reporter/src/analyzer/annotation.rs 0 5 ⚠️ +5 (N/A)

Annotation Stats by Crate

Crate Base Branch PR Branch Change
clippy-annotation-reporter 0 5 ⚠️ +5 (N/A)
datadog-ffe-ffi 1 1 No change (0%)
datadog-ipc 27 27 No change (0%)
datadog-live-debugger 6 6 No change (0%)
datadog-live-debugger-ffi 10 10 No change (0%)
datadog-profiling-replayer 4 4 No change (0%)
datadog-remote-config 3 3 No change (0%)
datadog-sidecar 62 62 No change (0%)
datadog-trace-obfuscation 9 9 No change (0%)
libdd-common 11 11 No change (0%)
libdd-common-ffi 12 12 No change (0%)
libdd-crashtracker 12 12 No change (0%)
libdd-data-pipeline 7 7 No change (0%)
libdd-ddsketch 2 2 No change (0%)
libdd-dogstatsd-client 1 1 No change (0%)
libdd-profiling 13 13 No change (0%)
libdd-telemetry 19 19 No change (0%)
libdd-tinybytes 4 4 No change (0%)
libdd-trace-normalization 2 2 No change (0%)
libdd-trace-utils 18 18 No change (0%)
Total 223 228 ⚠️ +5 (+2.2%)

About This Report

This report tracks Clippy allow annotations for specific rules, showing how they've changed in this PR. Decreasing the number of these annotations generally improves code quality.

@DataDog DataDog deleted a comment from github-actions bot May 2, 2025
@ekump ekump force-pushed the ekump/clippy-annotation-action branch 6 times, most recently from 196838e to 78c37d6 Compare May 8, 2025 13:02
@ekump ekump force-pushed the ekump/clippy-annotation-action branch from 92c3830 to 145fb3f Compare May 9, 2025 20:35
@ekump ekump force-pushed the ekump/clippy-annotation-action branch 4 times, most recently from f56f485 to 3242198 Compare June 1, 2025 02:23
@ekump ekump force-pushed the ekump/clippy-annotation-action branch 2 times, most recently from a0b7788 to 9a877f9 Compare June 1, 2025 02:53
@ekump ekump marked this pull request as ready for review June 1, 2025 03:06
@ekump ekump requested review from a team as code owners June 1, 2025 03:06
@ekump ekump changed the title wip: init commit of clippy annotation reporter clippy annotation reporter Jun 1, 2025
shell: bash
run: |
cd ${{ github.action_path }}
cargo build --release
Copy link
Contributor

Choose a reason for hiding this comment

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

Not sure how this is usually done, but should we cache the binary as it probably won't change very often.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

The build time relative to the rest of CI is very short. I don't think it's an issue in the short-term. Once we move this to a separate repo the action should be pre-built.


let rule_pattern = rules.join("|");
let regex = Regex::new(&format!(
r"#\s*\[\s*allow\s*\(\s*clippy\s*::\s*({})\s*\)\s*\]",
Copy link
Contributor

Choose a reason for hiding this comment

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

It could be useful to allow non-clippy lints for things like "missing_docs". WDYT ?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

100% agree, the missing docs one would be quite useful. I think we can do it in a follow-up PR. There are probably a handful of features we'll want to add.

annotations: &[ClippyAnnotation],
) -> HashMap<Rc<String>, usize> {
let mut counts = HashMap::new();
let mut crate_cache: HashMap<String, Rc<String>> = HashMap::new();
Copy link
Contributor

Choose a reason for hiding this comment

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

Would it be to naive to assume all files in sub directory of the same cargo.toml are in the same crate (may be wrong in workspace though) ? Are at least cache based on directory. This could reduce the number of calls to get_crate_for_file.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

You can have crates within crates, even when the parent isn't a workspace. And as you mentioned we'd need extra logic to handle the top level workspace cargo.

I think this implementation is a good starting point (at least for libdatadog), but we likely will want to evolve the logic for matching files to crates. Ideally, it would be nice if we could leverage cargo metadata more for this rather than file paths.

After compilation, the reporter takes just a couple of seconds to run for all of libdatadog (including time communicating with GitHub). I think we'd be ok adding better caching later.

Copy link
Contributor

@VianneyRuhlmann VianneyRuhlmann left a comment

Choose a reason for hiding this comment

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

LGTM

@ekump ekump force-pushed the ekump/clippy-annotation-action branch from 9a877f9 to 0a96a8f Compare July 24, 2025 19:13
@datadog-datadog-prod-us1
Copy link
Contributor

datadog-datadog-prod-us1 bot commented Jul 24, 2025

✅ Tests

🎉 All green!

❄️ No new flaky tests detected
🧪 All tests passed

This comment will be updated automatically if new data arrives.
🔗 Commit SHA: c650eff | Docs | Datadog PR Page | Was this helpful? Give us feedback!

@github-actions
Copy link

This pull request has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. To override this behavior, add the keep-open label or update the PR.

@github-actions github-actions bot added the stale Used by actions/stale to identify PRs that have been inactive for 90+ days label Oct 23, 2025
@ekump ekump added keep-open Overrides actions/stale auto-closing stale PRs and removed stale Used by actions/stale to identify PRs that have been inactive for 90+ days labels Oct 23, 2025
This is not part of the libdatadog workspace. It's a github action that
will run for CI. It reports counts of clippy allow annotations for both
changed files in the PR and a repo overall. The goal is to call
attention to excessive usage of allows, which could be a signal of
reduced code quality. This action should be moved to its own repo when
confident of its functionality.
reviews the files in the repo to parse and count the allow annotations
usage. It also compares changed files to their base to determine the
diffs of counts.
combines env vars and CLI args to get relevant info about the PR being
analyzed.
finished report and comments it on the PR. it checks for existing
comments and updates them instead of repeatedly posting a new comment
for every PR change.
data from the analyzer and generates the text of the report that will be
posted on the PR.
@ekump ekump force-pushed the ekump/clippy-annotation-action branch from 0a96a8f to c650eff Compare November 19, 2025 20:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ci-build keep-open Overrides actions/stale auto-closing stale PRs

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants