44Triaging 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
1114Checklist 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
2753Assignees
2854---------
@@ -35,11 +61,33 @@ forward without their help; for example, they need to make a technical decision
3561how to proceed. Also consult the :ref: `experts ` as certain
3662stdlib 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 **
3965have 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
52100contribute is to help triage issues. Do realize, though, that experience
53101working 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
59104Classifying 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
68113These are things you can help with once you have experience developing for
69114Python:
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
80125This 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
84130Reviewing pull requests
85131-----------------------
@@ -88,19 +134,20 @@ If an issue has a linked pull request that has not been reviewed,
88134you 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 >`
99145to 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
102148See also :ref: `committing `.
103149
150+
104151Finding an issue you can help with
105152----------------------------------
106153
0 commit comments