Skip to content

Commit 1da63a8

Browse files
committed
Merge branch 'main' into gh-60492
2 parents c923c0a + 5d6861a commit 1da63a8

File tree

1,999 files changed

+114154
-48771
lines changed

Some content is hidden

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

1,999 files changed

+114154
-48771
lines changed

.devcontainer/Dockerfile

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
1-
FROM docker.io/library/fedora:37
1+
FROM docker.io/library/fedora:40
22

33
ENV CC=clang
44

55
ENV WASI_SDK_VERSION=21
66
ENV WASI_SDK_PATH=/opt/wasi-sdk
77

88
ENV WASMTIME_HOME=/opt/wasmtime
9-
ENV WASMTIME_VERSION=18.0.3
9+
ENV WASMTIME_VERSION=22.0.0
1010
ENV WASMTIME_CPU_ARCH=x86_64
1111

1212
RUN dnf -y --nodocs --setopt=install_weak_deps=False install /usr/bin/{blurb,clang,curl,git,ln,tar,xz} 'dnf-command(builddep)' && \

.github/CODEOWNERS

Lines changed: 35 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@
1313

1414
# Build system
1515
configure* @erlend-aasland @corona10
16+
Makefile.pre.in @erlend-aasland
17+
Modules/Setup* @erlend-aasland
1618

1719
# asyncio
1820
**/*asyncio* @1st1 @asvetlov @gvanrossum @kumaraditya303 @willingc
@@ -29,19 +31,23 @@ Objects/type* @markshannon
2931
Objects/codeobject.c @markshannon
3032
Objects/frameobject.c @markshannon
3133
Objects/call.c @markshannon
32-
Python/ceval*.c @markshannon @gvanrossum
33-
Python/ceval*.h @markshannon @gvanrossum
34+
Python/ceval*.c @markshannon
35+
Python/ceval*.h @markshannon
3436
Python/compile.c @markshannon @iritkatriel
3537
Python/assemble.c @markshannon @iritkatriel
3638
Python/flowgraph.c @markshannon @iritkatriel
39+
Python/instruction_sequence.c @iritkatriel
3740
Python/ast_opt.c @isidentical
38-
Python/bytecodes.c @markshannon @gvanrossum
39-
Python/optimizer*.c @markshannon @gvanrossum
41+
Python/bytecodes.c @markshannon
42+
Python/optimizer*.c @markshannon
4043
Python/optimizer_analysis.c @Fidget-Spinner
4144
Python/optimizer_bytecodes.c @Fidget-Spinner
45+
Python/symtable.c @JelleZijlstra @carljm
46+
Lib/_pyrepl/* @pablogsal @lysnikolaou @ambv
4247
Lib/test/test_patma.py @brandtbucher
4348
Lib/test/test_type_*.py @JelleZijlstra
44-
Lib/test/test_capi/test_misc.py @markshannon @gvanrossum
49+
Lib/test/test_capi/test_misc.py @markshannon
50+
Lib/test/test_pyrepl/* @pablogsal @lysnikolaou @ambv
4551
Tools/c-analyzer/ @ericsnowcurrently
4652

4753
# dbm
@@ -66,17 +72,15 @@ Include/internal/pycore_freelist.h @ericsnowcurrently
6672
Include/internal/pycore_global_objects.h @ericsnowcurrently
6773
Include/internal/pycore_obmalloc.h @ericsnowcurrently
6874
Include/internal/pycore_pymem.h @ericsnowcurrently
75+
Include/internal/pycore_stackref.h @Fidget-Spinner
6976
Modules/main.c @ericsnowcurrently
7077
Programs/_bootstrap_python.c @ericsnowcurrently
7178
Programs/python.c @ericsnowcurrently
7279
Tools/build/generate_global_objects.py @ericsnowcurrently
7380

7481
# Exceptions
75-
Lib/traceback.py @iritkatriel
7682
Lib/test/test_except*.py @iritkatriel
77-
Lib/test/test_traceback.py @iritkatriel
7883
Objects/exceptions.c @iritkatriel
79-
Python/traceback.c @iritkatriel
8084

8185
# Hashing
8286
**/*hashlib* @gpshead @tiran
@@ -150,13 +154,13 @@ Include/internal/pycore_time.h @pganssle @abalkin
150154
/Lib/test/test_tokenize.py @pablogsal @lysnikolaou
151155

152156
# Code generator
153-
/Tools/cases_generator/ @gvanrossum
157+
/Tools/cases_generator/ @markshannon
154158

155159
# AST
156-
Python/ast.c @isidentical
157-
Parser/asdl.py @isidentical
158-
Parser/asdl_c.py @isidentical
159-
Lib/ast.py @isidentical
160+
Python/ast.c @isidentical @JelleZijlstra
161+
Parser/asdl.py @isidentical @JelleZijlstra
162+
Parser/asdl_c.py @isidentical @JelleZijlstra
163+
Lib/ast.py @isidentical @JelleZijlstra
160164

161165
# Mock
162166
/Lib/unittest/mock.py @cjw296
@@ -173,6 +177,10 @@ Lib/ast.py @isidentical
173177
/Lib/test/test_subprocess.py @gpshead
174178
/Modules/*subprocess* @gpshead
175179

180+
# debugger
181+
**/*pdb* @gaogaotiantian
182+
**/*bdb* @gaogaotiantian
183+
176184
# Limited C API & stable ABI
177185
Tools/build/stable_abi.py @encukou
178186
Misc/stable_abi.toml @encukou
@@ -194,7 +202,6 @@ Doc/c-api/stable.rst @encukou
194202
**/*itertools* @rhettinger
195203
**/*collections* @rhettinger
196204
**/*random* @rhettinger
197-
**/*queue* @rhettinger
198205
**/*bisect* @rhettinger
199206
**/*heapq* @rhettinger
200207
**/*functools* @rhettinger
@@ -205,6 +212,7 @@ Doc/c-api/stable.rst @encukou
205212
**/*ensurepip* @pfmoore @pradyunsg
206213

207214
**/*idlelib* @terryjreedy
215+
/Doc/library/idle.rst @terryjreedy
208216

209217
**/*typing* @JelleZijlstra @AlexWaygood
210218

@@ -240,9 +248,21 @@ Doc/howto/clinic.rst @erlend-aasland
240248
**/*interpreteridobject.* @ericsnowcurrently
241249
**/*crossinterp* @ericsnowcurrently
242250
Lib/test/support/interpreters/ @ericsnowcurrently
243-
Modules/_xx*interp*module.c @ericsnowcurrently
251+
Modules/_interp*module.c @ericsnowcurrently
244252
Lib/test/test_interpreters/ @ericsnowcurrently
245253

254+
# Android
255+
**/*Android* @mhsmith
256+
**/*android* @mhsmith
257+
258+
# iOS (but not termios)
259+
**/iOS* @freakboy3742
260+
**/ios* @freakboy3742
261+
**/*_iOS* @freakboy3742
262+
**/*_ios* @freakboy3742
263+
**/*-iOS* @freakboy3742
264+
**/*-ios* @freakboy3742
265+
246266
# WebAssembly
247267
/Tools/wasm/ @brettcannon
248268

.github/workflows/build.yml

Lines changed: 21 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -8,19 +8,11 @@ on:
88
push:
99
branches:
1010
- 'main'
11-
- '3.12'
12-
- '3.11'
13-
- '3.10'
14-
- '3.9'
15-
- '3.8'
11+
- '3.*'
1612
pull_request:
1713
branches:
1814
- 'main'
19-
- '3.12'
20-
- '3.11'
21-
- '3.10'
22-
- '3.9'
23-
- '3.8'
15+
- '3.*'
2416

2517
permissions:
2618
contents: read
@@ -62,7 +54,7 @@ jobs:
6254
# into the PR branch anyway.
6355
#
6456
# https://github.com/python/core-workflow/issues/373
65-
git diff --name-only origin/$GITHUB_BASE_REF.. | grep -qvE '(\.rst$|^Doc|^Misc|^\.pre-commit-config\.yaml$|\.ruff\.toml$)' && echo "run_tests=true" >> $GITHUB_OUTPUT || true
57+
git diff --name-only origin/$GITHUB_BASE_REF.. | grep -qvE '(\.rst$|^Doc|^Misc|^\.pre-commit-config\.yaml$|\.ruff\.toml$|\.md$|mypy\.ini$)' && echo "run_tests=true" >> $GITHUB_OUTPUT || true
6658
fi
6759
6860
# Check if we should run hypothesis tests
@@ -137,6 +129,7 @@ jobs:
137129
uses: actions/cache@v4
138130
with:
139131
path: config.cache
132+
# Include env.pythonLocation in key to avoid changes in environment when setup-python updates Python
140133
key: ${{ github.job }}-${{ runner.os }}-${{ env.IMAGE_VERSION }}-${{ needs.check_source.outputs.config_hash }}-${{ env.pythonLocation }}
141134
- name: Install Dependencies
142135
run: sudo ./.github/workflows/posix-deps-apt.sh
@@ -206,8 +199,9 @@ jobs:
206199
uses: ./.github/workflows/reusable-macos.yml
207200
with:
208201
config_hash: ${{ needs.check_source.outputs.config_hash }}
209-
# macos-14 is M1, macos-13 is Intel
210-
os-matrix: '["macos-14", "macos-13"]'
202+
# Cirrus and macos-14 are M1, macos-13 is default GHA Intel.
203+
# Cirrus used for upstream, macos-14 for forks.
204+
os-matrix: '["ghcr.io/cirruslabs/macos-runner:sonoma", "macos-14", "macos-13"]'
211205

212206
build_macos_free_threading:
213207
name: 'macOS (free-threading)'
@@ -217,8 +211,9 @@ jobs:
217211
with:
218212
config_hash: ${{ needs.check_source.outputs.config_hash }}
219213
free-threading: true
220-
# macos-14 is M1
221-
os-matrix: '["macos-14"]'
214+
# Cirrus and macos-14 are M1.
215+
# Cirrus used for upstream, macos-14 for forks.
216+
os-matrix: '["ghcr.io/cirruslabs/macos-runner:sonoma", "macos-14"]'
222217

223218
build_ubuntu:
224219
name: 'Ubuntu'
@@ -249,7 +244,7 @@ jobs:
249244
250245
build_ubuntu_ssltests:
251246
name: 'Ubuntu SSL tests with OpenSSL'
252-
runs-on: ubuntu-20.04
247+
runs-on: ubuntu-22.04
253248
timeout-minutes: 60
254249
needs: check_source
255250
if: needs.check_source.outputs.run_tests == 'true'
@@ -315,7 +310,7 @@ jobs:
315310

316311
test_hypothesis:
317312
name: "Hypothesis tests on Ubuntu"
318-
runs-on: ubuntu-20.04
313+
runs-on: ubuntu-22.04
319314
timeout-minutes: 60
320315
needs: check_source
321316
if: needs.check_source.outputs.run_tests == 'true' && needs.check_source.outputs.run_hypothesis == 'true'
@@ -395,10 +390,10 @@ jobs:
395390
id: cache-hypothesis-database
396391
uses: actions/cache@v4
397392
with:
398-
path: ./hypothesis
393+
path: ${{ env.CPYTHON_BUILDDIR }}/.hypothesis/
399394
key: hypothesis-database-${{ github.head_ref || github.run_id }}
400395
restore-keys: |
401-
- hypothesis-database-
396+
hypothesis-database-
402397
- name: "Run tests"
403398
working-directory: ${{ env.CPYTHON_BUILDDIR }}
404399
run: |
@@ -423,12 +418,12 @@ jobs:
423418
if: always()
424419
with:
425420
name: hypothesis-example-db
426-
path: .hypothesis/examples/
421+
path: ${{ env.CPYTHON_BUILDDIR }}/.hypothesis/examples/
427422

428423

429424
build_asan:
430425
name: 'Address sanitizer'
431-
runs-on: ubuntu-20.04
426+
runs-on: ubuntu-22.04
432427
timeout-minutes: 60
433428
needs: check_source
434429
if: needs.check_source.outputs.run_tests == 'true'
@@ -492,6 +487,8 @@ jobs:
492487
with:
493488
config_hash: ${{ needs.check_source.outputs.config_hash }}
494489
options: ./configure --config-cache --with-thread-sanitizer --with-pydebug
490+
suppressions_path: Tools/tsan/supressions.txt
491+
tsan_logs_artifact_name: tsan-logs-default
495492

496493
build_tsan_free_threading:
497494
name: 'Thread sanitizer (free-threading)'
@@ -501,6 +498,8 @@ jobs:
501498
with:
502499
config_hash: ${{ needs.check_source.outputs.config_hash }}
503500
options: ./configure --config-cache --disable-gil --with-thread-sanitizer --with-pydebug
501+
suppressions_path: Tools/tsan/suppressions_free_threading.txt
502+
tsan_logs_artifact_name: tsan-logs-free-threading
504503

505504
# CIFuzz job based on https://google.github.io/oss-fuzz/getting-started/continuous-integration/
506505
cifuzz:
@@ -514,8 +513,7 @@ jobs:
514513
strategy:
515514
fail-fast: false
516515
matrix:
517-
# sanitizer: [address, undefined, memory] -- memory skipped temporarily until GH-116886 is solved.
518-
sanitizer: [address, undefined]
516+
sanitizer: [address, undefined, memory]
519517
steps:
520518
- name: Build fuzzers (${{ matrix.sanitizer }})
521519
id: build

0 commit comments

Comments
 (0)