Skip to content

Commit d808cae

Browse files
Merge branch 'main' into document-bytecode-specialization
2 parents 2742bd2 + a4da558 commit d808cae

10 files changed

Lines changed: 103 additions & 13 deletions

File tree

‎core-team/core-team.csv‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
Malcolm Smith,mhsmith,2026-10-29,,
12
Sergey Miryanov,sergey-miryanov,2026-10-08,,
23
Nathan Goldbaum,ngoldbaum,2026-09-01,,
34
Pieter Eendebak,eendebakpt,2026-07-08,,

‎core-team/join-team.rst‎

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,10 @@ are granted through these steps:
8686
(Some of these are unofficial spaces managed as a courtesy.
8787
Adjust the list to taste.)
8888

89+
- If the candidate has unclaimed mannequin comments from the BPO to GitHub
90+
migration, send an invite to reclaim them from
91+
`🔒 Import/Export settings <https://github.com/organizations/python/settings/import-export>`__.
92+
(See :ref:`what-on-earth-is-a-mannequin` for more info.)
8993
- Add their details to `🔒 python/voters <https://github.com/python/voters>`__.
9094
- Once the python/voters update is merged, regenerate the public team membership
9195
list at :ref:`developers`.

‎development-tools/clinic/howto.rst‎

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -875,6 +875,19 @@ Just name them ``__new__`` or ``__init__`` as appropriate. Notes:
875875
(If your function doesn't support keywords, the parsing function
876876
generated will throw an exception if it receives any.)
877877

878+
* :ref:`vectorcall protocol <python:vectorcall>` support can be added using the
879+
``@vectorcall`` directive. This will output an additional function that can be
880+
used in the :c:member:`~PyTypeObject.tp_vectorcall` slot.
881+
The generated function adds a fair amount of code, so benchmark first
882+
and only use it where it gives a significant speedup.
883+
884+
Current restrictions:
885+
886+
* Optional groups are not supported.
887+
* The type must be immutable (:c:macro:`Py_TPFLAGS_IMMUTABLETYPE`).
888+
889+
.. versionadded:: 3.16
890+
878891

879892
How to change and redirect Clinic's output
880893
------------------------------------------

‎getting-started/ai-tools.rst‎

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,3 +62,18 @@ disrespectful of the maintainers time.
6262
It is not acceptable to alter or bypass existing tests, or remove desired
6363
functionality, in order to make a failing test pass. Such changes are not
6464
a real fix.
65+
66+
How these guidelines are applied
67+
================================
68+
69+
Using AI tools is not a reason on its own for an issue or PR to be labeled
70+
or closed. When a maintainer thinks an issue or PR does not follow these
71+
guidelines, they may apply one of the following labels. A bot then posts a
72+
comment that links to this page.
73+
74+
- :gh-label:`AI-needs-explanation`: the issue or PR stays open. Reply in your
75+
own words: explain what the change does or what the issue is about, and
76+
describe how you checked that it is correct.
77+
- :gh-label:`AI-guidelines-not-met`: the issue or PR is closed. If you think
78+
we misunderstood your contribution, reply on the issue or PR. You are
79+
welcome to explain your approach or ask questions about these guidelines.

‎getting-started/setup-building.rst‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -781,8 +781,8 @@ some of CPython's modules (for example, ``zlib``).
781781
$ sudo dnf install \
782782
gcc gcc-c++ gdb lzma glibc-devel libstdc++-devel openssl-devel \
783783
readline-devel zlib-devel libzstd-devel libffi-devel bzip2-devel \
784-
xz-devel sqlite sqlite-devel sqlite-libs libuuid-devel gdbm-libs \
785-
perf expat expat-devel mpdecimal python3-pip
784+
xz-devel sqlite sqlite-devel sqlite-libs libuuid-devel gdbm-devel \
785+
perf expat expat-devel mpdecimal-devel tk-devel python3-pip
786786

787787
.. tab:: Debian / Ubuntu
788788

‎testing/run-write-tests.rst‎

Lines changed: 16 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -17,29 +17,29 @@ Running and writing tests
1717
Running
1818
=======
1919

20-
The shortest, simplest way of running the test suite is the following command
21-
from the root directory of your checkout (after you have
22-
:ref:`built Python <compiling>`):
20+
The shortest, simplest way of running the test suite is the following command,
21+
which runs tests in parallel, from the root directory of your checkout
22+
(after you have :ref:`built Python <compiling>`):
2323

2424
.. tab:: Unix
2525

2626
.. code-block:: shell
2727
28-
./python -m test
28+
./python -m test -j0
2929
3030
.. tab:: macOS
3131

3232
.. code-block:: shell
3333
34-
./python.exe -m test
34+
./python.exe -m test -j0
3535
3636
This works on :ref:`most <mac-python.exe>` macOS systems.
3737

3838
.. tab:: Windows
3939

4040
.. code-block:: dosbatch
4141
42-
.\python.bat -m test
42+
.\python.bat -m test -j0
4343
4444
This will run the majority of tests, but exclude a small portion of them; these
4545
excluded tests use special kinds of resources: for example, accessing the
@@ -139,26 +139,31 @@ But, there are several important notes:
139139
In other words: if some module does not have ``unittest.main()``, then
140140
most likely it does not support direct invocation.
141141

142-
If you have a multi-core or multi-CPU machine, you can enable parallel testing
143-
using several Python processes so as to speed up things:
142+
By default, ``-j0`` runs tests in parallel using a number of worker processes
143+
based on the CPU count, which is much faster but can interleave output
144+
from different tests. To run tests sequentially, for example when debugging
145+
a failure, drop the ``-j`` flag:
144146

145147
.. tab:: Unix
146148

147149
.. code-block:: shell
148150
149-
./python -m test -j0
151+
./python -m test
150152
151153
.. tab:: macOS
152154

153155
.. code-block:: shell
154156
155-
./python.exe -m test -j0
157+
./python.exe -m test
156158
157159
.. tab:: Windows
158160

159161
.. code-block:: dosbatch
160162
161-
.\python.bat -m test -j0
163+
.\python.bat -m test
164+
165+
To limit how many tests run at once, pass an explicit number of
166+
worker processes instead, such as ``-j2``.
162167

163168
.. _strenuous_testing:
164169

‎triage/issue-tracker.rst‎

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -201,6 +201,11 @@ that happened in the issue. In case the user did share their GitHub account
201201
name in their BPO profile, we use that. Otherwise, their classic BPO
202202
username is used instead.
203203

204+
For triagers and core team members, :ref:`organization owners <current owners>`
205+
can send invitations to attribute mannequin comments to GitHub user account.
206+
(For the administrator: use the `Import/Export settings page <mannequin-reclaim-settings_>`_;
207+
refer to `Github's documentation <mannequin-reclaim-docs_>`_.)
208+
204209

205210
.. _disagreement-with-a-resolution-on-the-issue-tracker:
206211

@@ -239,3 +244,5 @@ reason either as ``complete`` or ``not planned``.
239244
.. _sub-issues: https://docs.github.com/en/issues/tracking-your-work-with-issues/using-issues/adding-sub-issues
240245
.. _Core Development Discourse category: https://discuss.python.org/c/core-dev/23
241246
.. _old bug tracker: https://bugs.python.org/
247+
.. _mannequin-reclaim-settings: https://github.com/organizations/python/settings/import-export
248+
.. _mannequin-reclaim-docs: https://docs.github.com/en/migrations/using-github-enterprise-importer/completing-your-migration-with-github-enterprise-importer/reclaiming-mannequins-for-github-enterprise-importer#reclaiming-mannequins-in-your-browser

‎triage/labels.rst‎

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,16 @@ for a list of active branches.
116116
Other labels
117117
============
118118

119+
* Use :gh-label:`AI-guidelines-not-met` for a clearly low-effort
120+
AI-assisted submission where you think the author is unlikely to engage with
121+
feedback. The bot links to the :ref:`guidelines for using AI tools
122+
<ai-tools>` and closes the issue or PR. See the :ref:`triage team's guidance
123+
on applying the AI policy labels <triage-ai-labels>`.
124+
* Use :gh-label:`AI-needs-explanation` when you have concerns
125+
about AI-assisted work and think the author is likely to engage with feedback.
126+
The bot posts a reminder and leaves the issue or PR open. See the
127+
:ref:`triage team's guidance on applying the AI policy labels
128+
<triage-ai-labels>`.
119129
* :gh-label:`build`/:gh-label:`performance`: for issues related
120130
to the build process or performance, respectively.
121131
* :gh-label:`easy`: for issues that are considered easy.

‎triage/triage-team.rst‎

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,39 @@ the Python Software Foundation, always follow the `PSF Code of Conduct`_.
5656
.. _PSF Code of Conduct: https://policies.python.org/python.org/code-of-conduct/
5757

5858

59+
.. _triage-ai-labels:
60+
61+
Applying the AI policy labels
62+
=============================
63+
64+
Use the AI policy labels for issues and PRs that don't follow the
65+
:ref:`guidelines for using AI tools <ai-tools>`. Don't apply them only because
66+
AI tools were used, or because the author disclosed using them.
67+
68+
Apply only one of these labels to an issue or PR. When you add
69+
:gh-label:`AI-guidelines-not-met`, the bot automatically removes
70+
:gh-label:`AI-needs-explanation`. If you add both labels,
71+
:gh-label:`AI-guidelines-not-met` wins.
72+
73+
* Start with :gh-label:`AI-needs-explanation`. The bot asks the author to
74+
explain the work in their own words and leaves the issue or PR open.
75+
* Use :gh-label:`AI-guidelines-not-met` only for clear cases, such as a
76+
low-effort submission where the author is unlikely to engage with feedback.
77+
The bot posts a comment and closes the issue or PR. If you have any doubt,
78+
use :gh-label:`AI-needs-explanation` instead, or consult a core developer.
79+
* If the author doesn't respond to :gh-label:`AI-needs-explanation`, or the
80+
response doesn't address the concern (for example, it is more generated
81+
text), add :gh-label:`AI-guidelines-not-met`. The bot removes
82+
:gh-label:`AI-needs-explanation`, posts the closing comment and closes the
83+
issue or PR. If you have any doubt, consult a core team member first.
84+
* If the author responds and the concern is resolved, remove the label.
85+
For a closed issue or PR, reopen it as well.
86+
87+
Prefer these labels over closing manually, so the author gets the same
88+
explanation each time and the issues and PRs can be found later by filtering
89+
on the label.
90+
91+
5992
Becoming a member of the Python triage team
6093
===========================================
6194

‎triage/triaging.rst‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,8 @@ Checklist for triaging
2828
* If the issue is clearly invalid (unrelated to CPython, spam, and
2929
so on), you can use GitHub's :guilabel:`Close as not planned` option
3030
and apply the :gh-label:`invalid` label.
31+
* If the issue or PR doesn't follow the :ref:`guidelines for using AI tools
32+
<ai-tools>`, apply one of the :ref:`AI policy labels <triage-ai-labels>`.
3133

3234

3335
.. _triage-fields:

0 commit comments

Comments
 (0)