Skip to content

Commit e8a07db

Browse files
committed
Document using Github issues as the issue tracker
1 parent 15eb5b7 commit e8a07db

17 files changed

+450
-447
lines changed

appendix.rst

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,8 @@ Issue tracking and triaging
4444

4545
* :doc:`tracker`
4646
* :doc:`triaging`
47+
* :doc:`gh-labels`
48+
* :doc:`gh-faq`
4749

4850
Language development in depth
4951
-----------------------------

committing.rst

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,7 @@ to enter the public source tree. Ask yourself the following questions:
2626
* **Are the changes acceptable?**
2727
If you want to share your work-in-progress code on a feature or bugfix,
2828
then you can open a ``WIP``-prefixed pull request, publish patches on
29-
the `issue tracker <https://bugs.python.org/>`_, or create a public
30-
fork of the repository.
29+
the `issue tracker`_, or create a public fork of the repository.
3130

3231
* **Do the checks on the pull request show that the test suite passes?**
3332
Make sure that all of the status checks are passing.
@@ -247,3 +246,5 @@ the commit message. Here is an example::
247246

248247
Reverts python/cpython#111.
249248
Reason: This commit broke the buildbot.
249+
250+
.. _issue tracker: https://github.com/python/cpython/issues

communication.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ Most lists are also mirrored at `GMANE <https://gmane.io/>`_ and can be read and
7777
posted to in various ways, including via web browsers, NNTP newsreaders, and
7878
RSS feed readers.
7979

80-
.. _issue tracker: https://bugs.python.org
80+
.. _issue tracker: https://github.com/python/cpython/issues
8181
.. _new-bugs-announce: https://mail.python.org/mailman/listinfo/new-bugs-announce
8282
.. _python-bugs-list: https://mail.python.org/mailman/listinfo/python-bugs-list
8383
.. _python-checkins: https://mail.python.org/mailman/listinfo/python-checkins

coverage.rst

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -262,8 +262,6 @@ Once you have increased coverage, you need to create an issue on the
262262
issue set the "Components" to "Test" and "Versions" to the version of Python you
263263
worked on (i.e., the in-development version).
264264

265-
.. _issue tracker: https://bugs.python.org
266-
267265

268266
Measuring coverage of C code with gcov and lcov
269267
"""""""""""""""""""""""""""""""""""""""""""""""
@@ -292,5 +290,6 @@ about 20 to 30 minutes on a modern computer.
292290
Multiple test jobs may not work properly. C coverage reporting has only
293291
been tested with a single test process.
294292

293+
.. _issue tracker: https://github.com/python/cpython/issues
295294
.. _gcov: https://gcc.gnu.org/onlinedocs/gcc/Gcov.html
296295
.. _lcov: http://ltp.sourceforge.net/coverage/lcov.php

docquality.rst

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -62,8 +62,7 @@ If you see a documentation issue that you would like to tackle, you can:
6262
By following the steps in the :ref:`Quick Guide to Pull Requests <pullrequest-quickguide>`,
6363
you will learn the workflow for documentation pull requests.
6464

65-
.. _issue tracker: https://bugs.python.org
66-
.. _documentation issues: https://bugs.python.org/issue?%40search_text=&ignore=file%3Acontent&title=&%40columns=title&id=&%40columns=id&stage=&creation=&creator=&activity=&%40columns=activity&%40sort=activity&actor=&nosy=&type=&components=4&versions=&dependencies=&assignee=&keywords=6&priority=&status=1&%40columns=status&resolution=&nosy_count=&message_count=&%40group=&%40pagesize=100&%40startwith=0&%40sortdir=on&%40queryname=&%40old-queryname=&%40action=search
65+
.. _documentation issues: https://github.com/python/cpython/issues?q=is%3Aissue+is%3Aopen+label%3Adocumentation
6766
.. _octocat: https://github.com/logos
6867

6968

@@ -136,3 +135,4 @@ without errors.
136135
.. _devguide repo: https://github.com/python/devguide
137136
.. _devguide GitHub tracker: https://github.com/python/devguide/issues
138137
.. _Sphinx: https://www.sphinx-doc.org/
138+
.. _issue tracker: https://github.com/python/cpython/issues

fixingissues.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,6 @@ discussion to help bring it to a close). Regardless of why the issue is open,
2020
you can also always provide useful comments if you do attempt a fix, successful
2121
or not.
2222

23-
.. _"easy" issues: https://bugs.python.org/issue?status=1&@sort=-activity&@dispname=Easy%20issues&@startwith=0&@filter=&@group=priority&@columns=id,activity,title,creator,status&keywords=6&@action=search&@pagesize=50
23+
.. _"easy" issues: https://github.com/python/cpython/issues?q=is%3Aissue+is%3Aopen+label%3Aeasy
2424

2525
.. TODO: add something about no active core developer for the area?

gh-faq.rst

Lines changed: 101 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,101 @@
1+
Github issues for BPO users
2+
===========================
3+
4+
Here are some frequently asked quesions about how to do things in
5+
Github issues that you used to be able to do on `bpo`_.
6+
7+
Before you ask your own question, make sure you read :doc:`tracker`
8+
and :doc:`triaging` (specifically including :doc:`gh-labels`) as those
9+
pages include a lot of introductory material.
10+
11+
How to format my comments nicely?
12+
---------------------------------
13+
14+
There is a wonderful `beginner guide to writing and formatting on Github
15+
<https://docs.github.com/en/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github>`_.
16+
Highly recommended.
17+
18+
One pro-tip we can sell you right here is that if you want to paste
19+
some longer log as a comment, attach a file instead (see how below).
20+
If you still insist on pasting it in your comment, do it like this::
21+
22+
<details>
23+
<summary>This is the summary text, click me to expand</summary>
24+
25+
Here goes the long, long text.
26+
It will be collapsed by default!
27+
</details>
28+
29+
How to attach files to an issue?
30+
--------------------------------
31+
32+
Drag them into the comment field, wait until the file uploads, and Github
33+
will automatically put a link to your file in your comment text.
34+
35+
How to link to file paths in the repository when writing comments?
36+
------------------------------------------------------------------
37+
38+
Use Markdown links. If you link to the default Github path, the file
39+
will link to the latest current version on the given branch.
40+
41+
You can get a permanent link to a given revision of a given file by
42+
`pressing "y" <https://docs.github.com/en/repositories/working-with-files/using-files/getting-permanent-links-to-files>`_.
43+
44+
How to do advanced searches?
45+
----------------------------
46+
47+
Use the `Github search syntax`_ or the interactive `advanced search`_ form
48+
that generates search queries for you.
49+
50+
Where is the "nosy list"?
51+
-------------------------
52+
53+
Subscribe another person to the issue by tagging them in the comment with
54+
``@username``.
55+
56+
If you want to subscribe yourself to an issue, click the *🔔 Subscribe*
57+
button in the sidebar.
58+
59+
Similarly, if you were tagged by somebody else but
60+
decided this issue is not for you, you might click the *🔕 Unsubscribe*
61+
button in the sidebar.
62+
63+
How to add issue dependencies?
64+
------------------------------
65+
66+
Add a checkbox list like this in the issue description::
67+
68+
- [x] #739
69+
- [ ] https://github.com/octo-org/octo-repo/issues/740
70+
- [ ] Add delight to the experience when all tasks are complete :tada:
71+
72+
then those will become sub-tasks on the given issue. Moreover, Github will
73+
automatically mark a task as complete if the other referenced issue is
74+
closed. More details in the `official Github documentation
75+
<https://docs.github.com/en/issues/tracking-your-work-with-issues/about-task-lists>`_.
76+
77+
Where did the "Resolution" field go?
78+
------------------------------------
79+
80+
Based on historical data we found it not being used very often.
81+
82+
Where did the "Low", "High", and "Critical" priorities go?
83+
----------------------------------------------------------
84+
85+
Based on historical data we found those not being used very often.
86+
87+
How to find a random issue?
88+
---------------------------
89+
90+
This is not supported by Github.
91+
92+
Where are regression labels?
93+
----------------------------
94+
95+
We rarely updated this information and it turned out not to be
96+
particularly useful outside of the change log.
97+
98+
99+
.. _bpo: https://bugs.python.org/
100+
.. _Github search syntax: https://docs.github.com/en/search-github/getting-started-with-searching-on-github/understanding-the-search-syntax
101+
.. _advanced search: https://github.com/search/advanced

gh-labels.rst

Lines changed: 169 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,169 @@
1+
.. _github-labels:
2+
3+
Github Labels
4+
=============
5+
6+
We're using labels on Github to categorize issues and pull requests.
7+
Many labels are shared for both use cases, while some are dedicated
8+
only to one. Below is a possibly inexhaustive list, but it should get
9+
you going. For a full list, see `here <https://github.com/python/cpython/issues/labels>`_.
10+
11+
General purpose labels
12+
----------------------
13+
14+
type-behavior
15+
Used for issues/PRs that address unintentional behavior, but do not
16+
pose significant security concerns. Generally, bugfixes will be attached
17+
to a specific issue where the unintended behavior was first reported.
18+
19+
type-documentation
20+
Used for issues/PRs that exclusively involve changes to
21+
the documentation. Documentation includes `*.rst` files, docstrings,
22+
and code comments.
23+
24+
type-enhancement
25+
Used for issues/PRs that provide additional functionality
26+
or capabilities beyond the existing specifications.
27+
28+
type-performance
29+
Used for issues/PRs that provide performance optimizations.
30+
31+
type-security
32+
Used for issues/PRs that involve critical security issues. Less severe
33+
security concerns can instead use the type-bugfix label.
34+
35+
type-tests
36+
Used for issues/PRs that exclusively involve changes to the tests.
37+
38+
OS-Mac / OS-Windows
39+
Used for issues/PRs involving changes which only have an effect upon
40+
a specific operating system.
41+
42+
spam
43+
Used for issues/PRs that don't include enough eggs or bacon.
44+
45+
Labels specific to issues
46+
-------------------------
47+
48+
Priority
49+
^^^^^^^^
50+
51+
release-blocker
52+
The highest priority of an issue. If unaddressed, will cause the
53+
release manager to hold releasing a new version of Python.
54+
55+
deferred-blocker
56+
A release blocker that was pushed one or more releases into the
57+
future. Possibly a temporary workaround was employed, or the version
58+
of Python the issue is affecting is still in alpha or beta stages
59+
of development.
60+
61+
Component
62+
^^^^^^^^^
63+
64+
library
65+
Used for issues involving Python modules in the ``Lib/`` dir.
66+
67+
documentation
68+
Used for issues involving documentation in the ``Doc/`` dir.
69+
70+
interpreter-core
71+
Used for issues in interpreter core (``Objects/``, ``Python/``,
72+
``Grammar/``, and ``Parser/`` dirs).
73+
74+
extension-modules
75+
Used for issues involving C modules in the ``Modules/`` dir.
76+
77+
tests
78+
Used for issues involving only Python's regression test suite, i.e.
79+
files in the ``Lib/test/`` dir.
80+
81+
Other
82+
^^^^^
83+
84+
new
85+
Denotes that the issue hasn't been looked at by triagers or core
86+
developers yet.
87+
88+
easy
89+
Denotes that the issue is a good candidate for a newcomer to address.
90+
91+
92+
Labels specific to PRs
93+
----------------------
94+
95+
DO-NOT-MERGE
96+
Used on PRs to prevent miss-islington from being able
97+
to automatically merge the pull request. This label is appropriate when a PR
98+
has a non-trivial conflict with the branch it is being merged into.
99+
100+
expert-asyncio
101+
Used for PRs which involve changes to the asyncio module
102+
or other asynchronous frameworks that utilize it.
103+
104+
invalid
105+
Used manually for PRs that do not meet basic requirements and
106+
automatically added by bedevere when PR authors attempt to merge maintenace
107+
branches into the main branch. During events such as the October
108+
Hacktoberfest, this label will prevent the PR from counting toward the
109+
author's contributions.
110+
111+
needs backport to X.Y
112+
Used for PRs which are appropriate to backport to
113+
branches prior to main. Generally, backports to the maintenance branches
114+
are primarily bugfixes and documentation clarifications. Backports to the
115+
security branches are strictly reserved for PRs involving security fixes, such as
116+
crashes, privilege escalation, and DoS. The use of this label will cause
117+
miss-islington to attempt to automatically merge the PR into the branches
118+
specified.
119+
120+
skip issue
121+
Used for PRs which involve trivial changes, such as typo fixes,
122+
comment changes, and section rephrases. The majority of PRs require
123+
an issue to be attached to, but if there are no code changes and the
124+
section being modified retains the same meaning, this label might be
125+
appropriate.
126+
127+
skip news
128+
Similar to the skip issue label, this label is used for PRs which
129+
involve trivial changes, backports, or already have a relevant news entry
130+
in another PR. Any potentially impactful changes should have a
131+
corresponding news entry, but for trivial changes it's commonly at the
132+
discretion of the PR author if they wish to opt-out of making one.
133+
134+
sprint
135+
Used for PRs authored during an in-person sprint, such as
136+
at PyCon, EuroPython, or other official Python events. The label is
137+
used to prioritize the review of those PRs during the sprint.
138+
139+
stale
140+
Used for PRs that include changes which are no longer relevant or when the
141+
author hasn't responded to feedback in a long period of time. This label
142+
helps core developers quickly identify PRs that are candidates for closure
143+
or require a ping to the author.
144+
145+
awaiting review
146+
Used for PRs that haven't been reviewed by anyone yet.
147+
148+
awaiting core review
149+
Used for PRs that have at least one core developer listed in the
150+
*Reviewers* field. Reviewers could have been added manually by
151+
a triager or core developer, or included automatically through use
152+
of the `CODEOWNERS <https://github.com/python/cpython/blob/main/.github/CODEOWNERS>`_
153+
file.
154+
155+
awaiting changes
156+
A reviewer required changes to proceed with the PR.
157+
158+
awaiting change review
159+
The PR author made requested changes, and they are waiting for review.
160+
161+
awaiting merge
162+
A triager or core developer issued an approving review. The PR
163+
is ready to merge.
164+
165+
test-with-buildbots
166+
Used on PRs to test the latest commit with the buildbot fleet. Generally for
167+
PRs with large code changes requiring more testing before merging. This
168+
may take multiple hours to complete. Triagers can also stop a stuck build
169+
using the web interface.

help.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -121,4 +121,4 @@ you detail which conditions triggered it (including the OS name and version,
121121
and what you were trying to do), as well as the exact error message you
122122
encountered.
123123

124-
.. _issue tracker: https://bugs.python.org
124+
.. _issue tracker: https://github.com/python/cpython/issues

index.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -341,5 +341,5 @@ Full Table of Contents
341341
.. _Jython: https://www.jython.org/
342342
.. _IronPython: https://ironpython.net/
343343
.. _Stackless: https://github.com/stackless-dev/stackless/wiki/
344-
.. _Issue tracker: https://bugs.python.org/
344+
.. _Issue tracker: https://github.com/python/cpython/issues
345345
.. _open pull requests: https://github.com/python/cpython/pulls?utf8=%E2%9C%93&q=is%3Apr%20is%3Aopen%20label%3A%22awaiting%20review%22

langchanges.rst

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,8 +86,10 @@ unconvinced. When there isn't an obvious victor then the
8686
For some examples on language changes that were accepted please read
8787
`Justifying Python Language Changes`_.
8888

89+
.. _python-ideas: https://mail.python.org/mailman/listinfo/python-ideas
8990
.. _python-ideas: https://mail.python.org/mailman3/lists/python-ideas.python.org/
90-
.. _issue tracker: https://bugs.python.org
91+
.. _issue tracker: https://github.com/python/cpython/issues
9192
.. _PEP Index: https://peps.python.org/
93+
.. _draft PEP: https://www.python.org/dev/peps/pep-0001/
9294
.. _Status Quo Wins a Stalemate: https://www.curiousefficiency.org/posts/2011/02/status-quo-wins-stalemate.html
9395
.. _Justifying Python Language Changes: https://www.curiousefficiency.org/posts/2011/02/justifying-python-language-changes.html

pullrequest.rst

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -378,8 +378,6 @@ another so they can easily verify whether their comments have been addressed.
378378
The commits will be squashed when the pull request is merged.
379379

380380

381-
.. _issue tracker: https://bugs.python.org
382-
383381
Converting an Existing Patch from b.p.o to GitHub
384382
-------------------------------------------------
385383

@@ -510,3 +508,5 @@ Non-trivial contributions are credited in the ``Misc/ACKS`` file (and, most
510508
often, in a contribution's news entry as well). You may be
511509
asked to make these edits on the behalf of the core developer who
512510
accepts your pull request.
511+
512+
.. _issue tracker: https://github.com/python/cpython/issues

0 commit comments

Comments
 (0)