44Triaging 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
1111Checklist 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
2750Assignees
2851---------
@@ -35,11 +58,33 @@ forward without their help; for example, they need to make a technical decision
3558how to proceed. Also consult the :ref: `experts ` as certain
3659stdlib 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 **
3962have 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
5297contribute is to help triage issues. Do realize, though, that experience
5398working 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
59101Classifying 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
68110These are things you can help with once you have experience developing for
69111Python:
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
80122This 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
84127Reviewing pull requests
85128-----------------------
@@ -88,19 +131,20 @@ If an issue has a linked pull request that has not been reviewed,
88131you 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 >`
99142to 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
102145See also :ref: `committing `.
103146
147+
104148Finding an issue you can help with
105149----------------------------------
106150
0 commit comments