@@ -168,3 +168,244 @@ test-with-buildbots
168168 PRs with large code changes requiring more testing before merging. This
169169 may take multiple hours to complete. Triagers can also stop a stuck build
170170 using the web interface.
171+
172+
173+ .. _github-pr-labels :
174+
175+ GitHub Labels for PRs
176+ ---------------------
177+
178+ An important component of triaging PRs for the CPython repo involves
179+ appropriately categorizing them through the usage of labels. For this
180+ purpose we're using :ref: `gh-labels `.
181+
182+ Applying labels for Issues
183+ --------------------------
184+
185+ The major elements found in an issue report include:
186+
187+ * Classification (including *Title *) - Metadata that lets us categorize
188+ the issue. Apart from the *Title * field, we use some *type- *, *component- *, and
189+ *version- * specific labels.
190+ * Process - These fields indicate the state of the issue and its progress
191+ toward resolution. The fields are *Status * (open/closed), *Assignees *,
192+ *Comment *, as well as *priority- * and *keyword- * specific labels.
193+ * Messages
194+ * History
195+
196+ Title
197+ '''''
198+ A brief description of the issue. Review whether the title is too generic or
199+ specifies an incorrect term or library.
200+
201+ (Optional) Add a prefix at the start of the title to indicate the module, e.g.
202+ IDLE, doc, or asyncio.
203+
204+ Type
205+ ''''
206+ Describes the type of issue. If an issue does not fit within any
207+ specific type, please do not set a type.
208+
209+ +----------------+----------------------------------------------------------+
210+ | Type | Description |
211+ +================+==========================================================+
212+ | behavior | Unexpected behavior, result, or exception. Most bugs |
213+ | | will have this type. This group also includes compile |
214+ | | errors, and crashers. |
215+ +----------------+----------------------------------------------------------+
216+ | enhancement | Issues that propose the addition of new functionality, |
217+ | | such as new functions, classes, modules, or even new |
218+ | | arguments for existing functions. Also used for |
219+ | | improvements in the documentation, test suite and |
220+ | | other refactorings. A good place to discuss enhancements |
221+ | | prior to filing an issue is `python-ideas `_ mailing |
222+ | | list. |
223+ +----------------+----------------------------------------------------------+
224+ | performance | Situations where too much time is necessary to complete |
225+ | | the task. For example, a common task now takes |
226+ | | significantly longer to complete. This group also |
227+ | | includes resource usage (e.g. too much memory needed) |
228+ | | issues. |
229+ +----------------+----------------------------------------------------------+
230+ | security | Issues that might have security implications. Report |
231+ | | security vulnerabilities using the procedure found in |
232+ | | the `Reporting security issues in Python `_ page on the |
233+ | | python.org website. |
234+ +----------------+----------------------------------------------------------+
235+
236+ Stage
237+ '''''
238+ A needed next action to advance the issue. The *stage * on GitHub issues is
239+ determined by presence of a linked PR and whether the issue is still open
240+ or closed. It is the PR that holds code review-related labels.
241+
242+ Components
243+ ''''''''''
244+ The area or Python library affected by the issue. A single issue can apply
245+ multiple component labels.
246+
247+ One or more components may be selected for an issue:
248+
249+ +-------------------+------------------------------------------------------+
250+ | Component | Description |
251+ +===================+======================================================+
252+ | Documentation | The documentation in Doc _ (source used to build HTML |
253+ | | docs for https://docs.python.org/). |
254+ +-------------------+------------------------------------------------------+
255+ | Extension Modules | C modules in Modules _. |
256+ +-------------------+------------------------------------------------------+
257+ | Interpreter Core | The interpreter core. |
258+ | | The built-in objects in `Objects `_, the `Python `_, |
259+ | | `Grammar `_ and `Parser `_ dirs. |
260+ +-------------------+------------------------------------------------------+
261+ | Library (Lib) | Python modules in Lib _. |
262+ +-------------------+------------------------------------------------------+
263+ | Tests | The unittest framework in `Lib/unittest `_ |
264+ | | The doctest framework `Lib/doctest.py `_. |
265+ | | The CPython tests in `Lib/test `_. |
266+ | | The test runner in `Lib/test/regrtest.py `_. |
267+ | | The test support utilities in `Lib/test/support `_. |
268+ +-------------------+------------------------------------------------------+
269+
270+ Versions
271+ ''''''''
272+ The known versions of Python that the issue affects and should be fixed for.
273+
274+ Thus if an issue for a new feature is assigned for e.g., Python 3.8 but is not
275+ applied before Python 3.8.0 is released, this label should be updated to say
276+ ``python-3.9 `` as the version and drop ``python-3.8 ``.
277+
278+ Priority
279+ ''''''''
280+ What is the severity and urgency?
281+
282+ +------------------+--------------------------------------------------------+
283+ | Priority | Description |
284+ +==================+========================================================+
285+ | normal | The default value for most issues filed. |
286+ +------------------+--------------------------------------------------------+
287+ | deferred blocker | The issue will not hold up the next release, *n *. It |
288+ | | will be promoted to a *release blocker * for the |
289+ | | following release, *n+1 *. |
290+ +------------------+--------------------------------------------------------+
291+ | release blocker | The issue **must ** be fixed before *any * release is |
292+ | | made, e.g., will block the next release even if it is |
293+ | | an alpha release. |
294+ +------------------+--------------------------------------------------------+
295+
296+ As a guideline, whether a bug is a *release blocker * for the current
297+ :ref: `release schedule <branchstatus >` is decided by the release manager.
298+ Triagers may recommend this priority and should notify the release manager by
299+ tagging them in a comment using ``@username ``. If needed, consult the
300+ :ref: `release schedule <branchstatus >` and the release's associated PEP for the
301+ release manager's name.
302+
303+ Keywords
304+ ''''''''
305+ Various informational flags about the issue. Multiple values are possible.
306+
307+ +---------------+------------------------------------------------------------+
308+ | Keyword | Description |
309+ +===============+============================================================+
310+ | easy | Fixing the issue should not take longer than a day for |
311+ | | someone new to contributing to Python to solve. |
312+ +---------------+------------------------------------------------------------+
313+
314+ Nosy List
315+ '''''''''
316+ A list of people who may be interested in an issue.
317+
318+ This used to be a feature of the old issue tracker. On GitHub issues the
319+ same effect is achieved by tagging people in a comment using ``@username ``.
320+
321+ It is acceptable to tag someone to if you think the issue should be brought to
322+ their attention. Use the :ref: `experts ` to know who wants to be added to the
323+ nosy list for issues targeting specific areas.
324+
325+ If you want to subscribe yourself to an issue, click the *🔔 Subscribe *
326+ button in the sidebar. Similarly, if you were tagged by somebody else but
327+ decided this issue is not for you, you might click the *🔕 Unsubscribe *
328+ button in the sidebar.
329+
330+ Assignees
331+ '''''''''
332+ Who is expected to take the next step in resolving the issue.
333+
334+ It is acceptable to assign an issue to someone if the issue cannot move
335+ forward without their help, e.g., they need to make a technical decision to
336+ allow the issue to move forward. Also consult the :ref: `experts ` as certain
337+ stdlib modules should always be assigned to a specific person.
338+
339+ Note that in order to assign an issue to someone, that person **must ** be
340+ a team member, likely a Triager or a core developer.
341+
342+ Dependencies
343+ ''''''''''''
344+ The issue requires the listed issue(s) to be resolved first before it can move
345+ forward. This is achieved using checkbox lists in the initial issue description
346+ comment. Long story short, if you add this::
347+
348+ - [x] #739
349+ - [ ] https://github.com/octo-org/octo-repo/issues/740
350+ - [ ] Add delight to the experience when all tasks are complete :tada:
351+
352+ then those will become sub-tasks on the given issue. Moreover, GitHub will
353+ automatically mark a task as complete if the other referenced issue is
354+ closed.
355+
356+ More details in the `official GitHub documentation
357+ <https://docs.github.com/en/issues/tracking-your-work-with-issues/about-task-lists> `_.
358+
359+ Superseder
360+ ''''''''''
361+ The issue is a duplicate of the listed issue(s). To make GitHub mark
362+ an issue as duplicate, write "Duplicate of #xxxx" in a comment.
363+
364+ Status
365+ ''''''
366+
367+ +---------------+------------------------------------------------------------+
368+ | Status | Description |
369+ +===============+============================================================+
370+ | open | Issue is not resolved. |
371+ +---------------+------------------------------------------------------------+
372+ | closed | The issue has been resolved (somehow). |
373+ +---------------+------------------------------------------------------------+
374+
375+ Linked pull requests
376+ ''''''''''''''''''''
377+ A link might be added manually using the cog icon next to this field.
378+ Most commonly though, if the PR includes "Fixes #xxx" in its description,
379+ the link will be added automatically.
380+
381+ Generating Special Links in a Comment
382+ -------------------------------------
383+ Using the following abbreviations in a comment will automatically generate
384+ a link to relevant web pages.
385+
386+ +-------------------------------------------------------------+-------------------------------------------------------+
387+ | Comment abbreviation | Description |
388+ +=============================================================+=======================================================+
389+ | ``#<number> ``, | Links to the tracker issue or PR ``<number> `` (they |
390+ | ``GH-<number> `` | share the same sequence of integers on GitHub). |
391+ +-------------------------------------------------------------+-------------------------------------------------------+
392+ | ``BPO-<number> `` | Links to the old bug tracker at bugs.python.org. |
393+ +-------------------------------------------------------------+-------------------------------------------------------+
394+ | a 10-, 11-, 12-, or 40-digit hex ``<number> `` | Indicates a Git changeset identifier and |
395+ | | generates a link to changeset ``<number> `` on GitHub. |
396+ +-------------------------------------------------------------+-------------------------------------------------------+
397+
398+ .. _Doc : https://github.com/python/cpython/tree/main/Doc/
399+ .. _Grammar : https://github.com/python/cpython/tree/main/Grammar/
400+ .. _Lib : https://github.com/python/cpython/tree/main/Lib/
401+ .. _Lib/doctest.py : https://github.com/python/cpython/blob/main/Lib/doctest.py
402+ .. _Lib/test : https://github.com/python/cpython/tree/main/Lib/test/
403+ .. _Lib/test/regrtest.py : https://github.com/python/cpython/blob/main/Lib/test/regrtest.py
404+ .. _Lib/test/support : https://github.com/python/cpython/tree/main/Lib/test/support/
405+ .. _Lib/unittest : https://github.com/python/cpython/tree/main/Lib/unittest/
406+ .. _Modules : https://github.com/python/cpython/tree/main/Modules/
407+ .. _Objects : https://github.com/python/cpython/tree/main/Objects/
408+ .. _Parser : https://github.com/python/cpython/tree/main/Parser/
409+ .. _Python : https://github.com/python/cpython/tree/main/Python/
410+ .. _Reporting security issues in Python : https://www.python.org/dev/security/
411+ .. _python-ideas : https://mail.python.org/mailman3/lists/python-ideas.python.org
0 commit comments