Github user HeartSaVioR commented on the issue:

    https://github.com/apache/storm/pull/1468
  
    Here's my understanding regarding this script.
    
    > main()
    
    * get latest branch (highest version) from github mirror
      * it assumes that prefix of release branch is `release version`
    * get information regarding pull request and events of pull request
    * prompt user(committer) to input commit title: default value is title of 
pull request, and user can replace them
    * standardize commit title (via standardize_jira_ref) 
    * prompt user to use title as modified vs original
    * check that pull request is already merged (closed by asfgit)
      * if it is, check merge commit is fetched to local, and cherry-pick to 
latest branch assuming user wants backport
    * prompt user to continue if PR seems to resolve conflicts (by seeing flag 
from PR information)
    * print information of pull request, and commit title, and so on, and 
prompt user to go on
    * merge PR into target branch of PR: get commit hash afterwards
    * prompt user to see user wants cherry-pick
      * if yes, cherry-pick to latest branch
    * prompt user to update associated JIRA
      * if yes, resolve issue as fixed with leaving comment
    
    > merge_pr()
    
    * fetch branch which pull request is referring
    * fetch and checkout branch which pull request targets (from asf-git)
    * merge pull request branch with squash option
      * if there're some conflicts, guide user to fix it and mark as resolved 
(via git add)
    * prompt user to input main author: default value is who has most of 
commits (via extracting authors from pull request branch and sort)
    * prompt user to input reviewers: can be blank
    * prompt user to see user wants to list all commits into commit message
    * construct commit message by
      * commit title
      * body of pull request if presented
      * all authors
      * all reviewers if presented
      * user if user resolves merge conflict manually
      * auto close message for pull request
      * list of commits if user want to
    * commit with passing main author as author, and commit message
    * prompt user to push, or stop
    * push changes to remote repository (to asf-git)
    * clean temporary branches
    * get commit hash and return
    
    > cherry_pick()
    
    * prompt user to input branch name to cherry-pick: default value is latest 
branch which is passed from main()
    * fetch and checkout branch which cherry-pick targets (from asf-git)
    * cherry-pick with commit hash
      * if there're some conflicts, guide user to fix it and complete 
cherry-pick manually
    * prompt user to push, or stop
    * push changes to remote repository (to asf-git)
    * clean temporary branches
    * get commit hash and return
    
    > resolve_jira_issue()
    
    * prompt user to input JIRA issue ID: default value is extracted value from 
commit title
    * get information of the issue
    * check status and stop if issue is already marked as 'Resolved'
    * print information of the issue
    * prompt user to input comma-separated fix versions
      * default values are `unreleased` versions matched to target branch for 
merge() / cherry_pick()
         * develop branch is treated as default version
    * mark issue as 'Resolved' with setting fix versions and leaving comment


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---

Reply via email to