Skip to content

Commit 22799b4

Browse files
committed
Merge branch 'main' into arm-runners
2 parents d871371 + f83ca69 commit 22799b4

813 files changed

Lines changed: 25086 additions & 10625 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.

.azure-pipelines/ci.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ jobs:
55
displayName: Pre-build checks
66

77
pool:
8-
vmImage: ubuntu-22.04
8+
vmImage: ubuntu-24.04
99

1010
steps:
1111
- template: ./prebuild-checks.yml

.github/CODEOWNERS

Lines changed: 21 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -16,14 +16,17 @@ configure* @erlend-aasland @corona10
1616
Makefile.pre.in @erlend-aasland
1717
Modules/Setup* @erlend-aasland
1818

19+
# argparse
20+
**/*argparse* @savannahostrowski
21+
1922
# asyncio
20-
**/*asyncio* @1st1 @asvetlov @gvanrossum @kumaraditya303 @willingc
23+
**/*asyncio* @1st1 @asvetlov @kumaraditya303 @willingc
2124

2225
# Core
2326
**/*context* @1st1
2427
**/*genobject* @markshannon
2528
**/*hamt* @1st1
26-
**/*jit* @brandtbucher
29+
**/*jit* @brandtbucher @savannahostrowski
2730
Objects/set* @rhettinger
2831
Objects/dict* @methane @markshannon
2932
Objects/typevarobject.c @JelleZijlstra
@@ -78,6 +81,17 @@ Programs/_bootstrap_python.c @ericsnowcurrently
7881
Programs/python.c @ericsnowcurrently
7982
Tools/build/generate_global_objects.py @ericsnowcurrently
8083

84+
# Initialization
85+
Doc/library/sys_path_init.rst @FFY00
86+
Doc/c-api/init_config.rst @FFY00
87+
88+
# getpath
89+
**/*getpath* @FFY00
90+
91+
# site
92+
**/*site.py @FFY00
93+
Doc/library/site.rst @FFY00
94+
8195
# Exceptions
8296
Lib/test/test_except*.py @iritkatriel
8397
Objects/exceptions.c @iritkatriel
@@ -88,14 +102,13 @@ Objects/exceptions.c @iritkatriel
88102
**/sha* @gpshead @tiran
89103
Modules/md5* @gpshead @tiran
90104
**/*blake* @gpshead @tiran
91-
Modules/_blake2/** @gpshead @tiran
92105
Modules/_hacl/** @gpshead
93106

94107
# logging
95108
**/*logging* @vsajip
96109

97110
# venv
98-
**/*venv* @vsajip
111+
**/*venv* @vsajip @FFY00
99112

100113
# Launcher
101114
/PC/launcher.c @vsajip
@@ -255,8 +268,8 @@ Modules/_interp*module.c @ericsnowcurrently
255268
Lib/test/test_interpreters/ @ericsnowcurrently
256269

257270
# Android
258-
**/*Android* @mhsmith
259-
**/*android* @mhsmith
271+
**/*Android* @mhsmith @freakboy3742
272+
**/*android* @mhsmith @freakboy3742
260273

261274
# iOS (but not termios)
262275
**/iOS* @freakboy3742
@@ -267,7 +280,7 @@ Lib/test/test_interpreters/ @ericsnowcurrently
267280
**/*-ios* @freakboy3742
268281

269282
# WebAssembly
270-
/Tools/wasm/ @brettcannon
283+
/Tools/wasm/ @brettcannon @freakboy3742
271284

272285
# SBOM
273286
/Misc/externals.spdx.json @sethmlarson
@@ -281,4 +294,4 @@ Lib/test/test_configparser.py @jaraco
281294
# Doc sections
282295
Doc/reference/ @willingc
283296

284-
**/*weakref* @kumaraditya303
297+
**/*weakref* @kumaraditya303

.github/workflows/build.yml

Lines changed: 43 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -46,20 +46,20 @@ jobs:
4646
# reproducible: to get the same tools versions (autoconf, aclocal, ...)
4747
runs-on: ubuntu-24.04
4848
container:
49-
image: ghcr.io/python/autoconf:2024.10.11.11293396815
49+
image: ghcr.io/python/autoconf:2024.11.11.11786316759
5050
timeout-minutes: 60
5151
needs: check_source
5252
if: needs.check_source.outputs.run_tests == 'true'
5353
steps:
5454
- name: Install Git
5555
run: |
56-
apt install git -yq
56+
apt update && apt install git -yq
5757
git config --global --add safe.directory "$GITHUB_WORKSPACE"
5858
- uses: actions/checkout@v4
5959
with:
6060
fetch-depth: 1
6161
- name: Runner image version
62-
run: echo "IMAGE_VERSION=${ImageVersion}" >> $GITHUB_ENV
62+
run: echo "IMAGE_VERSION=${ImageVersion}" >> "$GITHUB_ENV"
6363
- name: Check Autoconf and aclocal versions
6464
run: |
6565
grep "Generated by GNU Autoconf 2.71" configure
@@ -76,7 +76,7 @@ jobs:
7676
# Check for changes in regenerated files
7777
if test -n "$changes"; then
7878
echo "Generated files not up to date."
79-
echo "Perhaps you forgot to run make regen-all or build.bat --regen. ;)"
79+
echo "Perhaps you forgot to run make regen-configure ;)"
8080
echo "configure files must be regenerated with a specific version of autoconf."
8181
echo "$changes"
8282
echo ""
@@ -88,7 +88,7 @@ jobs:
8888
name: 'Check if generated files are up to date'
8989
# Don't use ubuntu-latest but a specific version to make the job
9090
# reproducible: to get the same tools versions (autoconf, aclocal, ...)
91-
runs-on: ubuntu-22.04
91+
runs-on: ubuntu-24.04
9292
timeout-minutes: 60
9393
needs: check_source
9494
if: needs.check_source.outputs.run_tests == 'true'
@@ -98,7 +98,7 @@ jobs:
9898
with:
9999
python-version: '3.x'
100100
- name: Runner image version
101-
run: echo "IMAGE_VERSION=${ImageVersion}" >> $GITHUB_ENV
101+
run: echo "IMAGE_VERSION=${ImageVersion}" >> "$GITHUB_ENV"
102102
- name: Restore config.cache
103103
uses: actions/cache@v4
104104
with:
@@ -108,7 +108,7 @@ jobs:
108108
- name: Install Dependencies
109109
run: sudo ./.github/workflows/posix-deps-apt.sh
110110
- name: Add ccache to PATH
111-
run: echo "PATH=/usr/lib/ccache:$PATH" >> $GITHUB_ENV
111+
run: echo "PATH=/usr/lib/ccache:$PATH" >> "$GITHUB_ENV"
112112
- name: Configure ccache action
113113
uses: hendrikmuhs/ccache-action@v1.2
114114
with:
@@ -249,7 +249,7 @@ jobs:
249249
strategy:
250250
fail-fast: false
251251
matrix:
252-
os: [ubuntu-22.04]
252+
os: [ubuntu-24.04]
253253
openssl_ver: [3.0.15, 3.1.7, 3.2.3, 3.3.2]
254254
env:
255255
OPENSSL_VER: ${{ matrix.openssl_ver }}
@@ -259,7 +259,7 @@ jobs:
259259
steps:
260260
- uses: actions/checkout@v4
261261
- name: Runner image version
262-
run: echo "IMAGE_VERSION=${ImageVersion}" >> $GITHUB_ENV
262+
run: echo "IMAGE_VERSION=${ImageVersion}" >> "$GITHUB_ENV"
263263
- name: Restore config.cache
264264
uses: actions/cache@v4
265265
with:
@@ -271,9 +271,9 @@ jobs:
271271
run: sudo ./.github/workflows/posix-deps-apt.sh
272272
- name: Configure OpenSSL env vars
273273
run: |
274-
echo "MULTISSL_DIR=${GITHUB_WORKSPACE}/multissl" >> $GITHUB_ENV
275-
echo "OPENSSL_DIR=${GITHUB_WORKSPACE}/multissl/openssl/${OPENSSL_VER}" >> $GITHUB_ENV
276-
echo "LD_LIBRARY_PATH=${GITHUB_WORKSPACE}/multissl/openssl/${OPENSSL_VER}/lib" >> $GITHUB_ENV
274+
echo "MULTISSL_DIR=${GITHUB_WORKSPACE}/multissl" >> "$GITHUB_ENV"
275+
echo "OPENSSL_DIR=${GITHUB_WORKSPACE}/multissl/openssl/${OPENSSL_VER}" >> "$GITHUB_ENV"
276+
echo "LD_LIBRARY_PATH=${GITHUB_WORKSPACE}/multissl/openssl/${OPENSSL_VER}/lib" >> "$GITHUB_ENV"
277277
- name: 'Restore OpenSSL build'
278278
id: cache-openssl
279279
uses: actions/cache@v4
@@ -282,16 +282,16 @@ jobs:
282282
key: ${{ matrix.os }}-multissl-openssl-${{ env.OPENSSL_VER }}
283283
- name: Install OpenSSL
284284
if: steps.cache-openssl.outputs.cache-hit != 'true'
285-
run: python3 Tools/ssl/multissltests.py --steps=library --base-directory $MULTISSL_DIR --openssl $OPENSSL_VER --system Linux
285+
run: python3 Tools/ssl/multissltests.py --steps=library --base-directory "$MULTISSL_DIR" --openssl "$OPENSSL_VER" --system Linux
286286
- name: Add ccache to PATH
287287
run: |
288-
echo "PATH=/usr/lib/ccache:$PATH" >> $GITHUB_ENV
288+
echo "PATH=/usr/lib/ccache:$PATH" >> "$GITHUB_ENV"
289289
- name: Configure ccache action
290290
uses: hendrikmuhs/ccache-action@v1.2
291291
with:
292292
save: false
293293
- name: Configure CPython
294-
run: ./configure CFLAGS="-fdiagnostics-format=json" --config-cache --enable-slower-safety --with-pydebug --with-openssl=$OPENSSL_DIR
294+
run: ./configure CFLAGS="-fdiagnostics-format=json" --config-cache --enable-slower-safety --with-pydebug --with-openssl="$OPENSSL_DIR"
295295
- name: Build CPython
296296
run: make -j4
297297
- name: Display build info
@@ -309,7 +309,7 @@ jobs:
309309

310310
test_hypothesis:
311311
name: "Hypothesis tests on Ubuntu"
312-
runs-on: ubuntu-22.04
312+
runs-on: ubuntu-24.04
313313
timeout-minutes: 60
314314
needs: check_source
315315
if: needs.check_source.outputs.run_tests == 'true' && needs.check_source.outputs.run_hypothesis == 'true'
@@ -324,9 +324,9 @@ jobs:
324324
run: sudo ./.github/workflows/posix-deps-apt.sh
325325
- name: Configure OpenSSL env vars
326326
run: |
327-
echo "MULTISSL_DIR=${GITHUB_WORKSPACE}/multissl" >> $GITHUB_ENV
328-
echo "OPENSSL_DIR=${GITHUB_WORKSPACE}/multissl/openssl/${OPENSSL_VER}" >> $GITHUB_ENV
329-
echo "LD_LIBRARY_PATH=${GITHUB_WORKSPACE}/multissl/openssl/${OPENSSL_VER}/lib" >> $GITHUB_ENV
327+
echo "MULTISSL_DIR=${GITHUB_WORKSPACE}/multissl" >> "$GITHUB_ENV"
328+
echo "OPENSSL_DIR=${GITHUB_WORKSPACE}/multissl/openssl/${OPENSSL_VER}" >> "$GITHUB_ENV"
329+
echo "LD_LIBRARY_PATH=${GITHUB_WORKSPACE}/multissl/openssl/${OPENSSL_VER}/lib" >> "$GITHUB_ENV"
330330
- name: 'Restore OpenSSL build'
331331
id: cache-openssl
332332
uses: actions/cache@v4
@@ -335,24 +335,24 @@ jobs:
335335
key: ${{ runner.os }}-multissl-openssl-${{ env.OPENSSL_VER }}
336336
- name: Install OpenSSL
337337
if: steps.cache-openssl.outputs.cache-hit != 'true'
338-
run: python3 Tools/ssl/multissltests.py --steps=library --base-directory $MULTISSL_DIR --openssl $OPENSSL_VER --system Linux
338+
run: python3 Tools/ssl/multissltests.py --steps=library --base-directory "$MULTISSL_DIR" --openssl "$OPENSSL_VER" --system Linux
339339
- name: Add ccache to PATH
340340
run: |
341-
echo "PATH=/usr/lib/ccache:$PATH" >> $GITHUB_ENV
341+
echo "PATH=/usr/lib/ccache:$PATH" >> "$GITHUB_ENV"
342342
- name: Configure ccache action
343343
uses: hendrikmuhs/ccache-action@v1.2
344344
with:
345345
save: false
346346
- name: Setup directory envs for out-of-tree builds
347347
run: |
348-
echo "CPYTHON_RO_SRCDIR=$(realpath -m ${GITHUB_WORKSPACE}/../cpython-ro-srcdir)" >> $GITHUB_ENV
349-
echo "CPYTHON_BUILDDIR=$(realpath -m ${GITHUB_WORKSPACE}/../cpython-builddir)" >> $GITHUB_ENV
348+
echo "CPYTHON_RO_SRCDIR=$(realpath -m "${GITHUB_WORKSPACE}"/../cpython-ro-srcdir)" >> "$GITHUB_ENV"
349+
echo "CPYTHON_BUILDDIR=$(realpath -m "${GITHUB_WORKSPACE}"/../cpython-builddir)" >> "$GITHUB_ENV"
350350
- name: Create directories for read-only out-of-tree builds
351-
run: mkdir -p $CPYTHON_RO_SRCDIR $CPYTHON_BUILDDIR
351+
run: mkdir -p "$CPYTHON_RO_SRCDIR" "$CPYTHON_BUILDDIR"
352352
- name: Bind mount sources read-only
353-
run: sudo mount --bind -o ro $GITHUB_WORKSPACE $CPYTHON_RO_SRCDIR
353+
run: sudo mount --bind -o ro "$GITHUB_WORKSPACE" "$CPYTHON_RO_SRCDIR"
354354
- name: Runner image version
355-
run: echo "IMAGE_VERSION=${ImageVersion}" >> $GITHUB_ENV
355+
run: echo "IMAGE_VERSION=${ImageVersion}" >> "$GITHUB_ENV"
356356
- name: Restore config.cache
357357
uses: actions/cache@v4
358358
with:
@@ -365,7 +365,7 @@ jobs:
365365
--config-cache \
366366
--with-pydebug \
367367
--enable-slower-safety \
368-
--with-openssl=$OPENSSL_DIR
368+
--with-openssl="$OPENSSL_DIR"
369369
- name: Build CPython out-of-tree
370370
working-directory: ${{ env.CPYTHON_BUILDDIR }}
371371
run: make -j4
@@ -374,18 +374,18 @@ jobs:
374374
run: make pythoninfo
375375
- name: Remount sources writable for tests
376376
# some tests write to srcdir, lack of pyc files slows down testing
377-
run: sudo mount $CPYTHON_RO_SRCDIR -oremount,rw
377+
run: sudo mount "$CPYTHON_RO_SRCDIR" -oremount,rw
378378
- name: Setup directory envs for out-of-tree builds
379379
run: |
380-
echo "CPYTHON_BUILDDIR=$(realpath -m ${GITHUB_WORKSPACE}/../cpython-builddir)" >> $GITHUB_ENV
380+
echo "CPYTHON_BUILDDIR=$(realpath -m "${GITHUB_WORKSPACE}"/../cpython-builddir)" >> "$GITHUB_ENV"
381381
- name: "Create hypothesis venv"
382382
working-directory: ${{ env.CPYTHON_BUILDDIR }}
383383
run: |
384384
VENV_LOC=$(realpath -m .)/hypovenv
385385
VENV_PYTHON=$VENV_LOC/bin/python
386-
echo "HYPOVENV=${VENV_LOC}" >> $GITHUB_ENV
387-
echo "VENV_PYTHON=${VENV_PYTHON}" >> $GITHUB_ENV
388-
./python -m venv $VENV_LOC && $VENV_PYTHON -m pip install -r ${GITHUB_WORKSPACE}/Tools/requirements-hypothesis.txt
386+
echo "HYPOVENV=${VENV_LOC}" >> "$GITHUB_ENV"
387+
echo "VENV_PYTHON=${VENV_PYTHON}" >> "$GITHUB_ENV"
388+
./python -m venv "$VENV_LOC" && "$VENV_PYTHON" -m pip install -r "${GITHUB_WORKSPACE}/Tools/requirements-hypothesis.txt"
389389
- name: 'Restore Hypothesis database'
390390
id: cache-hypothesis-database
391391
uses: actions/cache@v4
@@ -423,18 +423,21 @@ jobs:
423423

424424
build_asan:
425425
name: 'Address sanitizer'
426-
runs-on: ubuntu-22.04
426+
runs-on: ${{ matrix.os }}
427427
timeout-minutes: 60
428428
needs: check_source
429429
if: needs.check_source.outputs.run_tests == 'true'
430+
strategy:
431+
matrix:
432+
os: [ubuntu-24.04]
430433
env:
431434
OPENSSL_VER: 3.0.15
432435
PYTHONSTRICTEXTENSIONBUILD: 1
433436
ASAN_OPTIONS: detect_leaks=0:allocator_may_return_null=1:handle_segv=0
434437
steps:
435438
- uses: actions/checkout@v4
436439
- name: Runner image version
437-
run: echo "IMAGE_VERSION=${ImageVersion}" >> $GITHUB_ENV
440+
run: echo "IMAGE_VERSION=${ImageVersion}" >> "$GITHUB_ENV"
438441
- name: Restore config.cache
439442
uses: actions/cache@v4
440443
with:
@@ -450,9 +453,9 @@ jobs:
450453
version: 10
451454
- name: Configure OpenSSL env vars
452455
run: |
453-
echo "MULTISSL_DIR=${GITHUB_WORKSPACE}/multissl" >> $GITHUB_ENV
454-
echo "OPENSSL_DIR=${GITHUB_WORKSPACE}/multissl/openssl/${OPENSSL_VER}" >> $GITHUB_ENV
455-
echo "LD_LIBRARY_PATH=${GITHUB_WORKSPACE}/multissl/openssl/${OPENSSL_VER}/lib" >> $GITHUB_ENV
456+
echo "MULTISSL_DIR=${GITHUB_WORKSPACE}/multissl" >> "$GITHUB_ENV"
457+
echo "OPENSSL_DIR=${GITHUB_WORKSPACE}/multissl/openssl/${OPENSSL_VER}" >> "$GITHUB_ENV"
458+
echo "LD_LIBRARY_PATH=${GITHUB_WORKSPACE}/multissl/openssl/${OPENSSL_VER}/lib" >> "$GITHUB_ENV"
456459
- name: 'Restore OpenSSL build'
457460
id: cache-openssl
458461
uses: actions/cache@v4
@@ -461,10 +464,10 @@ jobs:
461464
key: ${{ matrix.os }}-multissl-openssl-${{ env.OPENSSL_VER }}
462465
- name: Install OpenSSL
463466
if: steps.cache-openssl.outputs.cache-hit != 'true'
464-
run: python3 Tools/ssl/multissltests.py --steps=library --base-directory $MULTISSL_DIR --openssl $OPENSSL_VER --system Linux
467+
run: python3 Tools/ssl/multissltests.py --steps=library --base-directory "$MULTISSL_DIR" --openssl "$OPENSSL_VER" --system Linux
465468
- name: Add ccache to PATH
466469
run: |
467-
echo "PATH=/usr/lib/ccache:$PATH" >> $GITHUB_ENV
470+
echo "PATH=/usr/lib/ccache:$PATH" >> "$GITHUB_ENV"
468471
- name: Configure ccache action
469472
uses: hendrikmuhs/ccache-action@v1.2
470473
with:
@@ -477,7 +480,7 @@ jobs:
477480
- name: Display build info
478481
run: make pythoninfo
479482
- name: Tests
480-
run: xvfb-run make test
483+
run: xvfb-run make ci
481484

482485
build_tsan:
483486
name: 'Thread sanitizer'

0 commit comments

Comments
 (0)