Skip to content

Commit f267050

Browse files
Some updates and restructuring of the 'Triaging an issue'
1 parent 4bcdd6b commit f267050

2 files changed

Lines changed: 69 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: 68 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -4,25 +4,51 @@
44
Triaging an issue
55
=================
66

7-
This section of the devguide documents the :ref:`issue tracker <tracker>` for
8-
users and developers.
7+
This section of the devguide documents triaging issues on the :ref:`issue tracker
8+
<tracker>`.
9+
10+
Around the clock, new issues are being opened and existing ones are being
11+
updated. Every issue needs to be triaged to make sure everything runs smoothly.
912

1013

1114
Checklist for triaging
1215
======================
1316

1417
* Read the initial message and the comments.
18+
* :ref:`Search the tracker <searching-gh-issues>` to check that the issue
19+
isn't a duplicate. If it is, use GitHub's :guilabel:`Close as duplicate`
20+
option and select the issue it duplicates.
1521
* Check that the title is reasonably concise, while including enough specifics
1622
so that those scanning the list of issues can quickly identify its topic.
1723
* For pull requests, ensure that the corresponding issue is added before
1824
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.
25+
* Set all the relevant :ref:`labels <triage-labels>`.
26+
* Where appropriate, set the :guilabel:`Assignees`, :guilabel:`Reviewers`, and
27+
:guilabel:`Project` :ref:`fields <triage-fields>`, and possibly @mention
28+
relevant people.
2229
* You might also leave a brief comment about the proposed next action needed.
2330
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.
31+
* If the issue is clearly invalid (unrelated to CPython, spam, and
32+
so on), you can use GitHub's :guilabel:`Close as not planned` option
33+
and apply the :gh-label:`invalid` label.
34+
35+
36+
.. _triage-fields:
37+
38+
Issue fields
39+
============
40+
41+
These fields can be set in the sidebar of issues and pull requests.
42+
43+
44+
.. _triage-labels:
45+
46+
Labels
47+
------
48+
49+
Labels are the main way of categorizing issues and automating certain actions on
50+
pull requests. Set all that apply. See :ref:`gh-labels` for more information.
51+
2652

2753
Assignees
2854
---------
@@ -35,11 +61,33 @@ forward without their help; for example, they need to make a technical decision
3561
how to proceed. Also consult the :ref:`experts` as certain
3662
stdlib modules should always be assigned to a specific person.
3763

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

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.
67+
68+
Reviewers
69+
---------
70+
71+
This field is used to request a review from specific people.
72+
73+
In most cases there is nothing to do, as the maintainers listed in the
74+
:cpy-file:`.github/CODEOWNERS` file are automatically requested to review
75+
pull requests touching the files they maintain. Otherwise, consult the
76+
:ref:`experts` to find someone with a working knowledge of the affected area
77+
or platform.
78+
79+
If the person you have in mind doesn't show up in the :guilabel:`Reviewers`
80+
dropdown (usually because they don't have the required permissions in the
81+
repository), @mention them in a comment instead.
82+
83+
84+
Project
85+
-------
86+
87+
`GitHub projects <https://github.com/orgs/python/projects>`__ are used to track
88+
work on a specific module, platform, or interest area across issues and pull
89+
requests. Add all the relevant ones. Note that several are added automatically
90+
when the corresponding :ref:`label <gh-labels>` is added.
4391

4492

4593
.. _helptriage:
@@ -52,9 +100,6 @@ structured and you are comfortable with the workflow, a great way to
52100
contribute is to help triage issues. Do realize, though, that experience
53101
working on Python is needed in order to effectively help triage.
54102

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

59104
Classifying reports
60105
-------------------
@@ -63,23 +108,24 @@ For bugs, an issue needs to:
63108

64109
* clearly explain the bug so it can be reproduced
65110
* include all relevant platform details
66-
* state what version(s) of Python are affected by the bug.
111+
* state what versions of Python are affected by the bug.
67112

68113
These are things you can help with once you have experience developing for
69114
Python:
70115

71116
* 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.
117+
enough for you to reproduce it, then there is a good chance a core team
118+
member won't be able to either.
74119
* See if the issue happens on a different Python version: it is always helpful
75120
to know if a bug not only affects the in-development version of Python, but
76121
whether it also affects other versions in maintenance mode.
77122
* Write a unit test: if the bug lacks a unit test that should end up in
78123
Python's test suite, having that written can be very helpful.
79124

80125
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.
126+
to properly classify an issue so it can be handled by the right core team
127+
members in a timely fashion.
128+
83129

84130
Reviewing pull requests
85131
-----------------------
@@ -88,19 +134,20 @@ If an issue has a linked pull request that has not been reviewed,
88134
you can help by making sure the pull request:
89135

90136
* 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.)
137+
* follows the style guides (for example, :pep:`7`, :pep:`8`, and :ref:`style-guide`)
92138
* includes proper tests
93139
* includes proper documentation changes
94140
* includes a :ref:`NEWS entry <news-entry>` (if needed)
95141
* doesn't have conflicts with the ``main`` branch
96142
* :ref:`doesn't have failing CI checks <keeping-ci-green>`
97143

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

102148
See also :ref:`committing`.
103149

150+
104151
Finding an issue you can help with
105152
----------------------------------
106153

0 commit comments

Comments
 (0)