Skip to content

Commit afc8d7e

Browse files
AA-Turnerezio-melotti
authored andcommitted
Move labels content to gh-labels
1 parent 5061ae9 commit afc8d7e

File tree

2 files changed

+241
-261
lines changed

2 files changed

+241
-261
lines changed

triage/labels.rst

Lines changed: 241 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)