Yicong-Huang opened a new pull request, #6941: URL: https://github.com/apache/texera/pull/6941
### What changes were proposed in this PR? Overhauls the release-backport lifecycle so it stops depending on people remembering. Two long-standing gaps: fix authors/committers forget to request a backport, and when a backport conflicts the only trace is a PR comment that gets forgotten. - **`.github/release-branches.yml`** — single source of truth mapping each active release branch to its release manager (`release/v1.2` → `xuang7`, `release/v1.1` → `bobbai00`), parsed by a stdlib-only helper (`release_branches.py`). - **`backport-auto-label`** (new) — when a `fix:` PR into `main` opens, it labels the PR with every configured `release/*` target and requests review from that branch's release manager. Backporting becomes **opt-out**: remove the label to decline. A removal is remembered via the timeline, so a later title/body edit never silently re-adds a label the author took off. - **`required-checks`** — the pre-merge backport is split into a fast, git-only **apply-check** that gates the expensive build matrix (a conflicting target no longer spins up the full stacks), and `backport` is **removed from the Required Checks aggregator** so a red backport is advisory, not a merge gate. - **`direct-backport-push`** — post-merge, each target is classified from the apply-check/build signal: **green** cherry-picks straight to the release branch (unchanged); **red** (conflict, or applies-but-won't-build) auto-opens a **draft** backport PR titled `fix(scope, vX.Y): …` on `backport/<PR>-<slug>-<target>`, with the conflicted tree committed, assigned to the original author and the release manager as reviewer. Note: a red apply-check now shows as a (non-blocking) red check on the PR — that is the intended "this will need a manual backport" signal, not a merge blocker. ### Any related issues, documentation, discussions? Resolves #6940. ### How was this PR tested? - Validated all workflows with `actionlint`; YAML parses; every `github-script` block passes `node --check` (async-wrapped). - Unit-tested the parser (`release_branches.py`), the branch-slug derivation, and the `fix(scope, vX.Y)` title injection against representative subjects. - CI-orchestration paths (apply-check gating, green push vs. red auto-PR) need a dry-run on a release-label test branch in Actions — they can't be exercised locally. ### Was this PR authored or co-authored using generative AI tooling? Generated-by: Claude Code (Claude Opus 4.8) -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
