| <!DOCTYPE html> |
| <html lang="en"> |
| <head> |
| <meta charset="utf-8"> |
| <meta name="viewport" content="width=device-width, initial-scale=1"> |
| <title>Apache Aurora</title> |
| <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.1/css/bootstrap.min.css"> |
| <link href="/assets/css/main.css" rel="stylesheet"> |
| <!-- Analytics --> |
| <script type="text/javascript"> |
| var _gaq = _gaq || []; |
| _gaq.push(['_setAccount', 'UA-45879646-1']); |
| _gaq.push(['_setDomainName', 'apache.org']); |
| _gaq.push(['_trackPageview']); |
| |
| (function() { |
| var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; |
| ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; |
| var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); |
| })(); |
| </script> |
| </head> |
| <body> |
| <div class="container-fluid section-header"> |
| <div class="container"> |
| <div class="nav nav-bar"> |
| <a href="/"><img src="/assets/img/aurora_logo_dkbkg.svg" width="300" alt="Transparent Apache Aurora logo with dark background"/></a> |
| <ul class="nav navbar-nav navbar-right"> |
| <li><a href="/documentation/latest/">Documentation</a></li> |
| <li><a href="/community/">Community</a></li> |
| <li><a href="/downloads/">Downloads</a></li> |
| <li><a href="/blog/">Blog</a></li> |
| </ul> |
| </div> |
| </div> |
| </div> |
| |
| <div class="container-fluid"> |
| <div class="container content"> |
| <div class="col-md-12 documentation"> |
| <h5 class="page-header text-uppercase">Documentation |
| <select onChange="window.location.href='/documentation/' + this.value + '/contributing/'" |
| value="latest"> |
| <option value="0.22.0" |
| > |
| 0.22.0 |
| (latest) |
| </option> |
| <option value="0.21.0" |
| > |
| 0.21.0 |
| </option> |
| <option value="0.20.0" |
| > |
| 0.20.0 |
| </option> |
| <option value="0.19.1" |
| > |
| 0.19.1 |
| </option> |
| <option value="0.19.0" |
| > |
| 0.19.0 |
| </option> |
| <option value="0.18.1" |
| > |
| 0.18.1 |
| </option> |
| <option value="0.18.0" |
| > |
| 0.18.0 |
| </option> |
| <option value="0.17.0" |
| > |
| 0.17.0 |
| </option> |
| <option value="0.16.0" |
| > |
| 0.16.0 |
| </option> |
| <option value="0.15.0" |
| > |
| 0.15.0 |
| </option> |
| <option value="0.14.0" |
| > |
| 0.14.0 |
| </option> |
| <option value="0.13.0" |
| > |
| 0.13.0 |
| </option> |
| <option value="0.12.0" |
| > |
| 0.12.0 |
| </option> |
| <option value="0.11.0" |
| > |
| 0.11.0 |
| </option> |
| <option value="0.10.0" |
| > |
| 0.10.0 |
| </option> |
| <option value="0.9.0" |
| > |
| 0.9.0 |
| </option> |
| <option value="0.8.0" |
| > |
| 0.8.0 |
| </option> |
| <option value="0.7.0-incubating" |
| > |
| 0.7.0-incubating |
| </option> |
| <option value="0.6.0-incubating" |
| > |
| 0.6.0-incubating |
| </option> |
| <option value="0.5.0-incubating" |
| > |
| 0.5.0-incubating |
| </option> |
| </select> |
| </h5> |
| <h2 id="get-the-source-code">Get the Source Code</h2> |
| |
| <p>First things first, you’ll need the source! The Aurora source is available from Apache git:</p> |
| <pre class="highlight plaintext"><code>git clone https://gitbox.apache.org/repos/asf/aurora |
| </code></pre> |
| |
| <h2 id="read-the-style-guides">Read the Style Guides</h2> |
| |
| <p>Aurora’s codebase is primarily Java and Python and conforms to the Twitter Commons styleguides for |
| both languages.</p> |
| |
| <ul> |
| <li><a href="https://github.com/twitter/commons/blob/master/src/java/com/twitter/common/styleguide.md">Java Style Guide</a></li> |
| <li><a href="https://github.com/twitter/commons/blob/master/src/python/twitter/common/styleguide.md">Python Style Guide</a></li> |
| </ul> |
| |
| <h2 id="find-something-to-do">Find Something to Do</h2> |
| |
| <p>There are issues in <a href="https://issues.apache.org/jira/browse/AURORA">Jira</a> with the |
| <a href="https://issues.apache.org/jira/issues/?jql=project%20%3D%20AURORA%20AND%20labels%20%3D%20newbie%20and%20resolution%3Dunresolved">“newbie” label</a> |
| 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 <a href="mailto:dev@apache.aurora.org">dev@apache.aurora.org</a>. 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.</p> |
| |
| <h2 id="getting-your-reviewboard-account">Getting your ReviewBoard Account</h2> |
| |
| <p>Go to <a href="https://reviews.apache.org">https://reviews.apache.org</a> and create an account.</p> |
| |
| <h2 id="setting-up-your-reviewboard-environment">Setting up your ReviewBoard Environment</h2> |
| |
| <p>Run <code>./rbt status</code>. The first time this runs it will bootstrap and you will be asked to login. |
| Subsequent runs will cache your login credentials.</p> |
| |
| <h2 id="submitting-a-patch-for-review">Submitting a Patch for Review</h2> |
| |
| <p>Post a review with <code>rbt</code>, fill out the fields in your browser and hit Publish.</p> |
| <pre class="highlight plaintext"><code>./rbt post -o |
| </code></pre> |
| |
| <p>If you’re unsure about who to add as a reviewer, you can default to adding Stephan Erb (StephanErb) and |
| Renan DelValle (rdelvalle). They will take care of finding an appropriate reviewer for the patch.</p> |
| |
| <p>Once you’ve done this, you probably want to mark the associated Jira issue as Reviewable.</p> |
| |
| <h2 id="updating-an-existing-review">Updating an Existing Review</h2> |
| |
| <p>Incorporate review feedback, make some more commits, update your existing review, fill out the |
| fields in your browser and hit Publish.</p> |
| <pre class="highlight plaintext"><code>./rbt post -o -r <RB_ID> |
| </code></pre> |
| |
| <h2 id="getting-your-review-merged">Getting Your Review Merged</h2> |
| |
| <p>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.</p> |
| |
| <h3 id="merging-your-own-review-committers">Merging Your Own Review (Committers)</h3> |
| |
| <p>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:</p> |
| <pre class="highlight plaintext"><code>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> |
| </code></pre> |
| |
| <p>Note that even if you’re developing using feature branches you will not use <code>git merge</code> - each |
| commit will be an atomic change accompanied by a ReviewBoard entry.</p> |
| |
| <h3 id="merging-someone-else-39-s-review">Merging Someone Else’s Review</h3> |
| |
| <p>Sometimes you’ll need to merge someone else’s RB. The typical workflow for this is</p> |
| <pre class="highlight plaintext"><code>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 |
| </code></pre> |
| |
| <p>Note for committers: while we generally use the commit message generated by <code>./rbt patch</code> some |
| changes are often required:</p> |
| |
| <ol> |
| <li>Ensure the the commit message does not exceed 100 characters per line.</li> |
| <li>Remove the “Testing Done” section. It’s generally redundant (can be seen by checking the linked |
| review) or entirely irrelevant to the commit itself.</li> |
| </ol> |
| |
| <h2 id="cleaning-up">Cleaning Up</h2> |
| |
| <p>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”.</p> |
| |
| </div> |
| |
| </div> |
| </div> |
| <div class="container-fluid section-footer buffer"> |
| <div class="container"> |
| <div class="row"> |
| <div class="col-md-2 col-md-offset-1"><h3>Quick Links</h3> |
| <ul> |
| <li><a href="/downloads/">Downloads</a></li> |
| <li><a href="/community/">Mailing Lists</a></li> |
| <li><a href="http://issues.apache.org/jira/browse/AURORA">Issue Tracking</a></li> |
| <li><a href="/documentation/latest/contributing/">How To Contribute</a></li> |
| </ul> |
| </div> |
| <div class="col-md-2"><h3>The ASF</h3> |
| <ul> |
| <li><a href="http://www.apache.org/licenses/">License</a></li> |
| <li><a href="http://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li> |
| <li><a href="http://www.apache.org/foundation/thanks.html">Thanks</a></li> |
| <li><a href="http://www.apache.org/security/">Security</a></li> |
| </ul> |
| </div> |
| <div class="col-md-6"> |
| <p class="disclaimer">© 2014-2017 <a href="http://www.apache.org/">Apache Software Foundation</a>. Licensed under the <a href="http://www.apache.org/licenses/">Apache License v2.0</a>. The <a href="https://www.flickr.com/photos/trondk/12706051375/">Aurora Borealis IX photo</a> displayed on the homepage is available under a <a href="https://creativecommons.org/licenses/by-nc-nd/2.0/">Creative Commons BY-NC-ND 2.0 license</a>. Apache, Apache Aurora, and the Apache feather logo are trademarks of The Apache Software Foundation.</p> |
| </div> |
| </div> |
| </div> |
| |
| </body> |
| </html> |