ci: move backport preflight out of Required Checks and report conflicts as neutral - #6959
Merged
Yicong-Huang merged 4 commits intoJul 28, 2026
Merged
Conversation
…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.
Contributor
Automated Reviewer SuggestionsBased on the
|
Codecov Report✅ All modified and coverable lines are covered by tests. 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
☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
Contributor
|
| 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
github-merge-queue
Bot
removed this pull request from the merge queue due to failed status checks
Jul 28, 2026
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>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What changes were proposed in this PR?
Follow-up to #6941, improving the backport CI/PRs so they stop reading as failures:
required-checks.ymlinto a dedicated Backport Checks workflow, and report a conflict as aneutral(grey) check instead of a failing job. Still advisory, still never blocks merge (backport was never a required context).precheckinto a reusable workflow so the label→stack mapping lives in one place.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?
actionlintandnode --checkclean 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)