1# Issue Lifecycle and Reporting Guidelines
2
3[TOC]
4
5This document provides an external-facing explanation of how to file a bug
6against a Jetpack library or infrastructure component and how to interpret the
7various statuses and priorities displayed in the issue tracker.
8
9## Issue tracker {#tracker}
10
11The public-facing issue tracker URL is
12[issuetracker.google.com](https://issuetracker.google.com).
13
14The top-level Jetpack component is
15[`Android Public Tracker > App Development > Jetpack (androidx)`](https://issuetracker.google.com/components/192731/manage#basic).
16**Do not** file bugs against the top-level component. Individual library
17components are organized by group and can be searched by entering the Maven
18group in the issue tracker's component field, e.g. `androidx.core`.
19
20Issues with tools, processes, or infrastructure should be reported under the
21[`Jetpack (androidx) > Infrastructure`](https://issuetracker.google.com/components/705292/manage#basic)
22component.
23
24## Reporting guidelines {#reporting}
25
26Issue Tracker isn't a developer support forum. For support information, consider
27[StackOverflow](http://stackoverflow.com).
28
29Support for Google apps is through
30[Google's support site](http://support.google.com/). Support for third-party
31apps is provided by the app's developer, for example through the contact
32information provided on Google Play.
33
341.  Search for your bug to see if anyone has already reported it. Don't forget
35    to search for all issues, not just open ones, as your issue might already
36    have been reported and closed. To help you find the most popular results,
37    sort the result by number of stars.
38
391.  If you find your issue and it's important to you, star it! The number of
40    stars on a bug helps us know which bugs are most important to fix.
41
421.  If no one has reported your bug, file the bug. First, browse for the correct
43    component -- typically this has a 1:1 correspondence with Maven group ID --
44    and fill out the provided template.
45
461.  Include as much information in the bug as you can, following the
47    instructions for the bug queue that you're targeting. A bug that simply says
48    something isn't working doesn't help much, and will probably be closed
49    without any action. The amount of detail that you provide, such as a minimal
50    sample project, log files, repro steps, and even a patch set, helps us
51    address your issue.
52
53## Status definitions {#status}
54
55| Status   | Description                                                       |
56| -------- | ----------------------------------------------------------------- |
57| New      | The default for public bugs. Waiting for someone to validate,     |
58:          : reproduce, or otherwise confirm that this is actionable. Bugs in  :
59:          : this state can be either Untriaged or Triaged. Untriaged state    :
60:          : refers to a status where an issue has been filed against our      :
61:          : team, but the team/person responsible for fixing the issue has    :
62:          : not looked at it yet. Triaged state refers to a status where an   :
63:          : issue filed against the team has been reviewed by the             :
64:          : team/person, and they have accurately updated the priority of the :
65:          : issue.                                                            :
66| Assigned | In this state, the issue is ready to be added to an iteration     |
67:          : with a level of certainty that it will be completed within the    :
68:          : upcoming team iteration. Issues here should be >=P3               :
69| Accepted | Actively being worked on by the assignee. Do not reassign.        |
70| Fixed    | Fixed in the development branch. Do not re-open unless the fix is |
71:          : reverted.                                                         :
72| WontFix  | Covers all the reasons we chose to close the issue without taking |
73:          : action (can't repro, working as intended, obsolete).              :
74
75## Priority criteria and SLOs {#priority}
76
77| Priority | Criteria                        | Resolution time                |
78| -------- | ------------------------------- | ------------------------------ |
79| P0       | This issue is preventing        | Less than 1 day. Don't go home |
80:          : someone from getting work done  : until this is fixed.           :
81:          : and doesn’t have a workaround.  :                                :
82:          : Examples include service        :                                :
83:          : outages, work-stopping issues,  :                                :
84:          : and build breakages             :                                :
85| P1       | This issue requires rapid       | Within the next 7 days         |
86:          : resolution, but can be dealt    :                                :
87:          : with on a slightly longer       :                                :
88:          : timeline than P0. Examples      :                                :
89:          : include issues that frequently  :                                :
90:          : hinder workflow, serious        :                                :
91:          : regressions, and ship-blocking  :                                :
92:          : issues                          :                                :
93| P2       | This issue is important to      | Within the next month          |
94:          : resolve and may block releases. :                                :
95:          : Examples include non-OKR        :                                :
96:          : feature requests and infrequent :                                :
97:          : workflow issues.                :                                :
98| P3       | This issue would be nice to     | Less than 365 days             |
99:          : resolve, but it's not going to  :                                :
100:          : block any releases. Examples    :                                :
101:          : include nice-to-have feature    :                                :
102:          : requests, bugs that only        :                                :
103:          : affects a small set of use      :                                :
104:          : cases, and occasional issues.   :                                :
105| P4       | Issue has not yet been          | N/A (must triage in under 14   |
106:          : prioritized.                    : days                           :
107
108## Issue lifecycle
109
1101.  When an issue is reported, it is set to `Assigned` status for default
111    assignee (typically the [library owner](/docs/owners.md))
112    with a priority of **P4**.
1131.  Once an issue has been triaged by the assignee, its priority will be raised
114    from **P4** according to severity.
1151.  The issue may still be reassigned at this point.
116    [Bug bounty](/docs/onboarding.md#bug-bounty) issues are
117    likely to change assignees.
1181.  A status of **Accepted** means the assignee is actively working on the
119    issue.
1201.  A status of **Fixed** means that the issue has been resolved in the
121    development branch. Please note that it may take some time for the fix to
122    propagate into various release channels (internal repositories, Google
123    Maven, etc.). **Do not** re-open an issue because the fix has not yet
124    propagated into a specific release channel. **Do not** re-open an issue that
125    has been fixed unless the fix was reverted or the exact reported issue is
126    still occurring.
1271.  A status of **WontFix** means that the issue cannot be resolved within a
128    year due to prioritization, staffing, etc. **Do not** re-open an issue that
129    has been marked as WontFix or file identical issues. Issues that are open to
130    reconsideration will be added to an internal hotlist and revisited when the
131    circumstances surrounding their closure have changed.
132