Skip to content

Commit 13cfc68

Browse files
authored
Merge branch '3.13' into patch-1
2 parents faf4a70 + 390337b commit 13cfc68

866 files changed

Lines changed: 33000 additions & 8824 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.

.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]

.github/CODEOWNERS

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -171,7 +171,7 @@ Lib/ast.py @isidentical
171171
**/*multiprocessing* @gpshead
172172

173173
# SQLite 3
174-
**/*sqlite* @berkerpeksag @erlend-aasland
174+
**/*sqlite* @erlend-aasland
175175

176176
# subprocess
177177
/Lib/subprocess.py @gpshead

.github/workflows/build.yml

Lines changed: 22 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -185,9 +185,14 @@ jobs:
185185
- name: Check for unsupported C global variables
186186
if: github.event_name == 'pull_request' # $GITHUB_EVENT_NAME
187187
run: make check-c-globals
188-
- name: Check for undocumented C APIs
189-
run: make check-c-api-docs
190188

189+
check-c-api-docs:
190+
name: C API Docs
191+
needs: build-context
192+
if: >-
193+
needs.build-context.outputs.run-tests == 'true'
194+
|| needs.build-context.outputs.run-docs == 'true'
195+
uses: ./.github/workflows/reusable-check-c-api-docs.yml
191196

192197
build-windows:
193198
name: >-
@@ -246,16 +251,16 @@ jobs:
246251
strategy:
247252
fail-fast: false
248253
matrix:
249-
# macos-26 is Apple Silicon, macos-15-intel is Intel.
250-
# macos-15-intel only runs tests against the GIL-enabled CPython.
254+
# macos-26 is Apple Silicon, macos-26-intel is Intel.
255+
# macos-26-intel only runs tests against the GIL-enabled CPython.
251256
os:
252257
- macos-26
253-
- macos-15-intel
258+
- macos-26-intel
254259
free-threading:
255260
- false
256261
- true
257262
exclude:
258-
- os: macos-15-intel
263+
- os: macos-26-intel
259264
free-threading: true
260265
uses: ./.github/workflows/reusable-macos.yml
261266
with:
@@ -291,7 +296,7 @@ jobs:
291296
# Keep 1.1.1w in our list despite it being upstream EOL and otherwise
292297
# unsupported as it most resembles other 1.1.1-work-a-like ssl APIs
293298
# supported by important vendors such as AWS-LC.
294-
openssl_ver: [1.1.1w, 3.0.19, 3.3.6, 3.4.4, 3.5.5, 3.6.1]
299+
openssl_ver: [1.1.1w, 3.0.21, 3.4.6, 3.5.7, 3.6.3]
295300
# See Tools/ssl/make_ssl_data.py for notes on adding a new version
296301
env:
297302
OPENSSL_VER: ${{ matrix.openssl_ver }}
@@ -351,7 +356,7 @@ jobs:
351356
with:
352357
persist-credentials: false
353358
- name: Build and test
354-
run: ./Android/android.py ci --fast-ci ${{ matrix.arch }}-linux-android
359+
run: JAVA_HOME="${JAVA_HOME_21_X64:-$JAVA_HOME_21_arm64}" ./Android/android.py ci --fast-ci ${{ matrix.arch }}-linux-android
355360

356361
build-wasi:
357362
name: 'WASI'
@@ -366,7 +371,7 @@ jobs:
366371
needs: build-context
367372
if: needs.build-context.outputs.run-ubuntu == 'true'
368373
env:
369-
OPENSSL_VER: 3.0.18
374+
OPENSSL_VER: 3.0.21
370375
PYTHONSTRICTEXTENSIONBUILD: 1
371376
steps:
372377
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
@@ -473,7 +478,7 @@ jobs:
473478
matrix:
474479
os: [ubuntu-24.04]
475480
env:
476-
OPENSSL_VER: 3.0.18
481+
OPENSSL_VER: 3.0.21
477482
PYTHONSTRICTEXTENSIONBUILD: 1
478483
ASAN_OPTIONS: detect_leaks=0:allocator_may_return_null=1:handle_segv=0
479484
steps:
@@ -486,10 +491,6 @@ jobs:
486491
run: echo "::add-matcher::.github/problem-matchers/gcc.json"
487492
- name: Install dependencies
488493
run: sudo ./.github/workflows/posix-deps-apt.sh
489-
- name: Set up GCC-10 for ASAN
490-
uses: egor-tensin/setup-gcc@a2861a8b8538f49cf2850980acccf6b05a1b2ae4 # v2.0
491-
with:
492-
version: 10
493494
- name: Configure OpenSSL env vars
494495
run: |
495496
echo "MULTISSL_DIR=${GITHUB_WORKSPACE}/multissl" >> "$GITHUB_ENV"
@@ -586,6 +587,7 @@ jobs:
586587
- check-docs
587588
- check-autoconf-regen
588589
- check-generated-files
590+
- check-c-api-docs
589591
- build-windows
590592
- build-windows-msi
591593
- build-macos
@@ -618,6 +620,12 @@ jobs:
618620
'
619621
|| ''
620622
}}
623+
${{
624+
!fromJSON(needs.build-context.outputs.run-tests)
625+
&& !fromJSON(needs.build-context.outputs.run-docs)
626+
&& 'check-c-api-docs,'
627+
|| ''
628+
}}
621629
${{ !fromJSON(needs.build-context.outputs.run-windows-tests) && 'build-windows,' || '' }}
622630
${{
623631
!fromJSON(needs.build-context.outputs.run-ci-fuzz)

.github/workflows/documentation-links.yml

Lines changed: 0 additions & 28 deletions
This file was deleted.

.github/workflows/jit.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ jobs:
8282
compiler: msvc
8383
- target: x86_64-apple-darwin/clang
8484
architecture: x86_64
85-
runner: macos-15-intel
85+
runner: macos-26-intel
8686
compiler: clang
8787
- target: aarch64-apple-darwin/clang
8888
architecture: aarch64

.github/workflows/mypy.yml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -65,11 +65,11 @@ jobs:
6565
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
6666
with:
6767
persist-credentials: false
68-
- uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
68+
- uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0
6969
with:
7070
python-version: "3.13"
71-
cache: pip
72-
cache-dependency-path: Tools/requirements-dev.txt
73-
- run: pip install -r Tools/requirements-dev.txt
71+
activate-environment: true
72+
cache-dependency-glob: Tools/requirements-dev.txt
73+
- run: uv pip install -r Tools/requirements-dev.txt
7474
- run: python3 Misc/mypy/make_symlinks.py --symlink
75-
- run: mypy --config-file ${{ matrix.target }}/mypy.ini
75+
- run: mypy --num-workers 4 --config-file ${{ matrix.target }}/mypy.ini
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
name: Reusable C API Docs Check
2+
3+
on:
4+
workflow_call:
5+
6+
permissions:
7+
contents: read
8+
9+
env:
10+
FORCE_COLOR: 1
11+
12+
jobs:
13+
check-c-api-docs:
14+
name: 'Check if all C APIs are documented'
15+
runs-on: ubuntu-latest
16+
timeout-minutes: 5
17+
steps:
18+
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
19+
with:
20+
persist-credentials: false
21+
- uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
22+
with:
23+
python-version: '3.x'
24+
- name: Check for undocumented C APIs
25+
run: python Tools/check-c-api-docs/main.py

.github/workflows/reusable-docs.yml

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,17 @@ name: Reusable Docs
33
on:
44
workflow_call:
55
workflow_dispatch:
6+
# Pushes to CPython branches seed the pip caches under the exact keys every
7+
# docs PR restores from. Without a branch-scoped copy, each PR saves a
8+
# duplicate into its own refs/pull/N/merge scope that nothing else can read.
9+
push:
10+
branches:
11+
- main
12+
- '3.*'
13+
paths:
14+
- 'Doc/pylock.toml'
15+
- 'Doc/requirements.txt'
16+
- '.github/workflows/reusable-docs.yml'
617

718
permissions:
819
contents: read

.github/workflows/reusable-macos.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ jobs:
3838
run: echo "IMAGE_OS_VERSION=${ImageOS}-${ImageVersion}" >> "$GITHUB_ENV"
3939
- name: Install Homebrew dependencies
4040
run: |
41-
brew install pkg-config openssl@3.0 xz gdbm tcl-tk@8
41+
brew bundle --file=Misc/Brewfile
4242
# Because alternate versions are not symlinked into place by default:
4343
brew link --overwrite tcl-tk@8
4444
- name: Configure CPython

.github/workflows/reusable-san.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ jobs:
8686
run: >-
8787
./python -m test
8888
${{ inputs.sanitizer == 'TSan' && '--tsan' || '' }}
89-
-j4
89+
-j4 -W
9090
- name: Display logs
9191
if: always()
9292
run: find "${GITHUB_WORKSPACE}" -name 'san_log.*' | xargs head -n 1000

0 commit comments

Comments
 (0)