cloud-fan commented on code in PR #56137:
URL: https://github.com/apache/spark/pull/56137#discussion_r3310658184
##########
dev/merge_spark_pr.py:
##########
@@ -1260,11 +1260,30 @@ def main():
if asf_jira is not None:
jira_ids = re.findall("SPARK-[0-9]{4,5}", title)
+ # Epic / Umbrella tickets group related work and must not be resolved
by a single PR.
+ # Collect every offender so the committer sees the full list in one
shot rather than
+ # discovering them one-by-one across repeated merge attempts.
+ blocking_issue_types = {"Epic", "Umbrella"}
+ blockers = []
for jira_id in jira_ids:
try:
- print_jira_issue_summary(asf_jira.issue(jira_id))
+ issue = asf_jira.issue(jira_id)
except Exception:
print_error("Unable to fetch summary of %s" % jira_id)
+ continue
+ print_jira_issue_summary(issue)
+ issuetype = issue.fields.issuetype.name
+ if issuetype in blocking_issue_types:
+ blockers.append((jira_id, issuetype))
Review Comment:
The issue type collected here is discarded — `ids_str` only uses the JIRA
ID. Two cleaner options:
- Drop the tuple if you don't need the type:
```python
blockers.append(jira_id)
...
ids_str = ", ".join(blockers)
```
- Or surface the type in the error so the committer can see at a glance
which IDs are Epic vs. Umbrella:
```python
ids_str = ", ".join("%s (%s)" % (jid, t) for jid, t in blockers)
```
producing `Linked JIRA(s) SPARK-1234 (Umbrella), SPARK-5678 (Epic) are
umbrella or epic tickets...`
--
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]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]