|  | =================== | 
|  | 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. |