First things first, you'll need the source! The Aurora source is available from Apache git:
git clone https://git-wip-us.apache.org/repos/asf/aurora
Aurora's codebase is primarily Java and Python and conforms to the Twitter Commons styleguides for both languages.
There are issues in Jira with the "newbie" label that are good starting places for new Aurora contributors; pick one of these and dive in! Once you've got a patch, the next step is to post a review.
Go to https://reviews.apache.org and create an account.
Run ./rbt status
. The first time this runs it will bootstrap and you will be asked to login.
Subsequent runs will cache your login credentials.
Post a review with rbt
, fill out the fields in your browser and hit Publish.
./rbt post -o
If you're unsure about who to add as a reviewer, you can default to adding Bill Farner (wfarner) and Joshua Cohen (jcohen). They will take care of finding an appropriate reviewer for the patch.
Once you've done this, you probably want to mark the associated Jira issue as Reviewable.
Incorporate review feedback, make some more commits, update your existing review, fill out the fields in your browser and hit Publish.
./rbt post -o -r <RB_ID>
If you're not an Aurora committer, one of the committers will merge your change in as described below. Generally, the last reviewer to give the review a 'Ship It!' will be responsible.
Once you have shipits from the right committers, merge your changes in a single commit and mark the review as submitted. The typical workflow is:
git checkout master
git pull origin master
./rbt patch -c <RB_ID> # Verify the automatically-generated commit message looks sane,
# editing if necessary.
git show master # Verify everything looks sane
git push origin master
./rbt close <RB_ID>
Note that even if you're developing using feature branches you will not use git merge
- each
commit will be an atomic change accompanied by a ReviewBoard entry.
Sometimes you'll need to merge someone else's RB. The typical workflow for this is
git checkout master
git pull origin master
./rbt patch -c <RB_ID>
git show master # Verify everything looks sane, author is correct
git push origin master
Note for committers: while we generally use the commit message generated by ./rbt patch
some
changes are often required:
- Ensure the the commit message does not exceed 100 characters per line.
- Remove the "Testing Done" section. It's generally redundant (can be seen by checking the linked review) or entirely irrelevant to the commit itself.
Your patch has landed, congratulations! The last thing you'll want to do before moving on to your next fix is to clean up your Jira and Reviewboard. The former of which should be marked as "Resolved" while the latter should be marked as "Submitted".