Skip to content

ci: require 60% patch coverage in Codecov#6022

Merged
Yicong-Huang merged 1 commit into
apache:mainfrom
Yicong-Huang:ci/codecov-patch-60
Jun 29, 2026
Merged

ci: require 60% patch coverage in Codecov#6022
Yicong-Huang merged 1 commit into
apache:mainfrom
Yicong-Huang:ci/codecov-patch-60

Conversation

@Yicong-Huang

@Yicong-Huang Yicong-Huang commented Jun 29, 2026

Copy link
Copy Markdown
Contributor

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 #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)

@github-actions github-actions Bot added the ci changes related to CI label Jun 29, 2026
@github-actions

Copy link
Copy Markdown
Contributor

Automated Reviewer Suggestions

Based on the git blame history of the changed files, we recommend the following reviewers:

  • No candidates found from git blame history.

@codecov-commenter

codecov-commenter commented Jun 29, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 56.64%. Comparing base (16a3ddf) to head (effae0d).

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     
Flag Coverage Δ *Carryforward flag
access-control-service 70.00% <ø> (ø)
agent-service 44.59% <ø> (ø)
amber 58.61% <ø> (-0.01%) ⬇️
computing-unit-managing-service 0.00% <ø> (ø)
config-service 52.30% <ø> (ø)
file-service 62.81% <ø> (ø)
frontend 49.39% <ø> (ø)
notebook-migration-service 78.57% <ø> (ø)
pyamber 90.15% <ø> (-0.05%) ⬇️
python 90.76% <ø> (ø) Carriedforward from 16a3ddf
workflow-compiling-service 55.14% <ø> (ø)

*This pull request uses carry forward flags. Click here to find out more.

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@github-actions

github-actions Bot commented Jun 29, 2026

Copy link
Copy Markdown
Contributor

⚠️ Benchmark changes need a look

🟢 2 better · 🔴 2 worse · ⚪ 11 noise (<±5%) · 0 without baseline

Compared against main 16a3ddf benchmarked on this same runner, so the delta is largely free of cross-runner hardware noise. The "7d avg" column still reflects the gh-pages dashboard. Treat <±5% as noise unless repeated.

Dashboard · Run

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.29

Patch 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
@Yicong-Huang Yicong-Huang force-pushed the ci/codecov-patch-60 branch from 0e66827 to effae0d Compare June 29, 2026 04:57
@aglinxinyuan aglinxinyuan requested a review from Copilot June 29, 2026 06:14

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

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.default with a target and removes the prior informational: true behavior.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread codecov.yml
@Yicong-Huang Yicong-Huang enabled auto-merge June 29, 2026 06:17
@Yicong-Huang Yicong-Huang added this pull request to the merge queue Jun 29, 2026
Merged via the queue into apache:main with commit 613b76e Jun 29, 2026
33 checks passed
@Yicong-Huang Yicong-Huang deleted the ci/codecov-patch-60 branch June 29, 2026 06:30
Mrudhulraj pushed a commit to Mrudhulraj/texera that referenced this pull request Jun 30, 2026
### 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)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ci changes related to CI

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Require 60% patch coverage in Codecov

4 participants