Home | History | Annotate | Download | only in source
      1 page.title=Life of a Bug
      2 @jd:body
      3 
      4 <!--
      5     Copyright 2010 The Android Open Source Project
      6 
      7     Licensed under the Apache License, Version 2.0 (the "License");
      8     you may not use this file except in compliance with the License.
      9     You may obtain a copy of the License at
     10 
     11         http://www.apache.org/licenses/LICENSE-2.0
     12 
     13     Unless required by applicable law or agreed to in writing, software
     14     distributed under the License is distributed on an "AS IS" BASIS,
     15     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     16     See the License for the specific language governing permissions and
     17     limitations under the License.
     18 -->
     19 <div id="qv-wrapper">
     20   <div id="qv">
     21     <h2>In this document</h2>
     22     <ol id="auto-toc">
     23     </ol>
     24   </div>
     25 </div>
     26 <p>The Android Open Source Project maintains a public issue tracker where you
     27 can report bugs and request features for the core Android software stack.
     28 (For details on this issue tracker, please see the
     29 <a href="report-bugs.html">Reporting Bugs</a> page).
     30 Reporting bugs is great (thank you!), but what happens to a bug report once
     31 you file it? This page describes the Life of a Bug.</p>
     32 
     33 <p>*Please note: the Android Open Source Project (AOSP) issue tracker is
     34 intended only for bugs and feature requests related to the core Android
     35 software stack, and is a technical tool for the Open Source community.</p>
     36 
     37 <p>This is not a customer support forum.
     38 You can find support for Nexus devices on
     39 <a href="http://support.google.com/nexus">Google's Nexus support site</a>.
     40 Support for other devices is provided by the device manufacturers or by the
     41 carriers selling those devices.</p>
     42 
     43 <p>Support for Google applications is through
     44 <a href="http://support.google.com/">Google's support site</a>. Support
     45 for 3rd-party applications is with each application's developer, e.g.
     46 through the contact information provided on Google Play.</p>
     47 
     48 <p>Here's the life of a bug, in a nutshell:</p>
     49 <ol>
     50 <li>
     51 <p>A bug is filed, and has the state "New".</p>
     52 </li>
     53 <li>
     54 <p>An AOSP maintainer periodically reviews and triages bugs. Bugs are
     55 triaged into one of four "buckets": New, Open, No-Action, or Resolved.</p>
     56 </li>
     57 <li>
     58 <p>Each bucket includes a number of states that provide more detail on the
     59 fate of the issue.</p>
     60 </li>
     61 <li>
     62 <p>Bugs in the "Resolved" bucket will eventually be included in a future
     63 release of the Android software.</p>
     64 </li>
     65 </ol>
     66 <h1 id="bucket-details">Bucket Details</h1>
     67 <p>Here is some additional information on each bucket, what it means, and how
     68 it's handled.</p>
     69 <h2 id="new-issues">New Issues</h2>
     70 <p>New issues include bug reports that are not yet being acted upon. The two
     71 states are:</p>
     72 <ul>
     73 <li>
     74 <p><em>New:</em>
     75     The bug report has not yet been triaged (that is, reviewed by an AOSP maintainer.)</p>
     76 </li>
     77 <li>
     78 <p><em>NeedsInfo:</em>
     79     The bug report has insufficient information to act
     80 upon. The person who reported the bug needs to provide additional detail
     81 before it can be triaged. If enough time passes and no new information is
     82 provided, the bug may be closed by default, as one of the No-Action
     83 states.</p>
     84 </li>
     85 </ul>
     86 <h2 id="open-issues">Open Issues</h2>
     87 <p>This bucket contains bugs that need action, but which are still
     88 unresolved, pending a change to the source code.</p>
     89 <ul>
     90 <li>
     91 <p><em>Unassigned:</em>
     92     The bug report has been recognized as an adequately
     93 detailed report of a legitimate issue, but has not yet been assigned to an
     94 AOSP contributor to be fixed.</p>
     95 </li>
     96 <li>
     97 <p><em>Assigned:</em>
     98     Like <em>Unassigned</em>, but the bug has been
     99 actually assigned to a specific contributor to fix.</p>
    100 </li>
    101 </ul>
    102 <p>Typically, a given bug will start in <em>Unassigned</em>, where it
    103 will remain until someone intends to resolve it, at which
    104 point it will enter <em>Assigned</em>. However,
    105 note that this isn't a guarantee, and it's not uncommon for bugs to go from
    106 <em>Unassigned</em> to one of the Resolved states.</p>
    107 <p>In general, if a bug is in one of these Open states, the AOSP team has
    108 recognized it as a legitimate issue, and a high-quality contribution fixing
    109 that bug is likely to get accepted. However, it's impossible to guarantee a
    110 fix in time for any particular release.</p>
    111 
    112 <h2 id="no-action-issues">No-Action Issues</h2>
    113 <p>This bucket contains bugs that have for one reason or another been
    114 determined to not require any action.</p>
    115 <ul>
    116 <li>
    117 <p><em>Spam:</em> 
    118     A kind soul sent us some delicious pork products, that we,
    119 regrettably, do not want.</p>
    120 </li>
    121 <li>
    122 <p><em>Duplicate:</em>
    123     There was already an identical report in the issue tracker. Any actual
    124 action will be reported on that report.</p>
    125 </li>
    126 <li>
    127 <p><em>Unreproducible:</em>
    128     An AOSP contributor attempted to reproduce the
    129 behavior described, and was unable to do so. This sometimes means that the bug
    130 is legitimate but simply rare or difficult to reproduce, and sometimes means
    131 that the bug was fixed in a later release.</p>
    132 </li>
    133 <li>
    134 <p><em>Obsolete:</em>
    135     Similar to <em>Unreproducible,</em> but with a reasonable certainty
    136 that the bug did exist in the reported version but was already fixed in
    137 a later release.</p>
    138 </li>
    139 <li>
    140 <p><em>WorkingAsIntended:</em>
    141     An AOSP maintainer has determined that the
    142 behavior described isn't a bug, but is the intended behavior. This state is
    143 also commonly referred to as "WAI".</p>
    144 </li>
    145 <li>
    146 <p><em>Declined:</em>
    147     This is like <em>WorkingAsIntended</em>, except
    148 typically used for feature requests instead of bugs. That is, an AOSP
    149 maintainer has determined that the request is not going to be implemented in
    150 Android.</p>
    151 </li>
    152 <li>
    153 <p><em>NotEnoughInformation:</em>
    154     The report didn't have enough information to be able to take any action.</p>
    155 </li>
    156 <li>
    157 <p><em>UserError:</em>
    158     The report was the result of a user making a mistake while using Android,
    159 e.g. typing a wrong password and therefore not being able to connect to a
    160 server.</p>
    161 </li>
    162 <li>
    163 <p><em>WrongForum:</em>
    164     The report cannot be handled in AOSP, typically because it is related
    165 to a customized device or to an external application.</p>
    166 </li>
    167 <li>
    168 <p><em>Question:</em>
    169     Someone mistook the issue tracker for a help forum.</p>
    170 </li>
    171 </ul>
    172 <h2 id="resolved-issues">Resolved Issues</h2>
    173 <p>This bucket contains bugs that have had action taken, and are now
    174 considered resolved.</p>
    175 <ul>
    176 <li>
    177 <p><em>Released:</em>
    178     This bug has been fixed, and is included in a formal release.
    179 When this state is set, we try to also set a
    180 property indicating which release it was fixed in.</p>
    181 </li>
    182 <li>
    183 <p><em>FutureRelease:</em>
    184     This bug has been fixed (or feature implemented) in
    185 a source tree, but has not yet been included in a formal release.</p>
    186 </li>
    187 </ul>
    188 <h1 id="other-stuff">Other Stuff</h1>
    189 <p>The states and lifecycle above are how we generally try to track software.
    190 However, Android contains a lot of software and gets a correspondingly large
    191 number of bugs. As a result, sometimes bugs don't make it through all the
    192 states in a formal progression. We do try to keep the system up to date, but
    193 we tend to do so in periodic "bug sweeps" where we review the database and
    194 make updates.</p>
    195