Skip to content

Commit f96c8d0

Browse files
Merge branch 'main' into grapheme_cluster_break2
2 parents 365d0c1 + a471a32 commit f96c8d0

File tree

364 files changed

+12240
-5505
lines changed

Some content is hidden

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

364 files changed

+12240
-5505
lines changed

.github/CODEOWNERS

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -143,6 +143,9 @@ Misc/externals.spdx.json @sethmlarson
143143
Misc/sbom.spdx.json @sethmlarson
144144
Tools/build/generate_sbom.py @sethmlarson
145145

146+
# ABI check
147+
Misc/libabigail.abignore @encukou
148+
146149

147150
# ----------------------------------------------------------------------------
148151
# Platform Support
@@ -290,9 +293,9 @@ InternalDocs/jit.md @brandtbucher @savannahostrowski @diegorusso @AA-T
290293

291294
# Micro-op / μop / Tier 2 Optimiser
292295
Python/optimizer.c @markshannon @Fidget-Spinner
293-
Python/optimizer_analysis.c @markshannon @tomasr8 @Fidget-Spinner
294-
Python/optimizer_bytecodes.c @markshannon @tomasr8 @Fidget-Spinner
295-
Python/optimizer_symbols.c @markshannon @tomasr8 @Fidget-Spinner
296+
Python/optimizer_analysis.c @markshannon @tomasr8 @Fidget-Spinner @savannahostrowski
297+
Python/optimizer_bytecodes.c @markshannon @tomasr8 @Fidget-Spinner @savannahostrowski
298+
Python/optimizer_symbols.c @markshannon @tomasr8 @Fidget-Spinner @savannahostrowski
296299

297300
# Parser, Lexer, and Grammar
298301
Grammar/python.gram @pablogsal @lysnikolaou

.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@v7
23+
- uses: actions/github-script@v8
2424
with:
2525
# language=JavaScript
2626
script: |

.github/workflows/build.yml

Lines changed: 34 additions & 22 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@v4
67+
- uses: actions/checkout@v6
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@v4
104+
- uses: actions/checkout@v6
105105
with:
106106
persist-credentials: false
107-
- uses: actions/setup-python@v5
107+
- uses: actions/setup-python@v6
108108
with:
109109
python-version: '3.x'
110110
- name: Runner image version
@@ -142,9 +142,14 @@ jobs:
142142
- name: Check for unsupported C global variables
143143
if: github.event_name == 'pull_request' # $GITHUB_EVENT_NAME
144144
run: make check-c-globals
145-
- name: Check for undocumented C APIs
146-
run: make check-c-api-docs
147145

146+
check-c-api-docs:
147+
name: C API Docs
148+
needs: build-context
149+
if: >-
150+
needs.build-context.outputs.run-tests == 'true'
151+
|| needs.build-context.outputs.run-docs == 'true'
152+
uses: ./.github/workflows/reusable-check-c-api-docs.yml
148153

149154
build-windows:
150155
name: >-
@@ -264,7 +269,7 @@ jobs:
264269
OPENSSL_DIR: ${{ github.workspace }}/multissl/openssl/${{ matrix.openssl_ver }}
265270
LD_LIBRARY_PATH: ${{ github.workspace }}/multissl/openssl/${{ matrix.openssl_ver }}/lib
266271
steps:
267-
- uses: actions/checkout@v4
272+
- uses: actions/checkout@v6
268273
with:
269274
persist-credentials: false
270275
- name: Runner image version
@@ -280,7 +285,7 @@ jobs:
280285
echo "LD_LIBRARY_PATH=${GITHUB_WORKSPACE}/multissl/openssl/${OPENSSL_VER}/lib" >> "$GITHUB_ENV"
281286
- name: 'Restore OpenSSL build'
282287
id: cache-openssl
283-
uses: actions/cache@v4
288+
uses: actions/cache@v5
284289
with:
285290
path: ./multissl/openssl/${{ env.OPENSSL_VER }}
286291
key: ${{ matrix.os }}-multissl-openssl-${{ env.OPENSSL_VER }}
@@ -316,7 +321,7 @@ jobs:
316321
OPENSSL_DIR: ${{ github.workspace }}/multissl/aws-lc/${{ matrix.awslc_ver }}
317322
LD_LIBRARY_PATH: ${{ github.workspace }}/multissl/aws-lc/${{ matrix.awslc_ver }}/lib
318323
steps:
319-
- uses: actions/checkout@v4
324+
- uses: actions/checkout@v6
320325
with:
321326
persist-credentials: false
322327
- name: Runner image version
@@ -332,7 +337,7 @@ jobs:
332337
echo "LD_LIBRARY_PATH=${GITHUB_WORKSPACE}/multissl/aws-lc/${AWSLC_VER}/lib" >> "$GITHUB_ENV"
333338
- name: 'Restore AWS-LC build'
334339
id: cache-aws-lc
335-
uses: actions/cache@v4
340+
uses: actions/cache@v5
336341
with:
337342
path: ./multissl/aws-lc/${{ matrix.awslc_ver }}
338343
key: ${{ matrix.os }}-multissl-aws-lc-${{ matrix.awslc_ver }}
@@ -381,7 +386,7 @@ jobs:
381386

382387
runs-on: ${{ matrix.runs-on }}
383388
steps:
384-
- uses: actions/checkout@v4
389+
- uses: actions/checkout@v6
385390
with:
386391
persist-credentials: false
387392
- name: Build and test
@@ -394,7 +399,7 @@ jobs:
394399
timeout-minutes: 60
395400
runs-on: macos-14
396401
steps:
397-
- uses: actions/checkout@v4
402+
- uses: actions/checkout@v6
398403
with:
399404
persist-credentials: false
400405

@@ -426,7 +431,7 @@ jobs:
426431
OPENSSL_VER: 3.0.18
427432
PYTHONSTRICTEXTENSIONBUILD: 1
428433
steps:
429-
- uses: actions/checkout@v4
434+
- uses: actions/checkout@v6
430435
with:
431436
persist-credentials: false
432437
- name: Register gcc problem matcher
@@ -440,7 +445,7 @@ jobs:
440445
echo "LD_LIBRARY_PATH=${GITHUB_WORKSPACE}/multissl/openssl/${OPENSSL_VER}/lib" >> "$GITHUB_ENV"
441446
- name: 'Restore OpenSSL build'
442447
id: cache-openssl
443-
uses: actions/cache@v4
448+
uses: actions/cache@v5
444449
with:
445450
path: ./multissl/openssl/${{ env.OPENSSL_VER }}
446451
key: ${{ runner.os }}-multissl-openssl-${{ env.OPENSSL_VER }}
@@ -490,7 +495,7 @@ jobs:
490495
./python -m venv "$VENV_LOC" && "$VENV_PYTHON" -m pip install -r "${GITHUB_WORKSPACE}/Tools/requirements-hypothesis.txt"
491496
- name: 'Restore Hypothesis database'
492497
id: cache-hypothesis-database
493-
uses: actions/cache@v4
498+
uses: actions/cache@v5
494499
with:
495500
path: ${{ env.CPYTHON_BUILDDIR }}/.hypothesis/
496501
key: hypothesis-database-${{ github.head_ref || github.run_id }}
@@ -517,7 +522,7 @@ jobs:
517522
-x test_subprocess \
518523
-x test_signal \
519524
-x test_sysconfig
520-
- uses: actions/upload-artifact@v4
525+
- uses: actions/upload-artifact@v6
521526
if: always()
522527
with:
523528
name: hypothesis-example-db
@@ -538,7 +543,7 @@ jobs:
538543
PYTHONSTRICTEXTENSIONBUILD: 1
539544
ASAN_OPTIONS: detect_leaks=0:allocator_may_return_null=1:handle_segv=0
540545
steps:
541-
- uses: actions/checkout@v4
546+
- uses: actions/checkout@v6
542547
with:
543548
persist-credentials: false
544549
- name: Runner image version
@@ -548,7 +553,7 @@ jobs:
548553
- name: Install dependencies
549554
run: sudo ./.github/workflows/posix-deps-apt.sh
550555
- name: Set up GCC-10 for ASAN
551-
uses: egor-tensin/setup-gcc@v1
556+
uses: egor-tensin/setup-gcc@v2
552557
with:
553558
version: 10
554559
- name: Configure OpenSSL env vars
@@ -558,7 +563,7 @@ jobs:
558563
echo "LD_LIBRARY_PATH=${GITHUB_WORKSPACE}/multissl/openssl/${OPENSSL_VER}/lib" >> "$GITHUB_ENV"
559564
- name: 'Restore OpenSSL build'
560565
id: cache-openssl
561-
uses: actions/cache@v4
566+
uses: actions/cache@v5
562567
with:
563568
path: ./multissl/openssl/${{ env.OPENSSL_VER }}
564569
key: ${{ matrix.os }}-multissl-openssl-${{ env.OPENSSL_VER }}
@@ -608,7 +613,7 @@ jobs:
608613
needs: build-context
609614
if: needs.build-context.outputs.run-ubuntu == 'true'
610615
steps:
611-
- uses: actions/checkout@v4
616+
- uses: actions/checkout@v6
612617
with:
613618
persist-credentials: false
614619
- name: Runner image version
@@ -665,13 +670,13 @@ jobs:
665670
sanitizer: ${{ matrix.sanitizer }}
666671
- name: Upload crash
667672
if: failure() && steps.build.outcome == 'success'
668-
uses: actions/upload-artifact@v4
673+
uses: actions/upload-artifact@v6
669674
with:
670675
name: ${{ matrix.sanitizer }}-artifacts
671676
path: ./out/artifacts
672677
- name: Upload SARIF
673678
if: always() && steps.build.outcome == 'success'
674-
uses: github/codeql-action/upload-sarif@v3
679+
uses: github/codeql-action/upload-sarif@v4
675680
with:
676681
sarif_file: cifuzz-sarif/results.sarif
677682
checkout_path: cifuzz-sarif
@@ -685,13 +690,13 @@ jobs:
685690
- check-docs
686691
- check-autoconf-regen
687692
- check-generated-files
693+
- check-c-api-docs
688694
- build-windows
689695
- build-windows-msi
690696
- build-macos
691697
- build-ubuntu
692698
- build-ubuntu-ssltests-awslc
693699
- build-ubuntu-ssltests-openssl
694-
- build-android
695700
- build-ios
696701
- build-wasi
697702
- test-hypothesis
@@ -706,6 +711,7 @@ jobs:
706711
uses: re-actors/alls-green@05ac9388f0aebcb5727afa17fcccfecd6f8ec5fe
707712
with:
708713
allowed-failures: >-
714+
build-android,
709715
build-windows-msi,
710716
build-ubuntu-ssltests-awslc,
711717
build-ubuntu-ssltests-openssl,
@@ -721,6 +727,12 @@ jobs:
721727
'
722728
|| ''
723729
}}
730+
${{
731+
!fromJSON(needs.build-context.outputs.run-tests)
732+
&& !fromJSON(needs.build-context.outputs.run-docs)
733+
&& 'check-c-api-docs,'
734+
|| ''
735+
}}
724736
${{ !fromJSON(needs.build-context.outputs.run-windows-tests) && 'build-windows,' || '' }}
725737
${{ !fromJSON(needs.build-context.outputs.run-ci-fuzz) && 'cifuzz,' || '' }}
726738
${{ !fromJSON(needs.build-context.outputs.run-macos) && 'build-macos,' || '' }}

.github/workflows/jit.yml

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ jobs:
3838
runs-on: ubuntu-24.04
3939
timeout-minutes: 90
4040
steps:
41-
- uses: actions/checkout@v4
41+
- uses: actions/checkout@v6
4242
with:
4343
persist-credentials: false
4444
- name: Build tier two interpreter
@@ -92,10 +92,10 @@ jobs:
9292
architecture: aarch64
9393
runner: ubuntu-24.04-arm
9494
steps:
95-
- uses: actions/checkout@v4
95+
- uses: actions/checkout@v6
9696
with:
9797
persist-credentials: false
98-
- uses: actions/setup-python@v5
98+
- uses: actions/setup-python@v6
9999
with:
100100
python-version: '3.11'
101101

@@ -140,10 +140,10 @@ jobs:
140140
llvm:
141141
- 21
142142
steps:
143-
- uses: actions/checkout@v4
143+
- uses: actions/checkout@v6
144144
with:
145145
persist-credentials: false
146-
- uses: actions/setup-python@v5
146+
- uses: actions/setup-python@v6
147147
with:
148148
python-version: '3.11'
149149
- name: Build with JIT enabled and GIL disabled
@@ -168,10 +168,10 @@ jobs:
168168
llvm:
169169
- 21
170170
steps:
171-
- uses: actions/checkout@v4
171+
- uses: actions/checkout@v6
172172
with:
173173
persist-credentials: false
174-
- uses: actions/setup-python@v5
174+
- uses: actions/setup-python@v6
175175
with:
176176
python-version: '3.11'
177177
- name: Build with JIT
@@ -195,10 +195,10 @@ jobs:
195195
llvm:
196196
- 21
197197
steps:
198-
- uses: actions/checkout@v4
198+
- uses: actions/checkout@v6
199199
with:
200200
persist-credentials: false
201-
- uses: actions/setup-python@v5
201+
- uses: actions/setup-python@v6
202202
with:
203203
python-version: '3.11'
204204
- name: Build with JIT and tailcall

.github/workflows/lint.yml

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

2121
steps:
22-
- uses: actions/checkout@v4
22+
- uses: actions/checkout@v6
2323
with:
2424
persist-credentials: false
25-
- uses: actions/setup-python@v5
26-
with:
27-
python-version: "3.x"
28-
- uses: pre-commit/action@v3.0.1
25+
- uses: j178/prek-action@v1

.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@v4
68+
- uses: actions/checkout@v6
6969
with:
7070
persist-credentials: false
71-
- uses: actions/setup-python@v5
71+
- uses: actions/setup-python@v6
7272
with:
7373
python-version: "3.13"
7474
cache: pip

.github/workflows/new-bugs-announce-notifier.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,12 +13,12 @@ jobs:
1313
runs-on: ubuntu-latest
1414
timeout-minutes: 10
1515
steps:
16-
- uses: actions/setup-node@v4
16+
- uses: actions/setup-node@v6
1717
with:
1818
node-version: 20
1919
- run: npm install mailgun.js form-data
2020
- name: Send notification
21-
uses: actions/github-script@v7
21+
uses: actions/github-script@v8
2222
env:
2323
MAILGUN_API_KEY: ${{ secrets.MAILGUN_PYTHON_ORG_MAILGUN_KEY }}
2424
with:
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@v4
19+
with:
20+
persist-credentials: false
21+
- uses: actions/setup-python@v5
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-context.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -66,14 +66,14 @@ jobs:
6666
run-windows-tests: ${{ steps.changes.outputs.run-windows-tests }}
6767
steps:
6868
- name: Set up Python
69-
uses: actions/setup-python@v5
69+
uses: actions/setup-python@v6
7070
with:
7171
python-version: "3"
7272

7373
- run: >-
7474
echo '${{ github.event_name }}'
7575
76-
- uses: actions/checkout@v4
76+
- uses: actions/checkout@v6
7777
with:
7878
persist-credentials: false
7979
ref: >-

0 commit comments

Comments
 (0)