Skip to content

Commit 2672099

Browse files
committed
Merge origin/main into traceback-timestamps
Resolve conflicts in Lib/subprocess.py (adopt generic sorted xoptions loop) and Objects/exceptions.c (integrate _PyTuple_FromPair with timestamp-aware __reduce__ methods).
2 parents 37be655 + 3a7df63 commit 2672099

File tree

828 files changed

+40190
-15495
lines changed

Some content is hidden

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

828 files changed

+40190
-15495
lines changed

.gitattributes

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -112,3 +112,4 @@ Tools/peg_generator/pegen/grammar_parser.py generated
112112
aclocal.m4 generated
113113
configure generated
114114
*.min.js generated
115+
package-lock.json generated

.github/CODEOWNERS

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -100,12 +100,12 @@ Lib/test/test_build_details.py @FFY00
100100
InternalDocs/ @AA-Turner
101101

102102
# Tools, Configuration, etc
103-
Doc/Makefile @AA-Turner @hugovk
104-
Doc/_static/ @AA-Turner @hugovk
105-
Doc/conf.py @AA-Turner @hugovk
106-
Doc/make.bat @AA-Turner @hugovk
107-
Doc/requirements.txt @AA-Turner @hugovk
108-
Doc/tools/ @AA-Turner @hugovk
103+
Doc/Makefile @AA-Turner @hugovk @StanFromIreland
104+
Doc/_static/ @AA-Turner @hugovk @StanFromIreland
105+
Doc/conf.py @AA-Turner @hugovk @StanFromIreland
106+
Doc/make.bat @AA-Turner @hugovk @StanFromIreland
107+
Doc/requirements.txt @AA-Turner @hugovk @StanFromIreland
108+
Doc/tools/ @AA-Turner @hugovk @StanFromIreland
109109

110110
# PR Previews
111111
.readthedocs.yml @AA-Turner
@@ -427,19 +427,19 @@ Lib/dataclasses.py @ericvsmith
427427
Lib/test/test_dataclasses/ @ericvsmith
428428

429429
# Dates and times
430-
Doc/**/*time.rst @pganssle @abalkin @StanFromIreland
430+
Doc/**/*time.rst @pganssle @StanFromIreland
431431
Doc/library/datetime-* @pganssle @StanFromIreland
432432
Doc/library/zoneinfo.rst @pganssle @StanFromIreland
433-
Include/datetime.h @pganssle @abalkin @StanFromIreland
434-
Include/internal/pycore_time.h @pganssle @abalkin @StanFromIreland
433+
Include/datetime.h @pganssle @StanFromIreland
434+
Include/internal/pycore_time.h @pganssle @StanFromIreland
435435
Lib/test/test_zoneinfo/ @pganssle @StanFromIreland
436436
Lib/zoneinfo/ @pganssle @StanFromIreland
437-
Lib/*time.py @pganssle @abalkin @StanFromIreland
438-
Lib/test/datetimetester.py @pganssle @abalkin @StanFromIreland
439-
Lib/test/test_*time.py @pganssle @abalkin @StanFromIreland
437+
Lib/*time.py @pganssle @StanFromIreland
438+
Lib/test/datetimetester.py @pganssle @StanFromIreland
439+
Lib/test/test_*time.py @pganssle @StanFromIreland
440440
Modules/*zoneinfo* @pganssle @StanFromIreland
441-
Modules/*time* @pganssle @abalkin @StanFromIreland
442-
Python/pytime.c @pganssle @abalkin @StanFromIreland
441+
Modules/*time* @pganssle @StanFromIreland
442+
Python/pytime.c @pganssle @StanFromIreland
443443

444444
# Dbm
445445
Doc/library/dbm.rst @corona10 @erlend-aasland @serhiy-storchaka

.github/dependabot.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ updates:
33
- package-ecosystem: "github-actions"
44
directory: "/"
55
schedule:
6-
interval: "monthly"
6+
interval: "quarterly"
77
labels:
88
- "skip issue"
99
- "skip news"
@@ -24,7 +24,7 @@ updates:
2424
- package-ecosystem: "pip"
2525
directory: "/Tools/"
2626
schedule:
27-
interval: "monthly"
27+
interval: "quarterly"
2828
labels:
2929
- "skip issue"
3030
- "skip news"

.github/workflows/add-issue-header.yml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@ on:
1212
# Only ever run once
1313
- opened
1414

15+
permissions:
16+
contents: read
1517

1618
jobs:
1719
add-header:
@@ -20,7 +22,7 @@ jobs:
2022
issues: write
2123
timeout-minutes: 5
2224
steps:
23-
- uses: actions/github-script@v8
25+
- uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8.0.0
2426
with:
2527
# language=JavaScript
2628
script: |

.github/workflows/build.yml

Lines changed: 37 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ jobs:
6464
run: |
6565
apt update && apt install git -yq
6666
git config --global --add safe.directory "$GITHUB_WORKSPACE"
67-
- uses: actions/checkout@v6
67+
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
6868
with:
6969
fetch-depth: 1
7070
persist-credentials: false
@@ -101,10 +101,10 @@ jobs:
101101
needs: build-context
102102
if: needs.build-context.outputs.run-tests == 'true'
103103
steps:
104-
- uses: actions/checkout@v6
104+
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
105105
with:
106106
persist-credentials: false
107-
- uses: actions/setup-python@v6
107+
- uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
108108
with:
109109
python-version: '3.x'
110110
- name: Runner image version
@@ -165,13 +165,21 @@ jobs:
165165
free-threading:
166166
- false
167167
- true
168+
interpreter:
169+
- switch-case
168170
exclude:
169171
# Skip Win32 on free-threaded builds
170172
- { arch: Win32, free-threading: true }
173+
include:
174+
# msvc::musttail is currently only supported on x64,
175+
# and only supported on 3.15+.
176+
- { arch: x64, free-threading: false, interpreter: tail-call }
177+
- { arch: x64, free-threading: true, interpreter: tail-call }
171178
uses: ./.github/workflows/reusable-windows.yml
172179
with:
173180
arch: ${{ matrix.arch }}
174181
free-threading: ${{ matrix.free-threading }}
182+
interpreter: ${{ matrix.interpreter }}
175183

176184
build-windows-msi:
177185
# ${{ '' } is a hack to nest jobs under the same sidebar category.
@@ -198,10 +206,10 @@ jobs:
198206
strategy:
199207
fail-fast: false
200208
matrix:
201-
# macos-14 is M1, macos-15-intel is Intel.
209+
# macos-26 is Apple Silicon, macos-15-intel is Intel.
202210
# macos-15-intel only runs tests against the GIL-enabled CPython.
203211
os:
204-
- macos-14
212+
- macos-26
205213
- macos-15-intel
206214
free-threading:
207215
- false
@@ -284,7 +292,7 @@ jobs:
284292
SSLLIB_DIR: ${{ github.workspace }}/multissl/${{ matrix.ssllib.name }}/${{ matrix.ssllib.version }}
285293
LD_LIBRARY_PATH: ${{ github.workspace }}/multissl/${{ matrix.ssllib.name }}/${{ matrix.ssllib.version }}/lib
286294
steps:
287-
- uses: actions/checkout@v6
295+
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
288296
with:
289297
persist-credentials: false
290298
- name: Runner image version
@@ -295,7 +303,7 @@ jobs:
295303
run: sudo ./.github/workflows/posix-deps-apt.sh
296304
- name: 'Restore SSL library build'
297305
id: cache-ssl-lib
298-
uses: actions/cache@v5
306+
uses: actions/cache@668228422ae6a00e4ad889ee87cd7109ec5666a7 # v5.0.4
299307
with:
300308
path: ./multissl/${{ matrix.ssllib.name }}/${{ matrix.ssllib.version }}
301309
key: ${{ matrix.os }}-multissl-${{ matrix.ssllib.name }}-${{ matrix.ssllib.version }}
@@ -337,13 +345,13 @@ jobs:
337345
matrix:
338346
include:
339347
- arch: aarch64
340-
runs-on: macos-14
348+
runs-on: macos-26
341349
- arch: x86_64
342350
runs-on: ubuntu-24.04
343351

344352
runs-on: ${{ matrix.runs-on }}
345353
steps:
346-
- uses: actions/checkout@v6
354+
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
347355
with:
348356
persist-credentials: false
349357
- name: Build and test
@@ -356,7 +364,7 @@ jobs:
356364
timeout-minutes: 60
357365
runs-on: macos-14
358366
steps:
359-
- uses: actions/checkout@v6
367+
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
360368
with:
361369
persist-credentials: false
362370

@@ -370,7 +378,13 @@ jobs:
370378
sudo xcode-select --switch /Applications/Xcode_15.4.app
371379
372380
- name: Build and test
373-
run: python3 Apple ci iOS --fast-ci --simulator 'iPhone SE (3rd generation),OS=17.5'
381+
run: python3 Platforms/Apple ci iOS --fast-ci --simulator 'iPhone SE (3rd generation),OS=17.5'
382+
383+
build-emscripten:
384+
name: 'Emscripten'
385+
needs: build-context
386+
if: needs.build-context.outputs.run-emscripten == 'true'
387+
uses: ./.github/workflows/reusable-emscripten.yml
374388

375389
build-wasi:
376390
name: 'WASI'
@@ -388,7 +402,7 @@ jobs:
388402
OPENSSL_VER: 3.5.5
389403
PYTHONSTRICTEXTENSIONBUILD: 1
390404
steps:
391-
- uses: actions/checkout@v6
405+
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
392406
with:
393407
persist-credentials: false
394408
- name: Register gcc problem matcher
@@ -402,7 +416,7 @@ jobs:
402416
echo "LD_LIBRARY_PATH=${GITHUB_WORKSPACE}/multissl/openssl/${OPENSSL_VER}/lib" >> "$GITHUB_ENV"
403417
- name: 'Restore OpenSSL build'
404418
id: cache-openssl
405-
uses: actions/cache@v5
419+
uses: actions/cache@668228422ae6a00e4ad889ee87cd7109ec5666a7 # v5.0.4
406420
with:
407421
path: ./multissl/openssl/${{ env.OPENSSL_VER }}
408422
key: ${{ runner.os }}-multissl-openssl-${{ env.OPENSSL_VER }}
@@ -449,7 +463,7 @@ jobs:
449463
./python -m venv "$VENV_LOC" && "$VENV_PYTHON" -m pip install -r "${GITHUB_WORKSPACE}/Tools/requirements-hypothesis.txt"
450464
- name: 'Restore Hypothesis database'
451465
id: cache-hypothesis-database
452-
uses: actions/cache@v5
466+
uses: actions/cache@668228422ae6a00e4ad889ee87cd7109ec5666a7 # v5.0.4
453467
with:
454468
path: ${{ env.CPYTHON_BUILDDIR }}/.hypothesis/
455469
key: hypothesis-database-${{ github.head_ref || github.run_id }}
@@ -476,7 +490,7 @@ jobs:
476490
-x test_subprocess \
477491
-x test_signal \
478492
-x test_sysconfig
479-
- uses: actions/upload-artifact@v7
493+
- uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0
480494
if: always()
481495
with:
482496
name: hypothesis-example-db
@@ -497,7 +511,7 @@ jobs:
497511
PYTHONSTRICTEXTENSIONBUILD: 1
498512
ASAN_OPTIONS: detect_leaks=0:allocator_may_return_null=1:handle_segv=0
499513
steps:
500-
- uses: actions/checkout@v6
514+
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
501515
with:
502516
persist-credentials: false
503517
- name: Runner image version
@@ -507,7 +521,7 @@ jobs:
507521
- name: Install dependencies
508522
run: sudo ./.github/workflows/posix-deps-apt.sh
509523
- name: Set up GCC-10 for ASAN
510-
uses: egor-tensin/setup-gcc@v2
524+
uses: egor-tensin/setup-gcc@a2861a8b8538f49cf2850980acccf6b05a1b2ae4 # v2.0
511525
with:
512526
version: 10
513527
- name: Configure OpenSSL env vars
@@ -517,7 +531,7 @@ jobs:
517531
echo "LD_LIBRARY_PATH=${GITHUB_WORKSPACE}/multissl/openssl/${OPENSSL_VER}/lib" >> "$GITHUB_ENV"
518532
- name: 'Restore OpenSSL build'
519533
id: cache-openssl
520-
uses: actions/cache@v5
534+
uses: actions/cache@668228422ae6a00e4ad889ee87cd7109ec5666a7 # v5.0.4
521535
with:
522536
path: ./multissl/openssl/${{ env.OPENSSL_VER }}
523537
key: ${{ matrix.os }}-multissl-openssl-${{ env.OPENSSL_VER }}
@@ -564,7 +578,7 @@ jobs:
564578
needs: build-context
565579
if: needs.build-context.outputs.run-ubuntu == 'true'
566580
steps:
567-
- uses: actions/checkout@v6
581+
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
568582
with:
569583
persist-credentials: false
570584
- name: Runner image version
@@ -600,6 +614,7 @@ jobs:
600614
needs.build-context.outputs.run-ci-fuzz == 'true'
601615
|| needs.build-context.outputs.run-ci-fuzz-stdlib == 'true'
602616
permissions:
617+
contents: read
603618
security-events: write
604619
strategy:
605620
fail-fast: false
@@ -651,6 +666,7 @@ jobs:
651666
- build-ubuntu
652667
- build-ubuntu-ssltests
653668
- build-ios
669+
- build-emscripten
654670
- build-wasi
655671
- test-hypothesis
656672
- build-asan
@@ -665,6 +681,7 @@ jobs:
665681
with:
666682
allowed-failures: >-
667683
build-android,
684+
build-emscripten,
668685
build-windows-msi,
669686
build-ubuntu-ssltests,
670687
test-hypothesis,
@@ -707,6 +724,7 @@ jobs:
707724
}}
708725
${{ !fromJSON(needs.build-context.outputs.run-android) && 'build-android,' || '' }}
709726
${{ !fromJSON(needs.build-context.outputs.run-ios) && 'build-ios,' || '' }}
727+
${{ !fromJSON(needs.build-context.outputs.run-emscripten) && 'build-emscripten,' || '' }}
710728
${{ !fromJSON(needs.build-context.outputs.run-wasi) && 'build-wasi,' || '' }}
711729
jobs: ${{ toJSON(needs) }}
712730
traceback_timestamps: 'iso'

.github/workflows/documentation-links.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ jobs:
2222
timeout-minutes: 5
2323

2424
steps:
25-
- uses: readthedocs/actions/preview@v1
25+
- uses: readthedocs/actions/preview@b8bba1484329bda1a3abe986df7ebc80a8950333 # v1.5
2626
with:
2727
project-slug: "cpython-previews"
2828
single-version: "true"

.github/workflows/jit.yml

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ jobs:
3232
runs-on: ubuntu-24.04
3333
timeout-minutes: 60
3434
steps:
35-
- uses: actions/checkout@v6
35+
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
3636
with:
3737
persist-credentials: false
3838
- name: Build tier two interpreter
@@ -69,10 +69,10 @@ jobs:
6969
architecture: ARM64
7070
runner: windows-11-arm
7171
steps:
72-
- uses: actions/checkout@v6
72+
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
7373
with:
7474
persist-credentials: false
75-
- uses: actions/setup-python@v6
75+
- uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
7676
with:
7777
python-version: '3.11'
7878
# PCbuild downloads LLVM automatically:
@@ -101,12 +101,12 @@ jobs:
101101
- target: x86_64-apple-darwin/clang
102102
runner: macos-15-intel
103103
- target: aarch64-apple-darwin/clang
104-
runner: macos-14
104+
runner: macos-15
105105
steps:
106-
- uses: actions/checkout@v6
106+
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
107107
with:
108108
persist-credentials: false
109-
- uses: actions/setup-python@v6
109+
- uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
110110
with:
111111
python-version: '3.11'
112112
- name: Install LLVM
@@ -146,10 +146,10 @@ jobs:
146146
- target: aarch64-unknown-linux-gnu/gcc
147147
runner: ubuntu-24.04-arm
148148
steps:
149-
- uses: actions/checkout@v6
149+
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
150150
with:
151151
persist-credentials: false
152-
- uses: actions/setup-python@v6
152+
- uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
153153
with:
154154
python-version: '3.11'
155155
- name: Build
@@ -182,10 +182,10 @@ jobs:
182182
use_clang: true
183183
run_tests: false
184184
steps:
185-
- uses: actions/checkout@v6
185+
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
186186
with:
187187
persist-credentials: false
188-
- uses: actions/setup-python@v6
188+
- uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
189189
with:
190190
python-version: '3.11'
191191
- name: Build

.github/workflows/lint.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ jobs:
1919
timeout-minutes: 10
2020

2121
steps:
22-
- uses: actions/checkout@v6
22+
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
2323
with:
2424
persist-credentials: false
25-
- uses: j178/prek-action@v1
25+
- uses: j178/prek-action@0bb87d7f00b0c99306c8bcb8b8beba1eb581c037 # v1.1.1

0 commit comments

Comments
 (0)