This section documents the process for reviewing and merging code changes contributed via Github Pull Requests. There are 2 approaches for merging:
A pull request is ready to be merged once:
This process requires the committer to have connected their ASF and github accounts via gitbox. Once connected, it can take several minutes for the write access to synchronize and the workflow below to become available.
Once the pull request is ready to be merged (as per the description above):
kafka-merge-pr.py is a script that automates the process of accepting a code change into the project. It creates a temporary branch from apache/trunk, squashes the commits in the pull request, rewrites the commit message in the squashed commit to follow a standard format including information about each original commit, merges the squashed commit into the temporary branch, pushes the code to apache/trunk and closes the JIRA ticket. The push will then be mirrored to apache-github/trunk, which will cause the PR to be closed due to the pattern in the commit message. Note that the script will ask the user before executing remote updates (ie git push and closing JIRA ticket), so it can still be used even if the user wants to skip those steps.
1. Clone Kafka's Git repository (if you haven't already).
2. Add aliases for the remotes expected by the merge script (if you haven't already):
git remote add apache https://gitbox.apache.org/repos/asf/kafka.git git remote add apache-github https://github.com/apache/kafka.git |
Note that the scripts we use default to pushing changes directly to github. If you did not connect your Apache and Github accounts via gitbox, you'll need to push to gitbox instead by:
export PUSH_REMOTE_NAME=apache
3. Install jira-python:
sudo easy_install jiraOnce the pull request is ready to be merged (as per the description above):
1. Set the JIRA_USERNAME and JIRA_PASSWORD environment variables with the appropriate credentials if you intend to ask the script to close the issue associated with the pull request.
2. Run the merge script:
./kafka-merge-pr.py |
3. Answer the questions prompted by the script.