Skip to content

ci: move backport preflight out of Required Checks and report conflicts as neutral - #6959

Merged
Yicong-Huang merged 4 commits into
apache:mainfrom
Yicong-Huang:ci/backport-out-of-required-checks
Jul 28, 2026
Merged

ci: move backport preflight out of Required Checks and report conflicts as neutral#6959
Yicong-Huang merged 4 commits into
apache:mainfrom
Yicong-Huang:ci/backport-out-of-required-checks

Conversation

@Yicong-Huang

@Yicong-Huang Yicong-Huang commented Jul 28, 2026

Copy link
Copy Markdown
Contributor

What changes were proposed in this PR?

Follow-up to #6941, improving the backport CI/PRs so they stop reading as failures:

  • A backport conflict no longer shows a red X. Moved backport preflight/build out of required-checks.yml into a dedicated Backport Checks workflow, and report a conflict as a neutral (grey) check instead of a failing job. Still advisory, still never blocks merge (backport was never a required context).
  • Shared precheck. Extracted precheck into a reusable workflow so the label→stack mapping lives in one place.
  • Nicer auto-opened draft backport PRs: opened as github-actions[bot], follow the PR template, title no longer links back to the original PR (trailing (#N) stripped), and the body carries the original PR's linked issue/discussion.

Any related issues, documentation, discussions?

Closes #6954. Follow-up to #6941.

How was this PR tested?

actionlint and node --check clean on all workflows; the apply-check shell/jq and the title/related-section logic were exercised locally. Full behavior runs on a real backport-labeled PR.

Was this PR authored or co-authored using generative AI tooling?

Generated-by: Claude Code (Opus 4.8)

…ts as neutral

Backport preflight/build lived inside required-checks.yml, so a cherry-pick
conflict surfaced as a failing `Required Checks / backport-apply-check (...)`
job -- a red X that reads like a required check failed, though it is advisory
(never in .asf.yaml's required set) and never blocks merge.

- Extract precheck into a reusable workflow (precheck.yml) shared by the main
  build and the new backport preflight, so the label->stack mapping lives once.
- Move backport apply-check + build into a dedicated Backport Checks workflow.
  apply-check is a single git-only job (no matrix, no backport-buildable
  aggregator) that never fails on a conflict; it writes the outcome to an
  artifact.
- Add a Backport Preflight Publish workflow (workflow_run) that turns the
  artifact into a `backport-preflight (<target>)` check: success = clean,
  neutral (grey) = conflict. Never red, never a merge blocker.
- Repoint Direct Backport Push to the neutral/success check (old apply-check
  job kept as a rollout fallback).
- Auto-opened draft backport PRs: open as github-actions[bot], fill the PR
  template, drop the trailing "(#N)" link from the title, and carry the
  original PR's linked issues/discussion into the body.
@github-actions github-actions Bot added the ci changes related to CI label Jul 28, 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 Jul 28, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 78.98%. Comparing base (31f1e7b) to head (9e81f02).
⚠️ Report is 2 commits behind head on main.

Additional details and impacted files
@@             Coverage Diff              @@
##               main    #6959      +/-   ##
============================================
- Coverage     78.99%   78.98%   -0.01%     
- Complexity     3788     3789       +1     
============================================
  Files          1160     1160              
  Lines         46105    46105              
  Branches       5115     5115              
============================================
- Hits          36419    36418       -1     
- Misses         8067     8070       +3     
+ Partials       1619     1617       -2     
Flag Coverage Δ
access-control-service 70.00% <ø> (ø)
agent-service 76.76% <ø> (ø)
amber 72.21% <ø> (+<0.01%) ⬆️
computing-unit-managing-service 20.49% <ø> (ø)
config-service 66.66% <ø> (ø)
file-service 67.21% <ø> (ø)
frontend 82.99% <ø> (ø)
notebook-migration-service 78.94% <ø> (ø)
pyamber 95.34% <ø> (-0.05%) ⬇️
workflow-compiling-service 26.31% <ø> (ø)

☔ 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 Jul 28, 2026

Copy link
Copy Markdown
Contributor

⚠️ Benchmark changes need a look

🟢 3 better · 🔴 4 worse · ⚪ 8 noise (<±5%) · 0 without baseline

Compared against main 589f601 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 357 0.218 26,486/42,751/42,751 us 🔴 +29.9% / 🔴 +163.3%
🟢 bs=100 sw=10 sl=64 812 0.496 123,652/135,282/135,282 us 🟢 -15.8% / 🔴 +24.5%
bs=1000 sw=10 sl=64 919 0.561 1,093,656/1,113,226/1,113,226 us ⚪ within ±5% / 🔴 +9.4%
Baseline details

Latest main 589f601 from same runner

config metric PR latest main 7d avg Δ latest Δ 7d
bs=10 sw=10 sl=64 throughput 357 tuples/sec 390 tuples/sec 767.9 tuples/sec -8.5% -53.5%
bs=10 sw=10 sl=64 MB/s 0.218 MB/s 0.238 MB/s 0.469 MB/s -8.4% -53.5%
bs=10 sw=10 sl=64 p50 26,486 us 25,721 us 12,502 us +3.0% +111.9%
bs=10 sw=10 sl=64 p95 42,751 us 32,913 us 16,234 us +29.9% +163.3%
bs=10 sw=10 sl=64 p99 42,751 us 32,913 us 18,919 us +29.9% +126.0%
bs=100 sw=10 sl=64 throughput 812 tuples/sec 774 tuples/sec 974.8 tuples/sec +4.9% -16.7%
bs=100 sw=10 sl=64 MB/s 0.496 MB/s 0.472 MB/s 0.595 MB/s +5.1% -16.6%
bs=100 sw=10 sl=64 p50 123,652 us 126,547 us 102,449 us -2.3% +20.7%
bs=100 sw=10 sl=64 p95 135,282 us 160,599 us 108,652 us -15.8% +24.5%
bs=100 sw=10 sl=64 p99 135,282 us 160,599 us 116,310 us -15.8% +16.3%
bs=1000 sw=10 sl=64 throughput 919 tuples/sec 922 tuples/sec 1,004 tuples/sec -0.3% -8.5%
bs=1000 sw=10 sl=64 MB/s 0.561 MB/s 0.563 MB/s 0.613 MB/s -0.4% -8.5%
bs=1000 sw=10 sl=64 p50 1,093,656 us 1,078,000 us 999,606 us +1.5% +9.4%
bs=1000 sw=10 sl=64 p95 1,113,226 us 1,137,403 us 1,046,770 us -2.1% +6.3%
bs=1000 sw=10 sl=64 p99 1,113,226 us 1,137,403 us 1,076,937 us -2.1% +3.4%
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,560.61,200,128000,357,0.218,26485.73,42750.98,42750.98
1,100,10,64,20,2463.17,2000,1280000,812,0.496,123651.55,135282.37,135282.37
2,1000,10,64,20,21759.14,20000,12800000,919,0.561,1093655.80,1113226.38,1113226.38

@xuang7 xuang7 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.

LGTM

@Yicong-Huang
Yicong-Huang added this pull request to the merge queue Jul 28, 2026
@github-merge-queue
github-merge-queue Bot removed this pull request from the merge queue due to failed status checks Jul 28, 2026
@Yicong-Huang
Yicong-Huang added this pull request to the merge queue Jul 28, 2026
Merged via the queue into apache:main with commit ee41d9a Jul 28, 2026
37 checks passed
@Yicong-Huang
Yicong-Huang deleted the ci/backport-out-of-required-checks branch July 28, 2026 02:21
renovate-bot pushed a commit to renovate-bot/apache-_-texera that referenced this pull request Jul 28, 2026
### What changes were proposed in this PR?

The backport auto-label workflow
(`.github/workflows/backport-auto-label.yml`) decides, per
actively-supported release branch, whether to add a `release/*` label to
a `fix:` PR. Until now every skip was silent — visible only in the
Actions log. Its cheap "is this feature on the branch?" check compares
**exact file paths**, so a file moved or renamed after the branch was
cut reads as *absent* and the label is dropped with no signal to the
author. apache#6960 hit exactly this: its files live under `coordinator/` on
`main` but `controller/` on `release/v1.2`, so a fix that genuinely
applied to v1.2 was never labeled.

This PR makes the workflow write its reasoning back to the PR as a
single report comment:

- **One row per actively-supported release branch**, with the decision
and why:
- ✅ **labeled** — change detected on the branch; label added (and who
was requested for review);
- ⚠️ **skipped** — none of the modified files exist on the branch (the
files are listed), with a prompt to check and add the label by hand if
the fix should be backported;
  - 🚫 **declined** — a previously removed label (opt-out), not re-added.
- The comment is **upserted in place** via a hidden marker, so `edited`
re-runs update the same comment instead of stacking new ones (editing a
comment sends no notification, so re-runs stay quiet).
- It links the auto-label run, and is authored by `github-actions[bot]`
like the existing review request (no label PAT needed).
- Inactive branches and non-`fix:` PRs are unchanged (no comment); a
`no-backport-needed` PR gets a one-line note instead of the table.

Labeling behavior itself is unchanged — this only surfaces the decisions
that were already being made.

### Any related issues, documentation, discussions?

Resolves apache#6961. Follow-up to the backport lifecycle automation (apache#6941,
apache#6959). Motivated by apache#6960, which was silently not labeled for
`release/v1.2`.

### How was this PR tested?

- YAML parses and the embedded github-script passes `node --check`
(async-wrapped).
- Walked the branch/label/timeline/file-status cases against apache#6960's
real data to confirm the rows and skip reasons render as intended.
- Full end-to-end exercise needs a live `pull_request_target` event with
the org PAT/secrets, which only runs once merged.

### Was this PR authored or co-authored using generative AI tooling?

Generated-by: Claude Code (Claude Opus 4.8)

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
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.

Move backport preflight/build out of Required Checks and report conflicts as neutral

3 participants