HyukjinKwon opened a new pull request #24213: [SPARK-27277][INFRA] Recover from 
setting fix version failure in merge script
URL: https://github.com/apache/spark/pull/24213
 
 
   ## What changes were proposed in this pull request?
   
   I happened to meet this cases few times before:
   
   ```
   Enter comma-separated fix version(s) [3.0.0]: 3.0,0
   Restoring head pointer to master
   git checkout master
   Already on 'master'
   git branch
   Traceback (most recent call last):
     File "./dev/merge_spark_pr_jira.py", line 537, in <module>
       main()
     File "./dev/merge_spark_pr_jira.py", line 523, in main
       resolve_jira_issues(title, merged_refs, jira_comment)
     File "./dev/merge_spark_pr_jira.py", line 359, in resolve_jira_issues
       resolve_jira_issue(merge_branches, comment, jira_id)
     File "./dev/merge_spark_pr_jira.py", line 302, in resolve_jira_issue
       jira_fix_versions = map(lambda v: get_version_json(v), fix_versions)
     File "./dev/merge_spark_pr_jira.py", line 302, in <lambda>
       jira_fix_versions = map(lambda v: get_version_json(v), fix_versions)
     File "./dev/merge_spark_pr_jira.py", line 300, in get_version_json
       return filter(lambda v: v.name == version_str, versions)[0].raw
   IndexError: list index out of range
   ```
   
   I typed the fix version wrongly (there's comma in `3.0,0`) and it ended the 
loop in the merge script. Not a big deal but it bugged me few times. Finally I 
met this today again, and decided to fix.
   
   This PR proposes to recover from wrongly set fix versions.
   
   ## How was this patch tested?
   
   I manually copied and pasted the specific codes and tested separately in 
both Python 2 and Python 3.
   
   **Positive cases:**
   
   ```
   Enter comma-separated fix version(s) [3.0.0]:  # blank test (to use default)
   ['3.0.0']
   ```
   
   ```
   Enter comma-separated fix version(s) [3.0.0,2.4.2]:  # multiple default 
versions
   ['3.0.0', '2.4.2']
   ```
   
   ```
   Enter comma-separated fix version(s) [3.0.0]: 2.4.1  # valid version
   ['2.4.1']
   ```
   
   ```
   Enter comma-separated fix version(s) [3.0.0]: 3.0.0,2.4.2  # multiple valid 
versions
   ['3.0.0', '2.4.2']
   ```
   
   **Wrongly typed versions:**
   
   ```
   Enter comma-separated fix version(s) [3.0.0]: 3.1
   Specified version(s) [3.1] not found in the available versions, try again(or 
leave blank and fix manually).
   Enter comma-separated fix version(s) [3.0.0]: 123
   Specified version(s) [123] not found in the available versions, try again(or 
leave blank and fix manually).
   Enter comma-separated fix version(s) [3.0.0]: 3.0,0
   Specified version(s) [3.0, 0] not found in the available versions, try 
again(or leave blank and fix manually).
   Enter comma-separated fix version(s) [3.0.0]: damn
   Specified version(s) [damn] not found in the available versions, try 
again(or leave blank and fix manually).
   Enter comma-separated fix version(s) [3.0.0]: 3.0.0,2.5.2  # one invalid 
versions in multiple versions
   Specified version(s) [3.0.0, 2.5.2] not found in the available versions, try 
again(or leave blank and fix manually).
   ```
   
   **Keyboard interrupt(Ctrl + c):**
   
   ```
   Enter comma-separated fix version(s) [3.0.0]: ^CTraceback (most recent call 
last):  # keyboard interrupt
     File "test_merge_script.py", line 45, in <module>
       test()
     File "test_merge_script.py", line 26, in test
       fix_versions = input("Enter comma-separated fix version(s) [%s]: " % 
default_fix_versions)
   KeyboardInterrupt
   ```
   
   **Arbitrary exceptions in fix version parsing**
   
   ```
   Enter comma-separated fix version(s) [3.0.0]:
   Traceback (most recent call last):
     File "tmp.py", line 11, in <module>
       raise Exception("arbitrary exception")
   Exception: arbitrary exception
   Error setting fix version(s), try again (or leave blank and fix manually)
   Enter comma-separated fix version(s) [3.0.0]:
   Traceback (most recent call last):
     File "tmp.py", line 10, in <module>
       raise Exception("arbitrary exception")
   Exception: arbitrary exception
   Error setting fix version(s), try again (or leave blank and fix manually)
   Enter comma-separated fix version(s) [3.0.0]:
   ```
   
   
   
   

----------------------------------------------------------------
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.
 
For queries about this service, please contact Infrastructure at:
[email protected]


With regards,
Apache Git Services

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to