Skip to content

Commit 401b1f5

Browse files
authored
Merge branch 'main' into 3.15-colour-http.server
2 parents 296ef8e + acf5229 commit 401b1f5

File tree

550 files changed

+19005
-4850
lines changed

Some content is hidden

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

550 files changed

+19005
-4850
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: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -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: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ on:
1212
# Only ever run once
1313
- opened
1414

15+
permissions: {}
1516

1617
jobs:
1718
add-header:
@@ -20,7 +21,7 @@ jobs:
2021
issues: write
2122
timeout-minutes: 5
2223
steps:
23-
- uses: actions/github-script@v8
24+
- uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8.0.0
2425
with:
2526
# language=JavaScript
2627
script: |

.github/workflows/build.yml

Lines changed: 37 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,7 @@ on:
1111
- 'main'
1212
- '3.*'
1313

14-
permissions:
15-
contents: read
14+
permissions: {}
1615

1716
concurrency:
1817
# https://docs.github.com/en/actions/writing-workflows/workflow-syntax-for-github-actions#concurrency
@@ -64,7 +63,7 @@ jobs:
6463
run: |
6564
apt update && apt install git -yq
6665
git config --global --add safe.directory "$GITHUB_WORKSPACE"
67-
- uses: actions/checkout@v6
66+
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
6867
with:
6968
fetch-depth: 1
7069
persist-credentials: false
@@ -101,10 +100,10 @@ jobs:
101100
needs: build-context
102101
if: needs.build-context.outputs.run-tests == 'true'
103102
steps:
104-
- uses: actions/checkout@v6
103+
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
105104
with:
106105
persist-credentials: false
107-
- uses: actions/setup-python@v6
106+
- uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
108107
with:
109108
python-version: '3.x'
110109
- name: Runner image version
@@ -165,13 +164,21 @@ jobs:
165164
free-threading:
166165
- false
167166
- true
167+
interpreter:
168+
- switch-case
168169
exclude:
169170
# Skip Win32 on free-threaded builds
170171
- { arch: Win32, free-threading: true }
172+
include:
173+
# msvc::musttail is currently only supported on x64,
174+
# and only supported on 3.15+.
175+
- { arch: x64, free-threading: false, interpreter: tail-call }
176+
- { arch: x64, free-threading: true, interpreter: tail-call }
171177
uses: ./.github/workflows/reusable-windows.yml
172178
with:
173179
arch: ${{ matrix.arch }}
174180
free-threading: ${{ matrix.free-threading }}
181+
interpreter: ${{ matrix.interpreter }}
175182

176183
build-windows-msi:
177184
# ${{ '' } is a hack to nest jobs under the same sidebar category.
@@ -198,10 +205,10 @@ jobs:
198205
strategy:
199206
fail-fast: false
200207
matrix:
201-
# macos-14 is M1, macos-15-intel is Intel.
208+
# macos-26 is Apple Silicon, macos-15-intel is Intel.
202209
# macos-15-intel only runs tests against the GIL-enabled CPython.
203210
os:
204-
- macos-14
211+
- macos-26
205212
- macos-15-intel
206213
free-threading:
207214
- false
@@ -283,7 +290,7 @@ jobs:
283290
SSLLIB_DIR: ${{ github.workspace }}/multissl/${{ matrix.ssllib.name }}/${{ matrix.ssllib.version }}
284291
LD_LIBRARY_PATH: ${{ github.workspace }}/multissl/${{ matrix.ssllib.name }}/${{ matrix.ssllib.version }}/lib
285292
steps:
286-
- uses: actions/checkout@v6
293+
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
287294
with:
288295
persist-credentials: false
289296
- name: Runner image version
@@ -294,7 +301,7 @@ jobs:
294301
run: sudo ./.github/workflows/posix-deps-apt.sh
295302
- name: 'Restore SSL library build'
296303
id: cache-ssl-lib
297-
uses: actions/cache@v5
304+
uses: actions/cache@668228422ae6a00e4ad889ee87cd7109ec5666a7 # v5.0.4
298305
with:
299306
path: ./multissl/${{ matrix.ssllib.name }}/${{ matrix.ssllib.version }}
300307
key: ${{ matrix.os }}-multissl-${{ matrix.ssllib.name }}-${{ matrix.ssllib.version }}
@@ -336,13 +343,13 @@ jobs:
336343
matrix:
337344
include:
338345
- arch: aarch64
339-
runs-on: macos-14
346+
runs-on: macos-26
340347
- arch: x86_64
341348
runs-on: ubuntu-24.04
342349

343350
runs-on: ${{ matrix.runs-on }}
344351
steps:
345-
- uses: actions/checkout@v6
352+
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
346353
with:
347354
persist-credentials: false
348355
- name: Build and test
@@ -355,7 +362,7 @@ jobs:
355362
timeout-minutes: 60
356363
runs-on: macos-14
357364
steps:
358-
- uses: actions/checkout@v6
365+
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
359366
with:
360367
persist-credentials: false
361368

@@ -369,7 +376,13 @@ jobs:
369376
sudo xcode-select --switch /Applications/Xcode_15.4.app
370377
371378
- name: Build and test
372-
run: python3 Apple ci iOS --fast-ci --simulator 'iPhone SE (3rd generation),OS=17.5'
379+
run: python3 Platforms/Apple ci iOS --fast-ci --simulator 'iPhone SE (3rd generation),OS=17.5'
380+
381+
build-emscripten:
382+
name: 'Emscripten'
383+
needs: build-context
384+
if: needs.build-context.outputs.run-emscripten == 'true'
385+
uses: ./.github/workflows/reusable-emscripten.yml
373386

374387
build-wasi:
375388
name: 'WASI'
@@ -387,7 +400,7 @@ jobs:
387400
OPENSSL_VER: 3.5.5
388401
PYTHONSTRICTEXTENSIONBUILD: 1
389402
steps:
390-
- uses: actions/checkout@v6
403+
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
391404
with:
392405
persist-credentials: false
393406
- name: Register gcc problem matcher
@@ -401,7 +414,7 @@ jobs:
401414
echo "LD_LIBRARY_PATH=${GITHUB_WORKSPACE}/multissl/openssl/${OPENSSL_VER}/lib" >> "$GITHUB_ENV"
402415
- name: 'Restore OpenSSL build'
403416
id: cache-openssl
404-
uses: actions/cache@v5
417+
uses: actions/cache@668228422ae6a00e4ad889ee87cd7109ec5666a7 # v5.0.4
405418
with:
406419
path: ./multissl/openssl/${{ env.OPENSSL_VER }}
407420
key: ${{ runner.os }}-multissl-openssl-${{ env.OPENSSL_VER }}
@@ -448,7 +461,7 @@ jobs:
448461
./python -m venv "$VENV_LOC" && "$VENV_PYTHON" -m pip install -r "${GITHUB_WORKSPACE}/Tools/requirements-hypothesis.txt"
449462
- name: 'Restore Hypothesis database'
450463
id: cache-hypothesis-database
451-
uses: actions/cache@v5
464+
uses: actions/cache@668228422ae6a00e4ad889ee87cd7109ec5666a7 # v5.0.4
452465
with:
453466
path: ${{ env.CPYTHON_BUILDDIR }}/.hypothesis/
454467
key: hypothesis-database-${{ github.head_ref || github.run_id }}
@@ -475,7 +488,7 @@ jobs:
475488
-x test_subprocess \
476489
-x test_signal \
477490
-x test_sysconfig
478-
- uses: actions/upload-artifact@v7
491+
- uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0
479492
if: always()
480493
with:
481494
name: hypothesis-example-db
@@ -496,7 +509,7 @@ jobs:
496509
PYTHONSTRICTEXTENSIONBUILD: 1
497510
ASAN_OPTIONS: detect_leaks=0:allocator_may_return_null=1:handle_segv=0
498511
steps:
499-
- uses: actions/checkout@v6
512+
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
500513
with:
501514
persist-credentials: false
502515
- name: Runner image version
@@ -506,7 +519,7 @@ jobs:
506519
- name: Install dependencies
507520
run: sudo ./.github/workflows/posix-deps-apt.sh
508521
- name: Set up GCC-10 for ASAN
509-
uses: egor-tensin/setup-gcc@v2
522+
uses: egor-tensin/setup-gcc@a2861a8b8538f49cf2850980acccf6b05a1b2ae4 # v2.0
510523
with:
511524
version: 10
512525
- name: Configure OpenSSL env vars
@@ -516,7 +529,7 @@ jobs:
516529
echo "LD_LIBRARY_PATH=${GITHUB_WORKSPACE}/multissl/openssl/${OPENSSL_VER}/lib" >> "$GITHUB_ENV"
517530
- name: 'Restore OpenSSL build'
518531
id: cache-openssl
519-
uses: actions/cache@v5
532+
uses: actions/cache@668228422ae6a00e4ad889ee87cd7109ec5666a7 # v5.0.4
520533
with:
521534
path: ./multissl/openssl/${{ env.OPENSSL_VER }}
522535
key: ${{ matrix.os }}-multissl-openssl-${{ env.OPENSSL_VER }}
@@ -563,7 +576,7 @@ jobs:
563576
needs: build-context
564577
if: needs.build-context.outputs.run-ubuntu == 'true'
565578
steps:
566-
- uses: actions/checkout@v6
579+
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
567580
with:
568581
persist-credentials: false
569582
- name: Runner image version
@@ -650,6 +663,7 @@ jobs:
650663
- build-ubuntu
651664
- build-ubuntu-ssltests
652665
- build-ios
666+
- build-emscripten
653667
- build-wasi
654668
- test-hypothesis
655669
- build-asan
@@ -664,6 +678,7 @@ jobs:
664678
with:
665679
allowed-failures: >-
666680
build-android,
681+
build-emscripten,
667682
build-windows-msi,
668683
build-ubuntu-ssltests,
669684
test-hypothesis,
@@ -706,5 +721,6 @@ jobs:
706721
}}
707722
${{ !fromJSON(needs.build-context.outputs.run-android) && 'build-android,' || '' }}
708723
${{ !fromJSON(needs.build-context.outputs.run-ios) && 'build-ios,' || '' }}
724+
${{ !fromJSON(needs.build-context.outputs.run-emscripten) && 'build-emscripten,' || '' }}
709725
${{ !fromJSON(needs.build-context.outputs.run-wasi) && 'build-wasi,' || '' }}
710726
jobs: ${{ toJSON(needs) }}

.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: 11 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,7 @@ on:
1515
paths: *paths
1616
workflow_dispatch:
1717

18-
permissions:
19-
contents: read
18+
permissions: {}
2019

2120
concurrency:
2221
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
@@ -32,7 +31,7 @@ jobs:
3231
runs-on: ubuntu-24.04
3332
timeout-minutes: 60
3433
steps:
35-
- uses: actions/checkout@v6
34+
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
3635
with:
3736
persist-credentials: false
3837
- name: Build tier two interpreter
@@ -69,10 +68,10 @@ jobs:
6968
architecture: ARM64
7069
runner: windows-11-arm
7170
steps:
72-
- uses: actions/checkout@v6
71+
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
7372
with:
7473
persist-credentials: false
75-
- uses: actions/setup-python@v6
74+
- uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
7675
with:
7776
python-version: '3.11'
7877
# PCbuild downloads LLVM automatically:
@@ -101,12 +100,12 @@ jobs:
101100
- target: x86_64-apple-darwin/clang
102101
runner: macos-15-intel
103102
- target: aarch64-apple-darwin/clang
104-
runner: macos-14
103+
runner: macos-15
105104
steps:
106-
- uses: actions/checkout@v6
105+
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
107106
with:
108107
persist-credentials: false
109-
- uses: actions/setup-python@v6
108+
- uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
110109
with:
111110
python-version: '3.11'
112111
- name: Install LLVM
@@ -146,10 +145,10 @@ jobs:
146145
- target: aarch64-unknown-linux-gnu/gcc
147146
runner: ubuntu-24.04-arm
148147
steps:
149-
- uses: actions/checkout@v6
148+
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
150149
with:
151150
persist-credentials: false
152-
- uses: actions/setup-python@v6
151+
- uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
153152
with:
154153
python-version: '3.11'
155154
- name: Build
@@ -182,10 +181,10 @@ jobs:
182181
use_clang: true
183182
run_tests: false
184183
steps:
185-
- uses: actions/checkout@v6
184+
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
186185
with:
187186
persist-credentials: false
188-
- uses: actions/setup-python@v6
187+
- uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
189188
with:
190189
python-version: '3.11'
191190
- name: Build

.github/workflows/lint.yml

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,7 @@ name: Lint
22

33
on: [push, pull_request, workflow_dispatch]
44

5-
permissions:
6-
contents: read
5+
permissions: {}
76

87
env:
98
FORCE_COLOR: 1
@@ -19,7 +18,7 @@ jobs:
1918
timeout-minutes: 10
2019

2120
steps:
22-
- uses: actions/checkout@v6
21+
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
2322
with:
2423
persist-credentials: false
25-
- uses: j178/prek-action@v1
24+
- uses: j178/prek-action@0bb87d7f00b0c99306c8bcb8b8beba1eb581c037 # v1.1.1

0 commit comments

Comments
 (0)