Skip to content

Commit 0764536

Browse files
authored
Document using Github issues as the issue tracker (#814)
1 parent 15eb5b7 commit 0764536

17 files changed

+478
-471
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: 4 additions & 3 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.
@@ -56,7 +55,7 @@ to enter the public source tree. Ask yourself the following questions:
5655
core developers and members of the `Python Triage Team`_ can apply
5756
labels to GitHub pull requests).
5857

59-
* **Does the pull request have a label indicating that the submitter has signed the CLA?**
58+
* **Does the pull request pass a check indicating that the submitter has signed the CLA?**
6059
Make sure that the contributor has signed a `Contributor
6160
Licensing Agreement <https://www.python.org/psf/contrib/contrib-form/>`_
6261
(CLA), unless their change has no possible intellectual property
@@ -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: 120 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,120 @@
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+
There is no exact equivalent of the "nosy list" feature, so to preserve
64+
this information during the transfer, we list the previous members of
65+
this list in the first message on the migrated issue.
66+
67+
How to add issue dependencies?
68+
------------------------------
69+
70+
Add a checkbox list like this in the issue description::
71+
72+
- [x] #739
73+
- [ ] https://github.com/octo-org/octo-repo/issues/740
74+
- [ ] Add delight to the experience when all tasks are complete :tada:
75+
76+
then those will become sub-tasks on the given issue. Moreover, Github will
77+
automatically mark a task as complete if the other referenced issue is
78+
closed. More details in the `official Github documentation
79+
<https://docs.github.com/en/issues/tracking-your-work-with-issues/about-task-lists>`_.
80+
81+
What on Earth is a "mannequin"?
82+
-------------------------------
83+
84+
For issues migrated to Github from `bpo`_ where the authors or commenters
85+
are not core developers, we opted not to link to their Github accounts
86+
directly. Users not in the `python organization on Github
87+
<https://github.com/orgs/python/people>`_ might not like comments to
88+
appear under their name from an automated import. Others never linked Github on
89+
`bpo`_ in the first place so linking their account, if any, would be impossible.
90+
91+
In those cases a "mannequin" account is present to help follow the conversation
92+
that happened in the issue. In case the user did share their Github account
93+
name in their `bpo_` profile, we use that. Otherwise, their classic `bpo_`
94+
username is used instead.
95+
96+
Where did the "Resolution" field go?
97+
------------------------------------
98+
99+
Based on historical data we found it not being used very often.
100+
101+
Where did the "Low", "High", and "Critical" priorities go?
102+
----------------------------------------------------------
103+
104+
Based on historical data we found those not being used very often.
105+
106+
How to find a random issue?
107+
---------------------------
108+
109+
This is not supported by Github.
110+
111+
Where are regression labels?
112+
----------------------------
113+
114+
We rarely updated this information and it turned out not to be
115+
particularly useful outside of the change log.
116+
117+
118+
.. _bpo: https://bugs.python.org/
119+
.. _Github search syntax: https://docs.github.com/en/search-github/getting-started-with-searching-on-github/understanding-the-search-syntax
120+
.. _advanced search: https://github.com/search/advanced

gh-labels.rst

Lines changed: 170 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,170 @@
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, or when the
142+
reviewer is unresponsive. This label helps core developers quickly identify
143+
PRs that are candidates for closure or require a ping to the author or
144+
reviewer.
145+
146+
awaiting review
147+
Used for PRs that haven't been reviewed by anyone yet.
148+
149+
awaiting core review
150+
Used when the PR is authored by a core developer or when a non-core
151+
developer has reviewed the PR, even if they requested changes.
152+
Note that reviewers could have been added manually by a triager or core
153+
developer, or included automatically through use of the `CODEOWNERS
154+
<https://github.com/python/cpython/blob/main/.github/CODEOWNERS>`_
155+
file.
156+
157+
awaiting changes
158+
A reviewer required changes to proceed with the PR.
159+
160+
awaiting change review
161+
The PR author made requested changes, and they are waiting for review.
162+
163+
awaiting merge
164+
The PR has been approved by a core developer and is ready to merge.
165+
166+
test-with-buildbots
167+
Used on PRs to test the latest commit with the buildbot fleet. Generally for
168+
PRs with large code changes requiring more testing before merging. This
169+
may take multiple hours to complete. Triagers can also stop a stuck build
170+
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: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,8 @@ For some examples on language changes that were accepted please read
8787
`Justifying Python Language Changes`_.
8888

8989
.. _python-ideas: https://mail.python.org/mailman3/lists/python-ideas.python.org/
90-
.. _issue tracker: https://bugs.python.org
90+
.. _issue tracker: https://github.com/python/cpython/issues
9191
.. _PEP Index: https://peps.python.org/
92+
.. _draft PEP: https://www.python.org/dev/peps/pep-0001/
9293
.. _Status Quo Wins a Stalemate: https://www.curiousefficiency.org/posts/2011/02/status-quo-wins-stalemate.html
9394
.. _Justifying Python Language Changes: https://www.curiousefficiency.org/posts/2011/02/justifying-python-language-changes.html

0 commit comments

Comments
 (0)