Interested in contributing patches to Samza? This page will get you started.
Rules
Style
Please read this page for coding style suggestions.
Tests
Setup
Install rbt to make life easier.
sudo easy_install -U RBTools
Contributor Workflow
After setting up, you'll want to checkout the code.
git clone http://git-wip-us.apache.org/repos/asf/samza.git
To work on a JIRA once you've checked out, create a new branch.
git branch SAMZA-2
Now you can checkout the branch to work on it.
git checkout SAMZA-2
After you have made somce committed changes to the branch, and before you want to submit your patch to Review Board, a few things need to be done:
1. Run unit tests:
./gradlew clean build
2. Check if your code follows the coding conventions:
./gradlew checkstyleMain checkstyleTest
Once you've finished the above checklist, you can submit your patch:
rbt post --summary "SAMZA-2: fix the bug of .." --description "Detailed description of my patch"
The post command will spit out a URL. Verify that everything looks good, and then publish the review.
rbt publish 13725
Publishing will notify the dev mailing list that a new review request has been published.
The JIRA for the bug you're working on should be updated as well. Start by downloading the diff from Review Board.
curl https://reviews.apache.org/r/13725/diff/raw/ > /tmp/SAMZA-2.0.patch
Next, visit the JIRA page (e.g. https://issues.apache.org/jira/browse/SAMZA-2), and attach the patch file with a comment that points to the review board. See this example.
After you got some reviews and updated your working branch accordingly, you can update the review board:
rbt post -r 13725 --description "Description of my updated code"
rbt publish 13725
Committer Workflow
If you have commit access on the apache repository then you will not be applying patches in the manner described in the contributor workflow. Instead, once your patch has been reviewed you will check it in yourself as follows:
Create a branch to work on:
git fetch
git checkout -b xyz origin/master
- Implement the feature.
Rebase:
git rebase origin/master
- Post the change to JIRA and get it reviewed.
- Push the change back to Apache. Pick one of the following:
# assuming master is up-to-date with origin git checkout master git merge --squash xyz git commit -am "SAMZA-XXX xyz feature" --author= "firstname lastname <contributoremail>" git push origin master |