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! To assign a task to yourself, first ask for your JIRA id to be whitelisted by either asking in IRC/Slack or by emailing firstname.lastname@example.org. Once your JIRA account has been whitelisted you can assign tickets to yourself. The next step is to prepare your patch and finally post it for review.
Go to https://reviews.apache.org and create an account.
./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 Zameer Manji (zmanji) 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:
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”.