Skip to content

Commit f021c64

Browse files
Merge branch 'main' into vp/email-utils-docs
2 parents 0f2ab7b + 0615b5c commit f021c64

2,773 files changed

Lines changed: 253555 additions & 148138 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

‎.azure-pipelines/windows-layout-steps.yml‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ steps:
1212
displayName: Show layout info (${{ parameters.kind }})
1313

1414
- ${{ if eq(parameters.fulltest, 'true') }}:
15-
- script: .\python.exe -m test -q -uall -u-cpu -rwW --slowest --timeout=1200 -j0 --junit-xml="$(Build.BinariesDirectory)\test-results-${{ parameters.kind }}.xml" --tempdir "$(Build.BinariesDirectory)\tmp-${{ parameters.kind }}-$(arch)" -i test_launcher
15+
- script: .\python.exe -m test -q -uall -u-cpu -rwW --slowest --timeout=1200 -j0 --junit-xml="$(Build.BinariesDirectory)\test-results-${{ parameters.kind }}.xml" --tempdir "$(Build.BinariesDirectory)\tmp-${{ parameters.kind }}-$(arch)"
1616
workingDirectory: $(Build.BinariesDirectory)\layout-${{ parameters.kind }}-$(arch)
1717
displayName: ${{ parameters.kind }} Tests
1818
env:

‎.editorconfig‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
root = true
22

3-
[*.{py,c,cpp,h,js,rst,md,yml,yaml,gram}]
3+
[*.{py,c,cpp,h,js,rst,md,yml,yaml,toml,gram}]
44
trim_trailing_whitespace = true
55
insert_final_newline = true
66
indent_style = space
77

8-
[*.{py,c,cpp,h,gram}]
8+
[*.{py,c,cpp,h,toml,gram}]
99
indent_size = 4
1010

1111
[*.rst]

‎.gitattributes‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
*.zip binary
2020

2121
# Specific binary files
22-
PC/classicAppCompat.* binary
22+
# -- None right now --
2323

2424
# Text files that should not be subject to eol conversion
2525
[attr]noeol -text
@@ -80,12 +80,12 @@ Include/internal/pycore_ast_state.h generated
8080
Include/internal/pycore_opcode.h generated
8181
Include/internal/pycore_opcode_metadata.h generated
8282
Include/internal/pycore_*_generated.h generated
83+
Include/internal/pycore_token.h generated
8384
Include/internal/pycore_uop_ids.h generated
8485
Include/internal/pycore_uop_metadata.h generated
8586
Include/opcode.h generated
8687
Include/opcode_ids.h generated
8788
Include/slots_generated.h generated
88-
Include/token.h generated
8989
Lib/_opcode_metadata.py generated
9090
Lib/idlelib/help.html generated
9191
Lib/keyword.py generated

‎.github/CODEOWNERS‎

Lines changed: 50 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -63,29 +63,29 @@
6363
.azure-pipelines/ @AA-Turner
6464

6565
# GitHub & related scripts
66-
.github/ @ezio-melotti @hugovk @AA-Turner @webknjaz
67-
Tools/build/compute-changes.py @AA-Turner @hugovk @webknjaz
68-
Lib/test/test_tools/test_compute_changes.py @AA-Turner @hugovk @webknjaz
66+
.github/ @ezio-melotti @hugovk @AA-Turner @webknjaz @itamaro @JacobCoffee @StanFromIreland
67+
Tools/build/compute-changes.py @AA-Turner @hugovk @webknjaz @StanFromIreland
68+
Lib/test/test_tools/test_compute_changes.py @AA-Turner @hugovk @webknjaz @StanFromIreland
6969
Tools/build/verify_ensurepip_wheels.py @AA-Turner @pfmoore @pradyunsg
7070

7171
# Pre-commit
72-
.pre-commit-config.yaml @hugovk
73-
.ruff.toml @hugovk @AlexWaygood @AA-Turner
72+
.pre-commit-config.yaml @hugovk @JacobCoffee @StanFromIreland
73+
.ruff.toml @hugovk @AlexWaygood @AA-Turner @JacobCoffee @StanFromIreland
7474

7575
# Patchcheck
76-
Tools/patchcheck/ @AA-Turner
76+
Tools/patchcheck/ @AA-Turner @itamaro
7777

7878

7979
# ----------------------------------------------------------------------------
8080
# Build System
8181
# ----------------------------------------------------------------------------
8282

8383
# Autotools
84-
configure* @erlend-aasland @corona10 @AA-Turner @emmatyping
85-
Makefile.pre.in @erlend-aasland @AA-Turner @emmatyping
86-
Modules/makesetup @erlend-aasland @AA-Turner @emmatyping
87-
Modules/Setup* @erlend-aasland @AA-Turner @emmatyping
88-
Tools/build/regen-configure.sh @AA-Turner
84+
configure* @erlend-aasland @corona10 @AA-Turner @emmatyping @itamaro
85+
Makefile.pre.in @erlend-aasland @AA-Turner @emmatyping @itamaro
86+
Modules/makesetup @erlend-aasland @AA-Turner @emmatyping @itamaro
87+
Modules/Setup* @erlend-aasland @AA-Turner @emmatyping @itamaro
88+
Tools/build/regen-configure.sh @AA-Turner @itamaro
8989

9090
# generate-build-details
9191
Tools/build/generate-build-details.py @FFY00
@@ -171,9 +171,6 @@ Mac/ @python/macos-team
171171
Lib/_osx_support.py @python/macos-team
172172
Lib/test/test__osx_support.py @python/macos-team
173173

174-
# WebAssembly
175-
Tools/wasm/README.md @brettcannon @freakboy3742 @emmatyping
176-
177174
# WebAssembly (Emscripten)
178175
Platforms/emscripten @freakboy3742 @emmatyping
179176
Tools/wasm/emscripten @freakboy3742 @emmatyping
@@ -188,12 +185,8 @@ Tools/wasm/wasi @brettcannon @emmatyping @savannahostrowski
188185
PC/ @python/windows-team
189186
PCbuild/ @python/windows-team
190187

191-
# Windows installer packages
192-
Tools/msi/ @python/windows-team
193-
Tools/nuget/ @python/windows-team
194-
195-
# Windows Launcher
196-
PC/launcher.c @python/windows-team @vsajip
188+
# Windows Venv launcher/redirector
189+
PC/venvlauncher.c @python/windows-team @vsajip
197190

198191

199192
# ----------------------------------------------------------------------------
@@ -230,7 +223,7 @@ Tools/cases_generator/ @markshannon
230223
Python/assemble.c @markshannon @iritkatriel
231224
Python/codegen.c @markshannon @iritkatriel
232225
Python/compile.c @markshannon @iritkatriel
233-
Python/flowgraph.c @markshannon @iritkatriel
226+
Python/flowgraph.c @markshannon @iritkatriel @eclips4
234227
Python/instruction_sequence.c @iritkatriel
235228
Python/symtable.c @JelleZijlstra @carljm
236229

@@ -290,22 +283,22 @@ Programs/_bootstrap_python.c @ericsnowcurrently @FFY00
290283
Programs/python.c @ericsnowcurrently @FFY00
291284

292285
# JIT
293-
.github/workflows/jit.yml @savannahostrowski
294-
Include/internal/pycore_jit.h @brandtbucher @savannahostrowski @diegorusso
295-
Python/jit.c @brandtbucher @savannahostrowski @diegorusso
296-
Tools/jit/ @brandtbucher @savannahostrowski @diegorusso
297-
InternalDocs/jit.md @brandtbucher @savannahostrowski @diegorusso @AA-Turner
286+
Include/internal/pycore_jit.h @brandtbucher @diegorusso
287+
Python/jit.c @brandtbucher @diegorusso
288+
Tools/jit/ @brandtbucher @diegorusso
289+
InternalDocs/jit.md @brandtbucher @diegorusso @AA-Turner
298290

299291
# Lazy imports (PEP 810)
300-
Objects/lazyimportobject.c @yhg1s @DinoV @pablogsal
301-
Include/internal/pycore_lazyimportobject.h @yhg1s @DinoV @pablogsal
302-
Lib/test/test_lazy_import @yhg1s @DinoV @pablogsal
292+
.github/workflows/reusable-test-lazy-imports-all.yml @yhg1s @DinoV @pablogsal
293+
Objects/lazyimportobject.c @yhg1s @DinoV @pablogsal
294+
Include/internal/pycore_lazyimportobject.h @yhg1s @DinoV @pablogsal
295+
Lib/test/test_lazy_import @yhg1s @DinoV @pablogsal
303296

304297
# Micro-op / μop / Tier 2 Optimiser
305298
Python/optimizer.c @markshannon @Fidget-Spinner
306-
Python/optimizer_analysis.c @markshannon @tomasr8 @Fidget-Spinner @savannahostrowski
307-
Python/optimizer_bytecodes.c @markshannon @tomasr8 @Fidget-Spinner @savannahostrowski
308-
Python/optimizer_symbols.c @markshannon @tomasr8 @Fidget-Spinner @savannahostrowski
299+
Python/optimizer_analysis.c @markshannon @tomasr8 @Fidget-Spinner
300+
Python/optimizer_bytecodes.c @markshannon @tomasr8 @Fidget-Spinner
301+
Python/optimizer_symbols.c @markshannon @tomasr8 @Fidget-Spinner
309302

310303
# Parser, Lexer, and Grammar
311304
Grammar/python.gram @pablogsal @lysnikolaou
@@ -339,7 +332,6 @@ Modules/_remote_debugging/ @pablogsal
339332

340333
# Sub-Interpreters
341334
**/*crossinterp* @ericsnowcurrently
342-
**/*interpreteridobject.* @ericsnowcurrently
343335
Doc/library/concurrent.interpreters.rst @ericsnowcurrently
344336
Lib/concurrent/futures/interpreter.py @ericsnowcurrently
345337
Lib/concurrent/interpreters/ @ericsnowcurrently
@@ -573,9 +565,9 @@ Lib/shutil.py @giampaolo
573565
Lib/test/test_shutil.py @giampaolo
574566

575567
# Site
576-
Lib/site.py @FFY00
577-
Lib/test/test_site.py @FFY00
578-
Doc/library/site.rst @FFY00
568+
Lib/site.py @FFY00 @warsaw
569+
Lib/test/test_site.py @FFY00 @warsaw
570+
Doc/library/site.rst @FFY00 @warsaw
579571

580572
# string.templatelib
581573
Doc/library/string.templatelib.rst @lysnikolaou @AA-Turner
@@ -586,10 +578,10 @@ Lib/test/test_string/test_templatelib.py @lysnikolaou @AA-Turner
586578
**/*sysconfig* @FFY00
587579

588580
# SQLite 3
589-
Doc/library/sqlite3.rst @berkerpeksag @erlend-aasland
590-
Lib/sqlite3/ @berkerpeksag @erlend-aasland
591-
Lib/test/test_sqlite3/ @berkerpeksag @erlend-aasland
592-
Modules/_sqlite/ @berkerpeksag @erlend-aasland
581+
Doc/library/sqlite3.rst @erlend-aasland
582+
Lib/sqlite3/ @erlend-aasland
583+
Lib/test/test_sqlite3/ @erlend-aasland
584+
Modules/_sqlite/ @erlend-aasland
593585

594586
# Subprocess
595587
Lib/subprocess.py @gpshead
@@ -606,6 +598,12 @@ Doc/library/tomllib.rst @encukou @hauntsaninja
606598
Lib/test/test_tomllib/ @encukou @hauntsaninja
607599
Lib/tomllib/ @encukou @hauntsaninja
608600

601+
# Turtle
602+
Doc/library/turtle.rst @StanFromIreland
603+
Doc/library/turtle-star.png @StanFromIreland
604+
Lib/test/test_turtle.py @StanFromIreland
605+
Lib/turtle.py @StanFromIreland
606+
609607
# Typing
610608
Doc/library/typing.rst @JelleZijlstra @AlexWaygood
611609
Lib/test/test_typing.py @JelleZijlstra @AlexWaygood
@@ -622,15 +620,18 @@ Modules/_typesmodule.c @AA-Turner
622620
Lib/unittest/mock.py @cjw296
623621
Lib/test/test_unittest/testmock/ @cjw296
624622

625-
# Urllib
626-
**/*robotparser* @berkerpeksag
627-
628623
# Venv
629624
**/*venv* @vsajip @FFY00
630625

631626
# Weakref
632627
**/*weakref* @kumaraditya303
633628

629+
# Zlib
630+
Doc/library/zlib.rst @StanFromIreland
631+
Lib/compression/zlib.py @StanFromIreland
632+
Lib/test/test_zlib.py @StanFromIreland
633+
Modules/zlibmodule.c @StanFromIreland
634+
634635
# Zipfile.Path
635636
Lib/test/test_zipfile/_path/ @jaraco
636637
Lib/zipfile/_path/ @jaraco
@@ -653,3 +654,9 @@ Modules/**/clinic/
653654
Objects/**/clinic/
654655
PC/**/clinic/
655656
Python/**/clinic/
657+
658+
# Exclude Lazy Imports=all CI carve out file
659+
Lib/test/lazy_imports_all_exclude.txt
660+
661+
# Exclude HTML IDs list
662+
Doc/tools/removed-ids.txt

‎.github/ISSUE_TEMPLATE/bug.yml‎

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ body:
1616
Make sure to also search the [CPython issue tracker](https://github.com/python/cpython/issues?q=is%3Aissue+sort%3Acreated-desc) to check that the bug has not already been reported.
1717
- type: textarea
1818
attributes:
19-
label: "Bug description:"
19+
label: "Bug report"
2020
description: >
2121
Give a clear and concise description of what happened.
2222
Include a [minimal, reproducible example](https://stackoverflow.com/help/minimal-reproducible-example) if possible.
@@ -34,7 +34,6 @@ body:
3434
label: "CPython versions tested on:"
3535
multiple: true
3636
options:
37-
- "3.10"
3837
- "3.11"
3938
- "3.12"
4039
- "3.13"

‎.github/ISSUE_TEMPLATE/crash.yml‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,9 @@ body:
1010
The CPython interpreter is written in a different programming language, C. A "CPython crash" is when Python itself fails, leading to a traceback in the C stack.
1111
- type: textarea
1212
attributes:
13-
label: What happened?
13+
label: Crash report
1414
description: >
15+
Give a clear and concise description of what happened.
1516
Include a [minimal, reproducible example](https://stackoverflow.com/help/minimal-reproducible-example) if possible.
1617
[Copy and paste code where possible rather than using screenshots](https://meta.stackoverflow.com/a/285557/13990016),
1718
and put any code blocks inside triple backticks.
@@ -27,7 +28,6 @@ body:
2728
label: "CPython versions tested on:"
2829
multiple: true
2930
options:
30-
- "3.10"
3131
- "3.11"
3232
- "3.12"
3333
- "3.13"

‎.github/ISSUE_TEMPLATE/feature.yml‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ body:
1212
Major feature proposals should generally be discussed on [Discourse](https://discuss.python.org/c/ideas/6) before opening a GitHub issue. Wait until it's clear that most people support your idea before filling in this form.
1313
- type: textarea
1414
attributes:
15-
label: "Proposal:"
15+
label: "Feature or enhancement"
1616
description: >
1717
Explain your proposal, why it should be implemented, and how it would be used.
1818
Add examples, if applicable.

‎.github/SECURITY.md‎

Lines changed: 17 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,24 @@
11
# Security Policy
22

3-
## Supported Versions
3+
Python [provides a security policy and threat model](https://devguide.python.org/security/policy/)
4+
in the Python Developer's Guide documenting what bugs are vulnerabilities,
5+
how to structure reports, and what versions of Python accept reports.
46

5-
The Python team applies security fixes according to the table
6-
in [the devguide](
7-
https://devguide.python.org/versions/#supported-versions
8-
).
7+
Python Security Response Team (PSRT) members
8+
balance security work against many other responsibilities. Please be thoughtful
9+
about the time and attention your report requires. Repeated failure to respect
10+
the security policy will result in future reports being rejected, or the
11+
reporter being banned from the ``python`` GitHub organization, regardless of
12+
technical merit.
913

1014
## Reporting a Vulnerability
1115

12-
Please read the guidelines on reporting security issues [on the
13-
official website](https://www.python.org/dev/security/) for
14-
instructions on how to report a security-related problem to
15-
the Python team responsibly.
16+
The [Python security policy](https://devguide.python.org/security/policy/)
17+
documents [how to submit a vulnerability report](https://devguide.python.org/security/policy/#how-to-submit-a-vulnerability-report)
18+
using GitHub Security Advisories. Please read the security policy
19+
prior to filing a vulnerability report, especially the section on [what information to
20+
include and exclude](https://devguide.python.org/security/policy/#what-to-include-and-how-to-structure-a-vulnerability-report)
21+
in vulnerability reports. Following the security policy means the PSRT can
22+
quickly and efficiently triage your report, not following the security policy
23+
will only delay triaging your report.
1624

17-
To reach the response team, email `security at python dot org`.

‎.github/VULNERABILITY_REPORT.yml‎

Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
name: Vulnerability report
2+
description: Privately report a potential security vulnerability in CPython
3+
body:
4+
- type: markdown
5+
attributes:
6+
value: |
7+
**Not all bugs are vulnerabilities.** Before submitting, read the [Python security policy](https://devguide.python.org/security/policy/) to understand which issues are vulnerabilities and what versions of Python accept reports.
8+
9+
Keep the report short and in plain text: no headers, tables, PDFs, binaries, or severity and CVSS information.
10+
11+
Reports that do not contain a potential security vulnerability will be discarded without a reply.
12+
13+
To report vulnerabilities that affect other projects (such as pip or python.org), or if you are not sure where to send your report, email [security@python.org](mailto:security@python.org).
14+
- type: textarea
15+
id: summary
16+
attributes:
17+
label: Summary
18+
description: A few sentences describing the vulnerability.
19+
validations:
20+
required: true
21+
- type: textarea
22+
id: threat_model
23+
attributes:
24+
label: Threat model
25+
description: >
26+
What does the attacker control, and what do they gain? Describe the code, configuration, or deployment that may exist in the real world and is exploitable. Where possible, cite the relevant part of the [security policy](https://devguide.python.org/security/policy/#what-types-of-bugs-are-vulnerabilities).
27+
validations:
28+
required: true
29+
- type: textarea
30+
id: proof_of_concept
31+
attributes:
32+
label: Proof of concept
33+
description: >
34+
A script that reproduces the issue and clearly indicates whether the vulnerability is present, such as exiting with `1` if vulnerable and `0` if not. If it depends on a specially constructed binary file, include a script to construct the file rather than the file itself.
35+
36+
Wrap scripts longer than a few lines in a [collapsed section](https://docs.github.com/en/get-started/writing-on-github/working-with-advanced-formatting/organizing-information-with-collapsed-sections) using `<details> ... </details>`.
37+
validations:
38+
required: true
39+
- type: dropdown
40+
id: versions
41+
attributes:
42+
label: "CPython versions tested on:"
43+
description: >
44+
If any tested version was not vulnerable, say which in the summary. Only [supported versions](https://devguide.python.org/versions/) accept reports.
45+
multiple: true
46+
options:
47+
- "3.11"
48+
- "3.12"
49+
- "3.13"
50+
- "3.14"
51+
- "3.15"
52+
- "3.16"
53+
- "CPython main branch"
54+
- type: textarea
55+
id: patch
56+
attributes:
57+
label: Suggested fix
58+
description: Ideally, a minimal patch with the mitigation.
59+
validations:
60+
required: false
61+
- type: checkboxes
62+
id: checklist
63+
attributes:
64+
label: Before submitting
65+
options:
66+
- label: I have read the security policy and evaluated this report against it.
67+
required: true
68+
- label: I have checked that this issue is not already resolved on the `main` branch.
69+
required: true
70+
- label: I have verified the factual validity of everything in this report, including any content produced by an LLM.
71+
required: true

0 commit comments

Comments
 (0)