ci: require 60% patch coverage in Codecov#6022
Conversation
Automated Reviewer SuggestionsBased on the
|
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #6022 +/- ##
============================================
- Coverage 56.64% 56.64% -0.01%
Complexity 3028 3028
============================================
Files 1124 1124
Lines 43298 43298
Branches 4667 4667
============================================
- Hits 24525 24524 -1
+ Misses 17335 17333 -2
- Partials 1438 1441 +3
*This pull request uses carry forward flags. Click here to find out more. ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
|
| config | throughput | MB/s | latency | max Δ latest / 7d | |
|---|---|---|---|---|---|
| 🟢 | bs=10 sw=10 sl=64 | 409 | 0.249 | 23,931/30,791/30,791 us | 🟢 -8.9% / 🔴 +100.8% |
| 🔴 | bs=100 sw=10 sl=64 | 797 | 0.487 | 123,217/157,534/157,534 us | 🔴 +9.9% / 🔴 +42.5% |
| ⚪ | bs=1000 sw=10 sl=64 | 909 | 0.555 | 1,099,230/1,139,191/1,139,191 us | ⚪ within ±5% / 🔴 +7.3% |
Baseline details
Latest main 16a3ddf from same runner
| config | metric | PR | latest main | 7d avg | Δ latest | Δ 7d |
|---|---|---|---|---|---|---|
| bs=10 sw=10 sl=64 | throughput | 409 tuples/sec | 396 tuples/sec | 757.16 tuples/sec | +3.3% | -46.0% |
| bs=10 sw=10 sl=64 | MB/s | 0.249 MB/s | 0.242 MB/s | 0.462 MB/s | +2.9% | -46.1% |
| bs=10 sw=10 sl=64 | p50 | 23,931 us | 23,822 us | 12,971 us | +0.5% | +84.5% |
| bs=10 sw=10 sl=64 | p95 | 30,791 us | 33,807 us | 15,333 us | -8.9% | +100.8% |
| bs=10 sw=10 sl=64 | p99 | 30,791 us | 33,807 us | 18,732 us | -8.9% | +64.4% |
| bs=100 sw=10 sl=64 | throughput | 797 tuples/sec | 811 tuples/sec | 957.66 tuples/sec | -1.7% | -16.8% |
| bs=100 sw=10 sl=64 | MB/s | 0.487 MB/s | 0.495 MB/s | 0.585 MB/s | -1.6% | -16.7% |
| bs=100 sw=10 sl=64 | p50 | 123,217 us | 120,510 us | 103,982 us | +2.2% | +18.5% |
| bs=100 sw=10 sl=64 | p95 | 157,534 us | 143,290 us | 110,583 us | +9.9% | +42.5% |
| bs=100 sw=10 sl=64 | p99 | 157,534 us | 143,290 us | 118,369 us | +9.9% | +33.1% |
| bs=1000 sw=10 sl=64 | throughput | 909 tuples/sec | 911 tuples/sec | 979.6 tuples/sec | -0.2% | -7.2% |
| bs=1000 sw=10 sl=64 | MB/s | 0.555 MB/s | 0.556 MB/s | 0.598 MB/s | -0.2% | -7.2% |
| bs=1000 sw=10 sl=64 | p50 | 1,099,230 us | 1,095,918 us | 1,024,553 us | +0.3% | +7.3% |
| bs=1000 sw=10 sl=64 | p95 | 1,139,191 us | 1,155,812 us | 1,063,789 us | -1.4% | +7.1% |
| bs=1000 sw=10 sl=64 | p99 | 1,139,191 us | 1,155,812 us | 1,096,239 us | -1.4% | +3.9% |
Raw CSV
config_idx,batch_size,schema_width,string_len,num_batches,total_ms,total_tuples,total_bytes,tuples_per_sec,mb_per_sec,lat_p50_us,lat_p95_us,lat_p99_us
0,10,10,64,20,489.50,200,128000,409,0.249,23931.47,30790.52,30790.52
1,100,10,64,20,2508.47,2000,1280000,797,0.487,123217.46,157533.60,157533.60
2,1000,10,64,20,21990.73,20000,12800000,909,0.555,1099230.00,1139191.29,1139191.29Patch status was informational, so it never gated PRs. Set a 60% target on coverage.status.patch.default with a 10% threshold and drop the informational flag, so PRs must cover at least 50% (target - threshold) of the lines they change. The threshold softens the quantization on tiny diffs. Project status is unchanged. Closes apache#6021
0e66827 to
effae0d
Compare
There was a problem hiding this comment.
Pull request overview
This PR updates the repository’s Codecov configuration to make patch coverage a gating status check (instead of informational), aiming to require meaningful test coverage for newly changed lines.
Changes:
- Updates the explanatory comment describing the intended Codecov policy.
- Configures
coverage.status.patch.defaultwith atargetand removes the priorinformational: truebehavior.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
### What changes were proposed in this PR? The Codecov patch status was `informational: true`, so it never gated PRs. This makes it a real requirement: - set `target: 60%` on `coverage.status.patch.default`; - add `threshold: 10%` so the patch passes when coverage is at least `target - threshold` = 50%, softening the quantization on tiny diffs (e.g. a 2-coverable-line change passes at 1 line / 50%); - drop the `informational` flag so the patch check can fail. PRs must now cover at least 50% of the lines they change (60% target, 10% slack). Project status (auto target, 1% threshold), flag carryforward, and ignore rules are unchanged. The explanatory comment in `codecov.yml` is updated to match. ### Any related issues, documentation, discussions? Closes apache#6021 ### How was this PR tested? Config-only change; `codecov.yml` validated as well-formed YAML. Codecov applies the new policy on the next PR upload. ### Was this PR authored or co-authored using generative AI tooling? Generated-by: Claude Code (Claude Opus 4.8)
What changes were proposed in this PR?
The Codecov patch status was
informational: true, so it never gated PRs. This makes it a real requirement:target: 60%oncoverage.status.patch.default;threshold: 10%so the patch passes when coverage is at leasttarget - threshold= 50%, softening the quantization on tiny diffs (e.g. a 2-coverable-line change passes at 1 line / 50%);informationalflag so the patch check can fail.PRs must now cover at least 50% of the lines they change (60% target, 10% slack). Project status (auto target, 1% threshold), flag carryforward, and ignore rules are unchanged. The explanatory comment in
codecov.ymlis updated to match.Any related issues, documentation, discussions?
Closes #6021
How was this PR tested?
Config-only change;
codecov.ymlvalidated as well-formed YAML. Codecov applies the new policy on the next PR upload.Was this PR authored or co-authored using generative AI tooling?
Generated-by: Claude Code (Claude Opus 4.8)