page.title=Submitting Patches
@jd:body

<!--
    Copyright 2015 The Android Open Source Project

    Licensed under the Apache License, Version 2.0 (the "License");
    you may not use this file except in compliance with the License.
    You may obtain a copy of the License at

        http://www.apache.org/licenses/LICENSE-2.0

    Unless required by applicable law or agreed to in writing, software
    distributed under the License is distributed on an "AS IS" BASIS,
    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    See the License for the specific language governing permissions and
    limitations under the License.
-->
<div id="qv-wrapper">

  <div id="qv">
    <h2>In this document</h2>
    <ol id="auto-toc">
    </ol>
  </div>
</div>
<p>This page describes the full process of submitting a patch to the AOSP, including
reviewing and tracking changes with <a href="https://android-review.googlesource.com/">Gerrit</a>.</p>
<h2 id="prerequisites">Prerequisites</h2>
<ul>
<li>
<p>Before you follow the instructions on this page, you need to <a href="{@docRoot}source/initializing.html">
initialize your build environment</a>, <a
href="{@docRoot}source/downloading.html">download the source</a>, <a
href="https://android.googlesource.com/new-password">create a
password</a>, and follow the instructions on the password generator page.</p>
</li>
<li>
<p>For details about Repo and Git, see the <a href="{@docRoot}source/developing.html">Developing</a> section.</p>
</li>
<li>
<p>For information about the different roles you can play within the Android
Open Source community, see <a href="{@docRoot}source/roles.html">Project roles</a>.</p>
</li>
<li>
<p>If you plan to contribute code to the Android platform, be sure to read
the <a href="{@docRoot}source/licenses.html">AOSP's licensing information</a>.</p>
</li>
<li>
<p>Note that changes to some of the upstream projects used by Android should be
made directly to that project, as described in <a href="#upstream-projects">Upstream Projects</a>.</p>
</li>
</ul>
<h1 id="for-contributors">For contributors</h1>
<h2 id="authenticate-with-the-server">Authenticate with the server</h2>
<p>Before you can upload to Gerrit, you need to <a
href="https://android.googlesource.com/new-password">establish a password</a>
that will identify you with the server. Follow the instructions on the password
generator page. You need to do this only once. See <a
href="{@docRoot}source/downloading.html#using-authentication">Using
Authentication</a> for additional details.</p>
<h2 id="start-a-repo-branch">Start a repo branch</h2>
<p>For each change you intend to make, start a new branch within the relevant git repository:</p>
<pre><code>$ repo start NAME .
</code></pre>
<p>You can start several independent branches at the same time in the same
repository. The branch NAME is local to your workspace and will not be included
on gerrit or the final source tree.</p>
<h2 id="make-your-change">Make your change</h2>
<p>Once you have modified the source files (and validated them, please) commit
the changes to your local repository:</p>
<pre><code>$ git add -A
$ git commit -s
</code></pre>
<p>Provide a detailed description of the change in your commit message. This
description will be pushed to the public AOSP repository, so please follow our
guidelines for writing changelist descriptions: </p>
<ul>
<li>
<p>Start with a one-line summary (60 characters max), followed by a blank line.
This format is used by git and gerrit for various displays. </p>
<pre><code>short description on first line

more detailed description of your patch,
which is likely to take up multiple lines.
</code></pre>
</li>
<li>
<p>The description should focus on what issue it solves, and how it solves it. The second part is somewhat optional when implementing new features, though desirable.</p>
</li>
<li>
<p>Include a brief note of any assumptions or background information that may be important when another contributor works on this feature next year. </p>
</li>
</ul>
<p>A unique change ID and your name and email as provided during <code>repo init</code> will be automatically added to your commit message. </p>
<h2 id="upload-to-gerrit">Upload to gerrit</h2>
<p>Once you have committed your change to your personal history, upload it to gerrit with</p>
<pre><code>$ repo upload
</code></pre>
<p>If you have started multiple branches in the same repository, you will be prompted to select which one(s) to upload.</p>
<p>After a successful upload, repo will provide you the URL of a new page on
<a href="https://android-review.googlesource.com/">Gerrit</a>. Visit this link to view
your patch on the review server, add comments, or request specific reviewers
for your patch.</p>
<h2 id="uploading-a-replacement-patch">Uploading a replacement patch</h2>
<p>Suppose a reviewer has looked at your patch and requested a small modification. You can amend your commit within git, which will result in a new patch on gerrit with the same change ID as the original.</p>
<p><em>Note that if you have made other commits since uploading this patch, you will need to manually move your git HEAD.</em></p>
<pre><code>$ git add -A
$ git commit --amend
</code></pre>
<p>When you upload the amended patch, it will replace the original on gerrit and in your local git history.</p>
<h2 id="resolving-sync-conflicts">Resolving sync conflicts</h2>
<p>If other patches are submitted to the source tree that conflict with yours, you will need to rebase your patch on top of the new HEAD of the source repository. The easy way to do this is to run</p>
<pre><code>$ repo sync
</code></pre>
<p>This command first fetches the updates from the source server, then attempts to automatically rebase your HEAD onto the new remote HEAD.</p>
<p>If the automatic rebase is unsuccessful, you will have to perform a manual rebase.</p>
<pre><code>$ repo rebase
</code></pre>
<p>Using <code>git mergetool</code> may help you deal with the rebase conflict. Once you have successfully merged the conflicting files,</p>
<pre><code>$ git rebase --continue
</code></pre>
<p>After either automatic or manual rebase is complete, run <code>repo upload</code> to submit your rebased patch.</p>
<h2 id="after-a-submission-is-approved">After a submission is approved</h2>
<p>After a submission makes it through the review and verification process, Gerrit automatically merges the change into the public repository. Other users will be able to run <code>repo sync</code> to pull the update into their local client.</p>
<h1 id="for-reviewers-and-verifiers">For reviewers and verifiers</h1>
<h2 id="reviewing-a-change">Reviewing a change</h2>
<p>If you are assigned to be the Approver for a change, you need to determine the following:</p>
<ul>
<li>
<p>Does this change fit within this project's stated purpose?</p>
</li>
<li>
<p>Is this change valid within the project's existing architecture?</p>
</li>
<li>
<p>Does this change introduce design flaws that will cause problems in the future?</p>
</li>
<li>
<p>Does this change follow the best practices that have been established for this project?</p>
</li>
<li>
<p>Is this change a good way to perform the described function?</p>
</li>
<li>
<p>Does this change introduce any security or instability risks?</p>
</li>
</ul>
<p>If you approve of the change, mark it with LGTM ("Looks Good to Me") within Gerrit.</p>
<h2 id="verifying-a-change">Verifying a change</h2>
<p>If you are assigned to be the Verifier for a change, you need to do the following:</p>
<ul>
<li>
<p>Patch the change into your local client using one of the Download commands.</p>
</li>
<li>
<p>Build and test the change.</p>
</li>
<li>
<p>Within Gerrit use Publish Comments to mark the commit as "Verified" or "Fails," and add a message explaining what problems were identified.</p>
</li>
</ul>
<h2 id="downloading-changes-from-gerrit">Downloading changes from Gerrit</h2>
<p>A submission that has been verified and merged will be downloaded with the next <code>repo sync</code>. If you wish to download a specific change that has not yet been approved, run</p>
<pre><code>$ repo download TARGET CHANGE
</code></pre>
<p>where TARGET is the local directory into which the change should be downloaded and CHANGE is the
change number as listed in <a href="https://android-review.googlesource.com/">Gerrit</a>. For more information,
see the <a href="{@docRoot}source/using-repo.html">Repo reference</a>.</p>
<h2 id="how-do-i-become-a-verifier-or-approver">How do I become a Verifier or Approver?</h2>
<p>In short, contribute high-quality code to one or more of the Android projects.
For details about the different roles in the Android Open Source community and
who plays them, see <a href="{@docRoot}source/roles.html">Project Roles</a>.</p>
<h2 id="diffs-and-comments">Diffs and comments</h2>
<p>To open the details of the change within Gerrit, click on the "Id number" or "Subject" of a change. To compare the established code with the updated code, click the file name under "Side-by-side diffs."</p>
<h2 id="adding-comments">Adding comments</h2>
<p>Anyone in the community can use Gerrit to add inline comments to code submissions. A good comment will be relevant to the line or section of code to which it is attached in Gerrit. It might be a short and constructive suggestion about how a line of code could be improved, or it might be an explanation from the author about why the code makes sense the way it is.</p>
<p>To add an inline comment, double-click the relevant line of the code and write your comment in the text box that opens. When you click Save, only you can see your comment.</p>
<p>To publish your comments so that others using Gerrit will be able to see them, click the Publish Comments button. Your comments will be emailed to all relevant parties for this change, including the change owner, the patch set uploader (if different from the owner), and all current reviewers.</p>
<p><a name="upstream-projects"></a></p>
<h1 id="upstream-projects">Upstream Projects</h1>
<p>Android makes use of a number of other open source projects, such as the Linux kernel and WebKit, as described in
<a href="{@docRoot}source/code-lines.html">Codelines, Branches, and Releases</a>. For most projects under <code>external/</code>, changes should be made upstream and then the Android maintainers informed of the new upstream release containing these changes. It may also be useful to upload patches that move us to track a new upstream release, though these can be difficult changes to make if the project is widely used within Android like most of the larger ones mentioned below, where we tend to upgrade with every release.</p>
<p>One interesting special case is bionic. Much of the code there is from BSD, so unless the change is to code that's new to bionic, we'd much rather see an upstream fix and then pull a whole new file from the appropriate BSD. (Sadly we have quite a mix of different BSDs at the moment, but we hope to address that in future, and get into a position where we track upstream much more closely.)</p>
<h2 id="icu4c">ICU4C</h2>
<p>All changes to the ICU4C project at <code>external/icu4c</code> should be made upstream at
<a href="http://site.icu-project.org/">icu-project.org/</a>.
See <a href="http://site.icu-project.org/bugs">Submitting ICU Bugs and Feature Requests</a> for more.</p>

<h2 id="llvmclangcompiler-rt">LLVM/Clang/Compiler-rt</h2>
<p>All changes to LLVM-related projects (<code>external/clang</code>, <code>external/compiler-rt</code>,
<code>external/llvm</code>) should be made upstream at
<a href="http://llvm.org/">llvm.org/</a>.</p>

<h2 id="mksh">mksh</h2>
<p>All changes to the MirBSD Korn Shell project at <code>external/mksh</code> should be made upstream
either by sending an email to miros-mksh on the mirbsd.org domain (no subscription
required to submit there) or (optionally) at <a href="https://launchpad.net/mksh">Launchpad</a>.
</p>
<h2 id="openssl">OpenSSL</h2>
<p>All changes to the OpenSSL project at <code>external/openssl</code> should be made upstream at
<a href="http://www.openssl.org">openssl.org</a>.</p>
<h2 id="v8">V8</h2>
<p>All changes to the V8 project at <code>external/v8</code> should be submitted upstream at
<a href="https://code.google.com/p/v8">code.google.com/p/v8</a>. See <a href="https://code.google.com/p/v8/wiki/Contributing">Contributing to V8</a>
for details.</p>
<h2 id="webkit">WebKit</h2>
<p>All changes to the WebKit project at <code>external/webkit</code> should be made
upstream at <a href="http://www.webkit.org">webkit.org</a>. The process begins by filing a WebKit bug. 
This bug should use <code>Android</code> for the <code>Platform</code> and <code>OS</code> 
fields only if the bug is specific to Android. Bugs are far more likely to receive the reviewers'
attention once a proposed fix is added and tests are included. See
<a href="http://webkit.org/coding/contributing.html">Contributing Code to WebKit</a> for details.</p>
<h2 id="zlib">zlib</h2>
<p>All changes to the zlib project at <code>external/zlib</code> should be made upstream at
<a href="http://zlib.net">zlib.net</a>.</p>
