| =================== | 
 | LLVM Bug Life Cycle | 
 | =================== | 
 |  | 
 | .. contents:: | 
 |    :local: | 
 |  | 
 |  | 
 |  | 
 | Introduction - Achieving consistency in how we deal with bug reports | 
 | ==================================================================== | 
 |  | 
 | We aim to achieve a basic level of consistency in how reported bugs evolve from | 
 | being reported, to being worked on, and finally getting closed out. The | 
 | consistency helps reporters, developers and others to gain a better | 
 | understanding of what a particular bug state actually means and what to expect | 
 | might happen next. | 
 |  | 
 | At the same time, we aim to not over-specify the life cycle of bugs in the | 
 | `the LLVM Bug Tracking System <https://bugs.llvm.org/enter_bug.cgi>`_, as the | 
 | overall goal is to make it easier to work with and understand the bug reports. | 
 |  | 
 | The main parts of the life cycle documented here are: | 
 |  | 
 | #. `Reporting`_ | 
 | #. `Triaging`_ | 
 | #. `Actively working on fixing`_ | 
 | #. `Closing`_ | 
 |  | 
 | Furthermore, some of the metadata in the bug tracker, such as who to notify on | 
 | newly reported bugs or what the breakdown into products & components is we use, | 
 | needs to be maintained. See the following for details: | 
 |  | 
 | #. `Maintenance of Bug products/component metadata`_ | 
 | #. `Maintenance of cc-by-default settings`_ | 
 |  | 
 |  | 
 | .. _Reporting: | 
 |  | 
 | Reporting bugs | 
 | ============== | 
 |  | 
 | See :doc:`HowToSubmitABug` on further details on how to submit good bug reports. | 
 |  | 
 | Make sure that you have one or more people on cc on the bug report that you | 
 | think will react to it. We aim to automatically add specific people on cc for | 
 | most products/components, but may not always succeed in doing so. | 
 |  | 
 | If you know the area of LLVM code the root cause of the bug is in, good | 
 | candidates to add as cc may be the same people you'd ask for a code review in | 
 | that area. See :ref:`finding-potential-reviewers` for more details. | 
 |  | 
 |  | 
 | .. _Triaging: | 
 |  | 
 | Triaging bugs | 
 | ============= | 
 |  | 
 | Bugs with status NEW indicate that they still need to be triaged. | 
 | When triage is complete, the status of the bug is moved to CONFIRMED. | 
 |  | 
 | The goal of triaging a bug is to make sure a newly reported bug ends up in a | 
 | good, actionable, state. Try to answer the following questions while triaging. | 
 |  | 
 | * Is the reported behavior actually wrong? | 
 |  | 
 |   * E.g. does a miscompile example depend on undefined behavior? | 
 |  | 
 | * Can you easily reproduce the bug? | 
 |  | 
 |   * If not, are there reasonable excuses why it cannot easily be reproduced? | 
 |  | 
 | * Is it related to an already reported bug? | 
 |  | 
 |   * Use the "See also"/"depends on"/"blocks" fields if so. | 
 |   * Close it as a duplicate if so, pointing to the issue it duplicates. | 
 |  | 
 | * Are the following fields filled in correctly? | 
 |  | 
 |   * Product | 
 |   * Component | 
 |   * Title | 
 |  | 
 | * CC others not already cc’ed that you happen to know would be good to pull in. | 
 | * Add the "beginner" keyword if you think this would be a good bug to be fixed | 
 |   by someone new to LLVM. | 
 |  | 
 | .. _Actively working on fixing: | 
 |  | 
 | Actively working on fixing bugs | 
 | =============================== | 
 |  | 
 | Please remember to assign the bug to yourself if you're actively working on | 
 | fixing it and to unassign it when you're no longer actively working on it.  You | 
 | unassign a bug by setting the Assignee field to "unassignedbugs@nondot.org". | 
 |  | 
 | .. _Closing: | 
 |  | 
 | Resolving/Closing bugs | 
 | ====================== | 
 |  | 
 | For simplicity, we only have 1 status for all resolved or closed bugs: | 
 | RESOLVED. | 
 |  | 
 | Resolving bugs is good! Make sure to properly record the reason for resolving. | 
 | Examples of reasons for resolving are: | 
 |  | 
 | * Revision NNNNNN fixed the bug. | 
 | * The bug cannot be reproduced with revision NNNNNN. | 
 | * The circumstances for the bug don't apply anymore. | 
 | * There is a sound reason for not fixing it (WONTFIX). | 
 | * There is a specific and plausible reason to think that a given bug is | 
 |   otherwise inapplicable or obsolete. | 
 |  | 
 |   * One example is an old open bug that doesn't contain enough information to | 
 |     clearly understand the problem being reported (e.g. not reproducible). It is | 
 |     fine to resolve such a bug e.g. with resolution WORKSFORME and leaving a | 
 |     comment to encourage the reporter to reopen the bug with more information | 
 |     if it's still reproducable on their end. | 
 |  | 
 | If a bug is resolved, please fill in the revision number it was fixed in in the | 
 | "Fixed by Commit(s)" field. | 
 |  | 
 |  | 
 | .. _Maintenance of Bug products/component metadata: | 
 |  | 
 | Maintenance of products/components metadata | 
 | =========================================== | 
 |  | 
 | Please raise a bug against "Bugzilla Admin"/"Products" to request any changes | 
 | to be made to the breakdown of products & components modeled in Bugzilla. | 
 |  | 
 |  | 
 | .. _Maintenance of cc-by-default settings: | 
 |  | 
 | Maintenance of cc-by-default settings | 
 | ===================================== | 
 |  | 
 | Please raise a bug against "Bugzilla Admin"/"Products" to request any changes | 
 | to be made to the cc-by-default settings for specific components. |