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]

Reply via email to