L. C. Hsieh created SPARK-57002:
-----------------------------------
Summary: Enforce Upstream-First policy in merge_spark_pr.py
cherry-pick prompts
Key: SPARK-57002
URL: https://issues.apache.org/jira/browse/SPARK-57002
Project: Spark
Issue Type: Improvement
Components: Project Infra
Affects Versions: 4.3.0
Reporter: L. C. Hsieh
The Upstream-First backporting policy (documented in the header comment of
dev/merge_spark_pr.py) requires non-bugfix commits to flow through branch-M.x
before reaching branch-M.N. The merge script already sorts branch-M.x ahead of
branch-M.N when offering cherry-pick targets, so the default selection is
policy-compliant. However, when a committer manually types a branch-M.N target
while the branch-M.x default is being offered, the script silently proceeds
with branch-M.N alone, and branch-M.x is never revisited in subsequent prompts.
This has led to commits landing on branch-4.2 but missing branch-4.x.
Concrete examples observed on the current branches (as of 2026-05-22):
- SPARK-56700 (https://github.com/apache/spark/pull/55651)
- SPARK-56676 (https://github.com/apache/spark/pull/55623)
- SPARK-56838 (https://github.com/apache/spark/pull/55836)
- SPARK-56650 (https://github.com/apache/spark/pull/55589)
- SPARK-56856 (https://github.com/apache/spark/pull/55969)
- SPARK-56977 (https://github.com/apache/spark/pull/56023)
All six landed on master and branch-4.2 but were not cherry-picked to
branch-4.x, requiring follow-up backports.
This ticket proposes a small change to the cherry-pick prompt: when the
committer types branch-M.N while branch-M.x exists and has not yet received
this commit, surface the policy and offer to pick into both branches in one
step (the policy-compliant default). The committer can still pick only
branch-M.N if the commit is genuinely a branch-M.N-only maintenance bugfix.
Expected behavior:
Default: branch-4.x → committer types `branch-4.2`
============================================================================
Upstream-First policy: non-bugfix commits on branch-4.2 should also land on
branch-4.x. If this is a branch-4.2-only maintenance bugfix, you may pick
branch-4.2 alone. Otherwise, pick both (branch-4.x first, then branch-4.2).
============================================================================
Pick into [b]oth branch-4.x + branch-4.2 / [o]nly branch-4.2 / [a]bort
(default: both):
The default response picks into both branches; "only" preserves the bugfix
escape hatch; "abort" surfaces explicit cancellation rather than silently
falling through.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]