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