Skip to content

Commit 074a349

Browse files
authored
Merge branch 'main' into frac-sep-Fraction/87790
2 parents 77d7597 + e5f03b9 commit 074a349

File tree

1,676 files changed

+109501
-35846
lines changed

Some content is hidden

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

1,676 files changed

+109501
-35846
lines changed

.azure-pipelines/ci.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
trigger: ['main', '3.13', '3.12', '3.11', '3.10', '3.9', '3.8']
1+
trigger: ['main', '3.*']
22

33
jobs:
44
- job: Prebuild

.devcontainer/devcontainer.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{
2-
"image": "ghcr.io/python/devcontainer:2024.09.25.11038928730",
2+
"image": "ghcr.io/python/devcontainer:2025.05.29.15334414373",
33
"onCreateCommand": [
44
// Install common tooling.
55
"dnf",

.editorconfig

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

3-
[*.{py,c,cpp,h,js,rst,md,yml}]
3+
[*.{py,c,cpp,h,js,rst,md,yml,yaml}]
44
trim_trailing_whitespace = true
55
insert_final_newline = true
66
indent_style = space
@@ -11,5 +11,5 @@ indent_size = 4
1111
[*.rst]
1212
indent_size = 3
1313

14-
[*.{js,yml}]
14+
[*.{js,yml,yaml}]
1515
indent_size = 2

.gitattributes

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
*.ico binary
1111
*.jpg binary
1212
*.pck binary
13+
*.pdf binary
1314
*.png binary
1415
*.psd binary
1516
*.tar binary
@@ -67,6 +68,7 @@ PCbuild/readme.txt dos
6768
**/clinic/*.cpp.h generated
6869
**/clinic/*.h.h generated
6970
*_db.h generated
71+
Doc/c-api/lifecycle.dot.svg generated
7072
Doc/data/stable_abi.dat generated
7173
Doc/library/token-list.inc generated
7274
Include/internal/pycore_ast.h generated

.github/CODEOWNERS

Lines changed: 42 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -30,10 +30,12 @@ Modules/Setup* @erlend-aasland
3030
Objects/set* @rhettinger
3131
Objects/dict* @methane @markshannon
3232
Objects/typevarobject.c @JelleZijlstra
33+
Objects/unionobject.c @JelleZijlstra
3334
Objects/type* @markshannon
3435
Objects/codeobject.c @markshannon
3536
Objects/frameobject.c @markshannon
3637
Objects/call.c @markshannon
38+
Objects/object.c @ZeroIntensity
3739
Python/ceval*.c @markshannon
3840
Python/ceval*.h @markshannon
3941
Python/codegen.c @markshannon @iritkatriel
@@ -43,8 +45,9 @@ Python/flowgraph.c @markshannon @iritkatriel
4345
Python/instruction_sequence.c @iritkatriel
4446
Python/bytecodes.c @markshannon
4547
Python/optimizer*.c @markshannon
46-
Python/optimizer_analysis.c @Fidget-Spinner
47-
Python/optimizer_bytecodes.c @Fidget-Spinner
48+
Python/optimizer_analysis.c @Fidget-Spinner @tomasr8
49+
Python/optimizer_bytecodes.c @Fidget-Spinner @tomasr8
50+
Python/optimizer_symbols.c @tomasr8
4851
Python/symtable.c @JelleZijlstra @carljm
4952
Lib/_pyrepl/* @pablogsal @lysnikolaou @ambv
5053
Lib/test/test_patma.py @brandtbucher
@@ -65,8 +68,8 @@ Doc/_static/** @AA-Turner @hugovk
6568
Doc/tools/** @AA-Turner @hugovk
6669

6770
# runtime state/lifecycle
68-
**/*pylifecycle* @ericsnowcurrently
69-
**/*pystate* @ericsnowcurrently
71+
**/*pylifecycle* @ericsnowcurrently @ZeroIntensity
72+
**/*pystate* @ericsnowcurrently @ZeroIntensity
7073
**/*preconfig* @ericsnowcurrently
7174
**/*initconfig* @ericsnowcurrently
7275
**/*pathconfig* @ericsnowcurrently
@@ -167,6 +170,9 @@ Include/internal/pycore_time.h @pganssle @abalkin
167170
**/*imap* @python/email-team
168171
**/*poplib* @python/email-team
169172

173+
# Exclude .mailmap from being owned by @python/email-team
174+
/.mailmap
175+
170176
# Garbage collector
171177
/Modules/gcmodule.c @pablogsal
172178
/Doc/library/gc.rst @pablogsal
@@ -183,13 +189,13 @@ Include/internal/pycore_time.h @pganssle @abalkin
183189
/Tools/cases_generator/ @markshannon
184190

185191
# AST
186-
Python/ast.c @isidentical @JelleZijlstra @eclips4
187-
Python/ast_opt.c @isidentical @eclips4
188-
Parser/asdl.py @isidentical @JelleZijlstra @eclips4
189-
Parser/asdl_c.py @isidentical @JelleZijlstra @eclips4
190-
Lib/ast.py @isidentical @JelleZijlstra @eclips4
191-
Lib/_ast_unparse.py @isidentical @JelleZijlstra @eclips4
192-
Lib/test/test_ast/ @eclips4
192+
Python/ast.c @isidentical @JelleZijlstra @eclips4 @tomasr8
193+
Python/ast_preprocess.c @isidentical @eclips4 @tomasr8
194+
Parser/asdl.py @isidentical @JelleZijlstra @eclips4 @tomasr8
195+
Parser/asdl_c.py @isidentical @JelleZijlstra @eclips4 @tomasr8
196+
Lib/ast.py @isidentical @JelleZijlstra @eclips4 @tomasr8
197+
Lib/_ast_unparse.py @isidentical @JelleZijlstra @eclips4 @tomasr8
198+
Lib/test/test_ast/ @eclips4 @tomasr8
193199

194200
# Mock
195201
/Lib/unittest/mock.py @cjw296
@@ -277,9 +283,13 @@ Doc/howto/clinic.rst @erlend-aasland
277283
# Subinterpreters
278284
**/*interpreteridobject.* @ericsnowcurrently
279285
**/*crossinterp* @ericsnowcurrently
280-
Lib/test/support/interpreters/ @ericsnowcurrently
281286
Modules/_interp*module.c @ericsnowcurrently
287+
Lib/test/test__interp*.py @ericsnowcurrently
288+
Lib/concurrent/interpreters/ @ericsnowcurrently
289+
Lib/test/support/channels.py @ericsnowcurrently
290+
Doc/library/concurrent.interpreters.rst @ericsnowcurrently
282291
Lib/test/test_interpreters/ @ericsnowcurrently
292+
Lib/concurrent/futures/interpreter.py @ericsnowcurrently
283293

284294
# Android
285295
**/*Android* @mhsmith @freakboy3742
@@ -294,7 +304,12 @@ Lib/test/test_interpreters/ @ericsnowcurrently
294304
**/*-ios* @freakboy3742
295305

296306
# WebAssembly
297-
/Tools/wasm/ @brettcannon @freakboy3742
307+
Tools/wasm/config.site-wasm32-emscripten @freakboy3742
308+
/Tools/wasm/README.md @brettcannon @freakboy3742
309+
/Tools/wasm/wasi-env @brettcannon
310+
/Tools/wasm/wasi.py @brettcannon
311+
/Tools/wasm/emscripten @freakboy3742
312+
/Tools/wasm/wasi @brettcannon
298313

299314
# SBOM
300315
/Misc/externals.spdx.json @sethmlarson
@@ -316,3 +331,17 @@ Lib/test/test__colorize.py @hugovk
316331

317332
# Fuzzing
318333
Modules/_xxtestfuzz/ @ammaraskar
334+
335+
# t-strings
336+
**/*interpolationobject* @lysnikolaou
337+
**/*templateobject* @lysnikolaou
338+
**/*templatelib* @lysnikolaou
339+
**/*tstring* @lysnikolaou
340+
341+
# Remote debugging
342+
Python/remote_debug.h @pablogsal
343+
Python/remote_debugging.c @pablogsal
344+
Modules/_remote_debugging_module.c @pablogsal @ambv @1st1
345+
346+
# gettext
347+
**/*gettext* @tomasr8

.github/ISSUE_TEMPLATE/bug.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ body:
4040
- "3.12"
4141
- "3.13"
4242
- "3.14"
43+
- "3.15"
4344
- "CPython main branch"
4445
validations:
4546
required: true

.github/ISSUE_TEMPLATE/crash.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ body:
3333
- "3.12"
3434
- "3.13"
3535
- "3.14"
36+
- "3.15"
3637
- "CPython main branch"
3738
validations:
3839
required: true

.github/PULL_REQUEST_TEMPLATE.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,10 @@ Please read this comment in its entirety. It's quite important.
77
It should be in the following format:
88
99
```
10-
gh-NNNNN: Summary of the changes made
10+
gh-NNNNNN: Summary of the changes made
1111
```
1212
13-
Where: gh-NNNNN refers to the GitHub issue number.
13+
Where: gh-NNNNNN refers to the GitHub issue number.
1414
1515
Most PRs will require an issue number. Trivial changes, like fixing a typo, do not need an issue.
1616
@@ -20,11 +20,11 @@ If this is a backport PR (PR made against branches other than `main`),
2020
please ensure that the PR title is in the following format:
2121
2222
```
23-
[X.Y] <title from the original PR> (GH-NNNN)
23+
[X.Y] <title from the original PR> (GH-NNNNNN)
2424
```
2525
26-
Where: [X.Y] is the branch name, e.g. [3.6].
26+
Where: [X.Y] is the branch name, for example: [3.13].
2727
28-
GH-NNNN refers to the PR number from `main`.
28+
GH-NNNNNN refers to the PR number from `main`.
2929
3030
-->

.github/actionlint.yaml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
self-hosted-runner:
2-
labels: ["windows-aarch64"]
2+
# Pending https://github.com/rhysd/actionlint/issues/533
3+
labels: ["windows-11-arm"]
34

45
config-variables: null
56

.github/workflows/build.yml

Lines changed: 26 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,13 @@ permissions:
1515
contents: read
1616

1717
concurrency:
18-
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}-reusable
18+
# https://docs.github.com/en/actions/writing-workflows/workflow-syntax-for-github-actions#concurrency
19+
# 'group' must be a key uniquely representing a PR or push event.
20+
# github.workflow is the workflow name
21+
# github.actor is the user invoking the workflow
22+
# github.head_ref is the source branch of the PR or otherwise blank
23+
# github.run_id is a unique number for the current run
24+
group: ${{ github.workflow }}-${{ github.actor }}-${{ github.head_ref || github.run_id }}
1925
cancel-in-progress: true
2026

2127
env:
@@ -156,28 +162,18 @@ jobs:
156162
strategy:
157163
fail-fast: false
158164
matrix:
159-
os:
160-
- windows-latest
161165
arch:
162166
- x64
167+
- Win32
168+
- arm64
163169
free-threading:
164170
- false
165171
- true
166-
include:
167-
# Forks don't have access to Windows on Arm runners. These jobs are skipped below:
168-
- os: ${{ github.repository_owner == 'python' && 'windows-aarch64' || 'windows-latest' }}
169-
arch: arm64
170-
free-threading: false
171-
# Forks don't have access to Windows on Arm runners. These jobs are skipped below:
172-
- os: ${{ github.repository_owner == 'python' && 'windows-aarch64' || 'windows-latest' }}
173-
arch: arm64
174-
free-threading: true
175-
- os: windows-latest
176-
arch: Win32
177-
free-threading: false
172+
exclude:
173+
# Skip Win32 on free-threaded builds
174+
- { arch: Win32, free-threading: true }
178175
uses: ./.github/workflows/reusable-windows.yml
179176
with:
180-
os: ${{ matrix.os }}
181177
arch: ${{ matrix.arch }}
182178
free-threading: ${{ matrix.free-threading }}
183179

@@ -189,18 +185,12 @@ jobs:
189185
strategy:
190186
fail-fast: false
191187
matrix:
192-
os:
193-
- windows-latest
194188
arch:
195189
- x86
196190
- x64
197-
include:
198-
# Forks don't have access to Windows on Arm runners. These jobs are skipped below:
199-
- os: ${{ github.repository_owner == 'python' && 'windows-aarch64' || 'windows-latest' }}
200-
arch: arm64
191+
- arm64
201192
uses: ./.github/workflows/reusable-windows-msi.yml
202193
with:
203-
os: ${{ matrix.os }}
204194
arch: ${{ matrix.arch }}
205195

206196
build-macos:
@@ -280,7 +270,7 @@ jobs:
280270
fail-fast: false
281271
matrix:
282272
os: [ubuntu-24.04]
283-
openssl_ver: [3.0.15, 3.1.7, 3.2.3, 3.3.2, 3.4.0]
273+
openssl_ver: [3.0.16, 3.1.8, 3.2.4, 3.3.3, 3.4.1]
284274
# See Tools/ssl/make_ssl_data.py for notes on adding a new version
285275
env:
286276
OPENSSL_VER: ${{ matrix.openssl_ver }}
@@ -347,7 +337,7 @@ jobs:
347337
needs: build-context
348338
if: needs.build-context.outputs.run-tests == 'true'
349339
env:
350-
OPENSSL_VER: 3.0.15
340+
OPENSSL_VER: 3.0.16
351341
PYTHONSTRICTEXTENSIONBUILD: 1
352342
steps:
353343
- uses: actions/checkout@v4
@@ -438,8 +428,9 @@ jobs:
438428
# failing when executed from inside a virtual environment.
439429
"${VENV_PYTHON}" -m test \
440430
-W \
441-
-o \
431+
--slowest \
442432
-j4 \
433+
--timeout 900 \
443434
-x test_asyncio \
444435
-x test_multiprocessing_fork \
445436
-x test_multiprocessing_forkserver \
@@ -466,7 +457,7 @@ jobs:
466457
matrix:
467458
os: [ubuntu-24.04]
468459
env:
469-
OPENSSL_VER: 3.0.15
460+
OPENSSL_VER: 3.0.16
470461
PYTHONSTRICTEXTENSIONBUILD: 1
471462
ASAN_OPTIONS: detect_leaks=0:allocator_may_return_null=1:handle_segv=0
472463
steps:
@@ -536,6 +527,14 @@ jobs:
536527
config_hash: ${{ needs.build-context.outputs.config-hash }}
537528
free-threading: ${{ matrix.free-threading }}
538529

530+
build-ubsan:
531+
name: Undefined behavior sanitizer
532+
needs: build-context
533+
if: needs.build-context.outputs.run-tests == 'true'
534+
uses: ./.github/workflows/reusable-ubsan.yml
535+
with:
536+
config_hash: ${{ needs.build-context.outputs.config-hash }}
537+
539538
cross-build-linux:
540539
name: Cross build Linux
541540
runs-on: ubuntu-latest

0 commit comments

Comments
 (0)