Home | History | Annotate | Download | only in source
      1 <html devsite>
      2   <head>
      3     <title>Life of a Bug</title>
      4     <meta name="project_path" value="/_project.yaml" />
      5     <meta name="book_path" value="/_book.yaml" />
      6   </head>
      7   <body>
      8   <!--
      9       Copyright 2017 The Android Open Source Project
     10 
     11       Licensed under the Apache License, Version 2.0 (the "License");
     12       you may not use this file except in compliance with the License.
     13       You may obtain a copy of the License at
     14 
     15           http://www.apache.org/licenses/LICENSE-2.0
     16 
     17       Unless required by applicable law or agreed to in writing, software
     18       distributed under the License is distributed on an "AS IS" BASIS,
     19       WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     20       See the License for the specific language governing permissions and
     21       limitations under the License.
     22   -->
     23 
     24 
     25 <p>The Android Open Source Project maintains a public issue tracker where you
     26 can report bugs and request features for the core Android software stack.
     27 (For details on this issue tracker, please see the
     28 <a href="report-bugs.html">Reporting Bugs</a> page).
     29 Reporting bugs is great (thank you!), but what happens to a bug report once
     30 you file it? This page describes the life of a bug.</p>
     31 
     32 <p class="note">The Android Open Source Project (AOSP) issue tracker is
     33 intended only for bugs and feature requests related to the core Android
     34 software stack, and is a technical tool for the Open Source community.</p>
     35 
     36 <p>This is not a customer support forum. For support information, see the
     37 <a href="https://support.google.com/nexus">Nexus</a> and 
     38 <a href="https://support.google.com/pixelphone">Pixel</a> help centers.
     39 Support for other devices is provided by the device manufacturers or by the
     40 carriers selling those devices.</p>
     41 
     42 <p>Support for Google applications is through
     43 <a href="http://support.google.com/">Google's support site</a>. Support
     44 for third-party applications is with each application's developer, e.g.
     45 through the contact information provided on Google Play.</p>
     46 
     47 <p>Here's the life of a bug, in a nutshell:</p>
     48 <ol>
     49 <li>A bug is filed, and has the state "New".</li>
     50 <li>An AOSP maintainer periodically reviews and triages bugs. Bugs are
     51 triaged into one of four <em>buckets</em>: New, Open, No-Action, or Resolved.</li>
     52 <li>Each bucket includes a number of states that provide more detail on the
     53 fate of the issue.</li>
     54 <li>Bugs marked as "Resolved" will eventually be included in a future
     55 release of the Android software.</li>
     56 </ol>
     57 </ul>
     58 
     59 <h2 id="bucket-details">Bucket details</h2>
     60 <p>
     61 We use the <strong>Status</strong> field in Issue Tracker to specify the status
     62 of an issue in the resolution process. This is consistent with the definitions
     63 specified in the <a
     64     href="https://developers.google.com/issue-tracker/concepts/issues#status">Issue
     65     Tracker documentation</a>.
     66 </p>
     67 <h3 id="new-issues">New issues</h3>
     68 <p>
     69 New issues include bug reports that are not yet being acted upon. The two states
     70 are:
     71 </p>
     72 <ul>
     73  <li><strong>New:</strong> The bug report has not yet been triaged (that is,
     74  reviewed by an AOSP maintainer.)</li>
     75  <li><strong>New + Hotlist:NeedsInfo:</strong> The bug report has insufficient
     76  information to act upon. The person who reported the bug needs to provide
     77  additional detail before it can be triaged. If enough time passes and no new
     78  information is provided, the bug may be closed by default, as one of the
     79  No-Action states.</li>
     80 </ul>
     81 <h3 id="open-issues">Open issues</h3>
     82 <p>
     83 This bucket contains bugs that need action, but which are still unresolved,
     84 pending a change to the source code.
     85 </p>
     86 <ul>
     87  <li><strong>Assigned:</strong> The bug report has been recognized as an
     88  adequately detailed report of a legitimate issue and the bug has been assigned
     89  to a specific contributor to assess and analyze.</li>
     90  <li><strong>Accepted:</strong> The assignee has acknowledged the issue and has
     91  started to work on it.</li>
     92 </ul>
     93 <p>
     94 Typically, a bug starts in <strong>Assigned</strong>, and remains there until
     95 someone intends to resolve it, at which point it enters
     96 <strong>Accepted</strong>. However, note that this isn't a guarantee, and it's
     97 not uncommon for bugs to go from <strong>Assigned</strong> to one of the
     98 Resolved states.
     99 </p>
    100 <p>
    101 In general, if a bug is in one of these Open states, the AOSP team has
    102 recognized it as a legitimate issue, and a high-quality contribution fixing that
    103 bug is likely to get accepted. However, it's impossible to guarantee a fix in
    104 time for any particular release.
    105 </p>
    106 <h3 id="no-action-issues">No-Action issues</h3>
    107 <p>
    108 This bucket contains bugs that are deemed to not require any action.
    109 </p>
    110 <ul>
    111  <li><strong>Won't Fix (Not reproducible):</strong> An AOSP contributor attempted
    112  to reproduce the behavior described, and was unable to do so. This sometimes
    113  means that the bug is legitimate but simply rare or difficult to reproduce, or
    114  there was not enough information to fix the issue.</li>
    115  <li><strong>Won't Fix (Intended behavior):</strong> An AOSP maintainer has
    116  determined that the behavior described isn't a bug, but is the intended
    117  behavior. This state is also commonly referred to as <em>working as
    118  intended</em> (WAI). For feature requests, an AOSP maintainer has determined
    119  that the request is not going to be implemented in Android.</li>
    120  <li><strong>Won't Fix (Obsolete):</strong> The issue is no longer relevant due
    121  to changes in the product.</li>
    122  <li><strong>Won't Fix (Infeasible):</strong> The changes that are needed to
    123  address the issue are not reasonably possible. This status is also used for
    124  issues reported that cannot be handled in AOSP, typically because it is related
    125  to a customized device or to an external application, or the reporter mistook
    126  this tracker as a help forum.</li>
    127  <li><strong>Duplicate:</strong> There was already an identical report in the
    128  issue tracker. Any actual action will be reported on that report.</li>
    129 </ul>
    130 <h3 id="resolved-issues">Resolved issues</h3>
    131 <p>
    132 This bucket contains bugs that have had action taken, and are now considered
    133 resolved.
    134 </p>
    135 <ul>
    136  <li><strong>Fixed (verified):</strong> This bug has been fixed, and is included
    137  in a formal release. When this state is set, we try to also set a property
    138  indicating which release it was fixed in.</li>
    139  <li><strong>Fixed:</strong> This bug has been fixed (or feature implemented) in
    140  a source tree, but might not yet been included in a formal release.</li>
    141 </ul>
    142 <h2 id="other-stuff">Other stuff</h2>
    143 <p>
    144 The states and lifecycle above are how we generally try to track software.
    145 However, Android contains a lot of software and gets a correspondingly large
    146 number of bugs. As a result, sometimes bugs don't make it through all the
    147 states in a formal progression. We do try to keep the system up to date, but
    148 we tend to do so in periodic "bug sweeps" where we review the database and
    149 make updates.</p>
    150   </body>
    151 </html>
    152