Skip to content

Commit ed232a2

Browse files
authored
Merge branch 'main' into gh-94632-docs-subprocess-user-groups
2 parents 8966d85 + 77fc2f5 commit ed232a2

File tree

515 files changed

+16562
-4608
lines changed

Some content is hidden

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

515 files changed

+16562
-4608
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/actionlint.yaml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,8 @@
1+
self-hosted-runner:
2+
# Pending release of actionlint > 1.7.11 for macos-26-intel support
3+
# https://github.com/rhysd/actionlint/pull/629
4+
labels: ["macos-26-intel"]
5+
16
config-variables: null
27

38
paths:

.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: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ jobs:
2020
issues: write
2121
timeout-minutes: 5
2222
steps:
23-
- uses: actions/github-script@v8
23+
- uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8.0.0
2424
with:
2525
# language=JavaScript
2626
script: |

.github/workflows/build.yml

Lines changed: 36 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
@@ -283,7 +291,7 @@ jobs:
283291
SSLLIB_DIR: ${{ github.workspace }}/multissl/${{ matrix.ssllib.name }}/${{ matrix.ssllib.version }}
284292
LD_LIBRARY_PATH: ${{ github.workspace }}/multissl/${{ matrix.ssllib.name }}/${{ matrix.ssllib.version }}/lib
285293
steps:
286-
- uses: actions/checkout@v6
294+
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
287295
with:
288296
persist-credentials: false
289297
- name: Runner image version
@@ -294,7 +302,7 @@ jobs:
294302
run: sudo ./.github/workflows/posix-deps-apt.sh
295303
- name: 'Restore SSL library build'
296304
id: cache-ssl-lib
297-
uses: actions/cache@v5
305+
uses: actions/cache@668228422ae6a00e4ad889ee87cd7109ec5666a7 # v5.0.4
298306
with:
299307
path: ./multissl/${{ matrix.ssllib.name }}/${{ matrix.ssllib.version }}
300308
key: ${{ matrix.os }}-multissl-${{ matrix.ssllib.name }}-${{ matrix.ssllib.version }}
@@ -336,13 +344,13 @@ jobs:
336344
matrix:
337345
include:
338346
- arch: aarch64
339-
runs-on: macos-14
347+
runs-on: macos-26
340348
- arch: x86_64
341349
runs-on: ubuntu-24.04
342350

343351
runs-on: ${{ matrix.runs-on }}
344352
steps:
345-
- uses: actions/checkout@v6
353+
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
346354
with:
347355
persist-credentials: false
348356
- name: Build and test
@@ -355,7 +363,7 @@ jobs:
355363
timeout-minutes: 60
356364
runs-on: macos-14
357365
steps:
358-
- uses: actions/checkout@v6
366+
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
359367
with:
360368
persist-credentials: false
361369

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

374388
build-wasi:
375389
name: 'WASI'
@@ -387,7 +401,7 @@ jobs:
387401
OPENSSL_VER: 3.5.5
388402
PYTHONSTRICTEXTENSIONBUILD: 1
389403
steps:
390-
- uses: actions/checkout@v6
404+
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
391405
with:
392406
persist-credentials: false
393407
- name: Register gcc problem matcher
@@ -401,7 +415,7 @@ jobs:
401415
echo "LD_LIBRARY_PATH=${GITHUB_WORKSPACE}/multissl/openssl/${OPENSSL_VER}/lib" >> "$GITHUB_ENV"
402416
- name: 'Restore OpenSSL build'
403417
id: cache-openssl
404-
uses: actions/cache@v5
418+
uses: actions/cache@668228422ae6a00e4ad889ee87cd7109ec5666a7 # v5.0.4
405419
with:
406420
path: ./multissl/openssl/${{ env.OPENSSL_VER }}
407421
key: ${{ runner.os }}-multissl-openssl-${{ env.OPENSSL_VER }}
@@ -448,7 +462,7 @@ jobs:
448462
./python -m venv "$VENV_LOC" && "$VENV_PYTHON" -m pip install -r "${GITHUB_WORKSPACE}/Tools/requirements-hypothesis.txt"
449463
- name: 'Restore Hypothesis database'
450464
id: cache-hypothesis-database
451-
uses: actions/cache@v5
465+
uses: actions/cache@668228422ae6a00e4ad889ee87cd7109ec5666a7 # v5.0.4
452466
with:
453467
path: ${{ env.CPYTHON_BUILDDIR }}/.hypothesis/
454468
key: hypothesis-database-${{ github.head_ref || github.run_id }}
@@ -475,7 +489,7 @@ jobs:
475489
-x test_subprocess \
476490
-x test_signal \
477491
-x test_sysconfig
478-
- uses: actions/upload-artifact@v7
492+
- uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0
479493
if: always()
480494
with:
481495
name: hypothesis-example-db
@@ -496,7 +510,7 @@ jobs:
496510
PYTHONSTRICTEXTENSIONBUILD: 1
497511
ASAN_OPTIONS: detect_leaks=0:allocator_may_return_null=1:handle_segv=0
498512
steps:
499-
- uses: actions/checkout@v6
513+
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
500514
with:
501515
persist-credentials: false
502516
- name: Runner image version
@@ -506,7 +520,7 @@ jobs:
506520
- name: Install dependencies
507521
run: sudo ./.github/workflows/posix-deps-apt.sh
508522
- name: Set up GCC-10 for ASAN
509-
uses: egor-tensin/setup-gcc@v2
523+
uses: egor-tensin/setup-gcc@a2861a8b8538f49cf2850980acccf6b05a1b2ae4 # v2.0
510524
with:
511525
version: 10
512526
- name: Configure OpenSSL env vars
@@ -516,7 +530,7 @@ jobs:
516530
echo "LD_LIBRARY_PATH=${GITHUB_WORKSPACE}/multissl/openssl/${OPENSSL_VER}/lib" >> "$GITHUB_ENV"
517531
- name: 'Restore OpenSSL build'
518532
id: cache-openssl
519-
uses: actions/cache@v5
533+
uses: actions/cache@668228422ae6a00e4ad889ee87cd7109ec5666a7 # v5.0.4
520534
with:
521535
path: ./multissl/openssl/${{ env.OPENSSL_VER }}
522536
key: ${{ matrix.os }}-multissl-openssl-${{ env.OPENSSL_VER }}
@@ -563,7 +577,7 @@ jobs:
563577
needs: build-context
564578
if: needs.build-context.outputs.run-ubuntu == 'true'
565579
steps:
566-
- uses: actions/checkout@v6
580+
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
567581
with:
568582
persist-credentials: false
569583
- name: Runner image version
@@ -650,6 +664,7 @@ jobs:
650664
- build-ubuntu
651665
- build-ubuntu-ssltests
652666
- build-ios
667+
- build-emscripten
653668
- build-wasi
654669
- test-hypothesis
655670
- build-asan
@@ -664,6 +679,7 @@ jobs:
664679
with:
665680
allowed-failures: >-
666681
build-android,
682+
build-emscripten,
667683
build-windows-msi,
668684
build-ubuntu-ssltests,
669685
test-hypothesis,
@@ -706,5 +722,6 @@ jobs:
706722
}}
707723
${{ !fromJSON(needs.build-context.outputs.run-android) && 'build-android,' || '' }}
708724
${{ !fromJSON(needs.build-context.outputs.run-ios) && 'build-ios,' || '' }}
725+
${{ !fromJSON(needs.build-context.outputs.run-emscripten) && 'build-emscripten,' || '' }}
709726
${{ !fromJSON(needs.build-context.outputs.run-wasi) && 'build-wasi,' || '' }}
710727
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 & 11 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:
@@ -99,14 +99,14 @@ jobs:
9999
- false
100100
include:
101101
- target: x86_64-apple-darwin/clang
102-
runner: macos-15-intel
102+
runner: macos-26-intel
103103
- target: aarch64-apple-darwin/clang
104-
runner: macos-14
104+
runner: macos-26
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

.github/workflows/mypy.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -65,10 +65,10 @@ jobs:
6565
"Tools/peg_generator",
6666
]
6767
steps:
68-
- uses: actions/checkout@v6
68+
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
6969
with:
7070
persist-credentials: false
71-
- uses: actions/setup-python@v6
71+
- uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
7272
with:
7373
python-version: "3.13"
7474
cache: pip

0 commit comments

Comments
 (0)