Skip to content

Commit f3e2294

Browse files
committed
Update the Bug Life Cycle docs for the switch to GitHub issues
This updates the Bug Life Cycle docs now that we've switched to GitHub issues. The intent is to retain the same general process we used to use for triaging bugs under Bugzilla, but with the facilities we have available in GitHub.
1 parent 2ebf326 commit f3e2294

File tree

1 file changed

+67
-58
lines changed

1 file changed

+67
-58
lines changed

llvm/docs/BugLifeCycle.rst

Lines changed: 67 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,10 @@ consistency helps reporters, developers and others to gain a better
1616
understanding of what a particular bug state actually means and what to expect
1717
might happen next.
1818

19-
At the same time, we aim to not over-specify the life cycle of bugs in the
20-
`the LLVM Bug Tracking System <https://bugs.llvm.org/enter_bug.cgi>`_, as the
21-
overall goal is to make it easier to work with and understand the bug reports.
19+
At the same time, we aim to not over-specify the life cycle of bugs in
20+
`the LLVM Bug Tracking System <https://github.com/llvm/llvm-project/issues>`_,
21+
as the overall goal is to make it easier to work with and understand the bug
22+
reports.
2223

2324
The main parts of the life cycle documented here are:
2425

@@ -27,12 +28,10 @@ The main parts of the life cycle documented here are:
2728
#. `Actively working on fixing`_
2829
#. `Closing`_
2930

30-
Furthermore, some of the metadata in the bug tracker, such as who to notify on
31-
newly reported bugs or what the breakdown into products & components is we use,
32-
needs to be maintained. See the following for details:
31+
Furthermore, some of the metadata in the bug tracker, such as what labels we
32+
use, needs to be maintained. See the following for details:
3333

34-
#. `Maintenance of Bug products/component metadata`_
35-
#. `Maintenance of cc-by-default settings`_
34+
#. `Maintenance of metadata`_
3635

3736

3837
.. _Reporting:
@@ -42,48 +41,56 @@ Reporting bugs
4241

4342
See :doc:`HowToSubmitABug` on further details on how to submit good bug reports.
4443

45-
Make sure that you have one or more people on cc on the bug report that you
46-
think will react to it. We aim to automatically add specific people on cc for
47-
most products/components, but may not always succeed in doing so.
48-
49-
If you know the area of LLVM code the root cause of the bug is in, good
50-
candidates to add as cc may be the same people you'd ask for a code review in
51-
that area. See :ref:`finding-potential-reviewers` for more details.
52-
44+
You can apply `labels <https://docs.github.com/en/issues/using-labels-and-milestones-to-track-work/managing-labels>`_
45+
to the bug to provide extra information to make the bug easier to discover, such
46+
as a label for the part of the project the bug pertains to.
5347

5448
.. _Triaging:
5549

5650
Triaging bugs
5751
=============
5852

59-
Bugs with status NEW indicate that they still need to be triaged.
60-
When triage is complete, the status of the bug is moved to CONFIRMED.
53+
Open bugs that have not been marked with the ``confirmed`` label are bugs that
54+
still need to be triaged. When triage is complete, the ``confirmed`` label
55+
should be added along with any other labels that help to classify the report,
56+
unless the issue is being :ref:`closed<Closing>`.
6157

6258
The goal of triaging a bug is to make sure a newly reported bug ends up in a
63-
good, actionable, state. Try to answer the following questions while triaging.
59+
good, actionable state. Try to answer the following questions while triaging:
6460

6561
* Is the reported behavior actually wrong?
6662

6763
* E.g. does a miscompile example depend on undefined behavior?
6864

69-
* Can you easily reproduce the bug?
65+
* Can you reproduce the bug from the details in the report?
7066

71-
* If not, are there reasonable excuses why it cannot easily be reproduced?
67+
* If not, is there a reasonable explanation why it cannot be reproduced?
7268

7369
* Is it related to an already reported bug?
7470

75-
* Use the "See also"/"depends on"/"blocks" fields if so.
76-
* Close it as a duplicate if so, pointing to the issue it duplicates.
77-
7871
* Are the following fields filled in correctly?
7972

80-
* Product
81-
* Component
8273
* Title
74+
* Description
75+
* Labels
76+
77+
* When able to do so, please add the appropriate labels to classify the bug,
78+
such as the tool (``clang``, ``clang-format``, ``clang-tidy``, etc) or
79+
component (``backend:<name>``, ``compiler-rt:<name>``, ``clang:<name>``, etc).
80+
81+
* If the issue is with a particular revision of the C or C++ standard, please
82+
add the appropriate language standard label (``c++20``, ``c99``, etc).
8383

84-
* CC others not already cc’ed that you happen to know would be good to pull in.
85-
* Add the "beginner" keyword if you think this would be a good bug to be fixed
86-
by someone new to LLVM.
84+
* Please don't use both a general and a specific label. For example, bugs
85+
labeled ``c++17`` shouldn't also have ``c++``, and bugs labeled
86+
``clang:codegen`` shouldn't also have ``clang``.
87+
88+
* Add the ``good first issue`` label if you think this would be a good bug to
89+
be fixed by someone new to LLVM. This label feeds into `the landing page
90+
for new contributors <https://github.com/llvm/llvm-project/contribute>`_.
91+
92+
* If you are unsure of what a label is intended to be used for, please see the
93+
`documentation for our labels <https://github.com/llvm/llvm-project/labels>`_.
8794

8895
.. _Actively working on fixing:
8996

@@ -92,49 +99,51 @@ Actively working on fixing bugs
9299

93100
Please remember to assign the bug to yourself if you're actively working on
94101
fixing it and to unassign it when you're no longer actively working on it. You
95-
unassign a bug by setting the Assignee field to "unassignedbugs@nondot.org".
102+
unassign a bug by removing the person from the the ``Assignees`` field.
96103

97104
.. _Closing:
98105

99106
Resolving/Closing bugs
100107
======================
101108

102-
For simplicity, we only have 1 status for all resolved or closed bugs:
103-
RESOLVED.
104-
105109
Resolving bugs is good! Make sure to properly record the reason for resolving.
106110
Examples of reasons for resolving are:
107111

108-
* Revision NNNNNN fixed the bug.
109-
* The bug cannot be reproduced with revision NNNNNN.
110-
* The circumstances for the bug don't apply anymore.
111-
* There is a sound reason for not fixing it (WONTFIX).
112-
* There is a specific and plausible reason to think that a given bug is
113-
otherwise inapplicable or obsolete.
114-
115-
* One example is an old open bug that doesn't contain enough information to
116-
clearly understand the problem being reported (e.g. not reproducible). It is
117-
fine to resolve such a bug e.g. with resolution WORKSFORME and leaving a
118-
comment to encourage the reporter to reopen the bug with more information
119-
if it's still reproducible on their end.
120-
121-
If a bug is resolved, please fill in the revision number it was fixed in in the
122-
"Fixed by Commit(s)" field.
112+
* If the issue has been resolved by a particular commit, close the issue with
113+
a brief comment mentioning which commit(s) fixed it. If you are authoring
114+
the fix yourself, your git commit message may include the phrase
115+
``Fixes #<issue number>`` on a line by itself. GitHub recognizes such commit
116+
messages and will automatically close the specified issue with a reference
117+
to your commit.
123118

119+
* If the reported behavior is not a bug, it is appropriate to close the issue
120+
with a comment explaining why you believe it is not a bug, and adding the
121+
``invalid`` tag.
124122

125-
.. _Maintenance of Bug products/component metadata:
123+
* If the bug duplicates another issue, close it as a duplicate by adding the
124+
``duplicate`` label with a comment pointing to the issue it duplicates.
126125

127-
Maintenance of products/components metadata
128-
===========================================
126+
* If there is a sound reason for not fixing the issue (difficulty, ABI, open
127+
research questions, etc), add the ``wontfix`` label and a comment explaining
128+
why no changes are expected.
129129

130-
Please raise a bug against "Bugzilla Admin"/"Products" to request any changes
131-
to be made to the breakdown of products & components modeled in Bugzilla.
130+
* If there is a specific and plausible reason to think that a given bug is
131+
otherwise inapplicable or obsolete. One example is an open bug that doesn't
132+
contain enough information to clearly understand the problem being reported
133+
(e.g. not reproducible). It is fine to close such a bug, adding with the
134+
``worksforme`` label and leaving a comment to encourage the reporter to
135+
reopen the bug with more information if it's still reproducible for them.
132136

133137

134-
.. _Maintenance of cc-by-default settings:
138+
.. _Maintenance of metadata:
135139

136-
Maintenance of cc-by-default settings
137-
=====================================
140+
Maintenance of metadata
141+
=======================
138142

139-
Please raise a bug against "Bugzilla Admin"/"Products" to request any changes
140-
to be made to the cc-by-default settings for specific components.
143+
Project member with write access to the project can create new labels, but we
144+
discourage adding ad hoc labels because we want to control the proliferation of
145+
labels and avoid single-use labels. If you would like a new label added, please
146+
open an issue asking to create an issue label and add the ``infrastructure``
147+
label to the issue. The request should include a description of what the label
148+
is for. Alternatively, you can ask for the label to be created on the
149+
``#infrastructure`` channel on the LLVM Discord.

0 commit comments

Comments
 (0)