Skip to content

Commit 54bb595

Browse files
Updates and restructuring of the 'Triaging an issue' (#1878)
Co-authored-by: Ezio Melotti <ezio.melotti@gmail.com>
1 parent 4bcdd6b commit 54bb595

2 files changed

Lines changed: 66 additions & 21 deletions

File tree

triage/labels.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -121,6 +121,7 @@ Other labels
121121
* :gh-label:`easy`: for issues that are considered easy.
122122
* :gh-label:`infra`: for issues related to the infrastructure of the
123123
project (for example, GitHub Actions, dependabot, the buildbots).
124+
* :gh-label:`invalid`: for marking spam issues/PRs.
124125
* :gh-label:`pending`: for issues/PRs that will be closed unless further
125126
feedback is provided.
126127
* :gh-label:`release-blocker`/:gh-label:`deferred-blocker`: for issues/PRs

triage/triaging.rst

Lines changed: 65 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -4,25 +4,48 @@
44
Triaging an issue
55
=================
66

7-
This section of the devguide documents the :ref:`issue tracker <tracker>` for
8-
users and developers.
7+
Every issue on the :ref:`issue tracker <tracker>` needs to be triaged to make
8+
sure everything runs smoothly. This section covers what that involves.
99

1010

1111
Checklist for triaging
1212
======================
1313

1414
* Read the initial message and the comments.
15+
* :ref:`Search the tracker <searching-gh-issues>` to check that the issue
16+
isn't a duplicate. If it is, use GitHub's :guilabel:`Close as duplicate`
17+
option and select the issue it duplicates.
1518
* Check that the title is reasonably concise, while including enough specifics
1619
so that those scanning the list of issues can quickly identify its topic.
1720
* For pull requests, ensure that the corresponding issue is added before
1821
the title (:samp:`gh-NNNNN: {Title}`).
19-
* Set all the relevant :ref:`labels <gh-labels>`.
20-
* Where appropriate, set the :guilabel:`Assignees`, :guilabel:`Reviewers`,
21-
:guilabel:`Project` fields, and possibly @mention relevant people.
22+
* Set all the relevant :ref:`labels <triage-labels>`.
23+
* Where appropriate, set the :guilabel:`Assignees`, :guilabel:`Reviewers`, and
24+
:guilabel:`Project` :ref:`fields <triage-fields>`, and possibly @mention
25+
relevant people.
2226
* You might also leave a brief comment about the proposed next action needed.
2327
If there is a long message list, a summary can be very helpful.
24-
* If the issue is clearly invalid (unrelated to CPython, duplicate, spam, and
25-
so on), you can use GitHub's "Close as not planned" option.
28+
* If the issue is clearly invalid (unrelated to CPython, spam, and
29+
so on), you can use GitHub's :guilabel:`Close as not planned` option
30+
and apply the :gh-label:`invalid` label.
31+
32+
33+
.. _triage-fields:
34+
35+
Issue fields
36+
============
37+
38+
These fields can be set in the sidebar of issues and pull requests.
39+
40+
41+
.. _triage-labels:
42+
43+
Labels
44+
------
45+
46+
Labels are the main way of categorizing issues and automating certain actions on
47+
pull requests. Set all that apply. See :ref:`gh-labels` for more information.
48+
2649

2750
Assignees
2851
---------
@@ -35,11 +58,33 @@ forward without their help; for example, they need to make a technical decision
3558
how to proceed. Also consult the :ref:`experts` as certain
3659
stdlib modules should always be assigned to a specific person.
3760

38-
Note that in order to assign an issue to someone, that person **must** be
61+
Note that in order to assign an issue to someone, that person **must**
3962
have at least triage permissions in the repository.
4063

41-
.. The Assignees subsection was copied from the labels.rst page in #930.
42-
For consistency, the other fields mentioned above should be documented too.
64+
65+
Reviewers
66+
---------
67+
68+
This field is used to request a review from specific people.
69+
70+
In most cases there is nothing to do, as the maintainers listed in the
71+
:cpy-file:`.github/CODEOWNERS` file are automatically requested to review
72+
pull requests touching the files they maintain. Otherwise, consult the
73+
:ref:`experts` to find someone with a working knowledge of the affected area
74+
or platform.
75+
76+
If the person you have in mind doesn't show up in the :guilabel:`Reviewers`
77+
dropdown (usually because they don't have the required permissions in the
78+
repository), @mention them in a comment instead.
79+
80+
81+
Project
82+
-------
83+
84+
`GitHub projects <https://github.com/orgs/python/projects>`__ are used to track
85+
work on a specific module, platform, or interest area across issues and pull
86+
requests. Add all the relevant ones. Note that several are added automatically
87+
when the corresponding :ref:`label <gh-labels>` is added.
4388

4489

4590
.. _helptriage:
@@ -52,9 +97,6 @@ structured and you are comfortable with the workflow, a great way to
5297
contribute is to help triage issues. Do realize, though, that experience
5398
working on Python is needed in order to effectively help triage.
5499

55-
Around the clock, new issues are being opened on the :ref:`issue tracker
56-
<tracker>` and existing issues are being updated. Every issue needs to be
57-
triaged to make sure everything runs smoothly.
58100

59101
Classifying reports
60102
-------------------
@@ -63,23 +105,24 @@ For bugs, an issue needs to:
63105

64106
* clearly explain the bug so it can be reproduced
65107
* include all relevant platform details
66-
* state what version(s) of Python are affected by the bug.
108+
* state what versions of Python are affected by the bug.
67109

68110
These are things you can help with once you have experience developing for
69111
Python:
70112

71113
* Try reproducing the bug: if it is not explained clearly
72-
enough for you to reproduce it, then there is a good chance a core developer
73-
won't be able to either.
114+
enough for you to reproduce it, then there is a good chance a core team
115+
member won't be able to either.
74116
* See if the issue happens on a different Python version: it is always helpful
75117
to know if a bug not only affects the in-development version of Python, but
76118
whether it also affects other versions in maintenance mode.
77119
* Write a unit test: if the bug lacks a unit test that should end up in
78120
Python's test suite, having that written can be very helpful.
79121

80122
This is all helpful as it allows members of the :ref:`triage team <triage-team>`
81-
to properly classify an issue so it can be handled by the right core developers
82-
in a timely fashion.
123+
to properly classify an issue so it can be handled by the right core team
124+
members in a timely fashion.
125+
83126

84127
Reviewing pull requests
85128
-----------------------
@@ -88,19 +131,20 @@ If an issue has a linked pull request that has not been reviewed,
88131
you can help by making sure the pull request:
89132

90133
* is a good solution to the problem it is trying to solve
91-
* follows the style guides (:pep:`7`, :pep:`8`, :ref:`style-guide`, etc.)
134+
* follows the style guides (for example, :pep:`7`, :pep:`8`, and :ref:`style-guide`)
92135
* includes proper tests
93136
* includes proper documentation changes
94137
* includes a :ref:`NEWS entry <news-entry>` (if needed)
95138
* doesn't have conflicts with the ``main`` branch
96139
* :ref:`doesn't have failing CI checks <keeping-ci-green>`
97140

98-
Doing all of this allows core developers and :ref:`triagers <triage-team>`
141+
Doing all of this allows core team members and :ref:`triagers <triage-team>`
99142
to more quickly look for subtle issues that only people with extensive
100-
experience working on Python's code base will notice.
143+
experience working on Python's codebase will notice.
101144

102145
See also :ref:`committing`.
103146

147+
104148
Finding an issue you can help with
105149
----------------------------------
106150

0 commit comments

Comments
 (0)