Skip to content

Commit 43310ed

Browse files
authored
Merge branch 'main' into issue-124210
2 parents 409b4d9 + 75b628a commit 43310ed

File tree

1,204 files changed

+75596
-47082
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,204 files changed

+75596
-47082
lines changed

.github/CODEOWNERS

Lines changed: 21 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,11 @@
55
# https://git-scm.com/docs/gitignore#_pattern_format
66

77
# GitHub
8-
.github/** @ezio-melotti @hugovk
8+
.github/** @ezio-melotti @hugovk @AA-Turner
99

1010
# pre-commit
1111
.pre-commit-config.yaml @hugovk @AlexWaygood
12-
.ruff.toml @hugovk @AlexWaygood
12+
.ruff.toml @hugovk @AlexWaygood @AA-Turner
1313

1414
# Build system
1515
configure* @erlend-aasland @corona10
@@ -56,6 +56,14 @@ Tools/c-analyzer/ @ericsnowcurrently
5656
# dbm
5757
**/*dbm* @corona10 @erlend-aasland @serhiy-storchaka
5858

59+
# Doc/ tools
60+
Doc/conf.py @AA-Turner @hugovk
61+
Doc/Makefile @AA-Turner @hugovk
62+
Doc/make.bat @AA-Turner @hugovk
63+
Doc/requirements.txt @AA-Turner @hugovk
64+
Doc/_static/** @AA-Turner @hugovk
65+
Doc/tools/** @AA-Turner @hugovk
66+
5967
# runtime state/lifecycle
6068
**/*pylifecycle* @ericsnowcurrently
6169
**/*pystate* @ericsnowcurrently
@@ -96,13 +104,14 @@ Doc/library/site.rst @FFY00
96104
Lib/test/test_except*.py @iritkatriel
97105
Objects/exceptions.c @iritkatriel
98106

99-
# Hashing
100-
**/*hashlib* @gpshead @tiran
107+
# Hashing & cryptographic primitives
108+
**/*hashlib* @gpshead @tiran @picnixz
101109
**/*pyhash* @gpshead @tiran
102-
**/sha* @gpshead @tiran
103-
Modules/md5* @gpshead @tiran
104-
**/*blake* @gpshead @tiran
110+
**/sha* @gpshead @tiran @picnixz
111+
Modules/md5* @gpshead @tiran @picnixz
112+
**/*blake* @gpshead @tiran @picnixz
105113
Modules/_hacl/** @gpshead
114+
**/*hmac* @gpshead @picnixz
106115

107116
# logging
108117
**/*logging* @vsajip
@@ -292,6 +301,10 @@ Lib/configparser.py @jaraco
292301
Lib/test/test_configparser.py @jaraco
293302

294303
# Doc sections
295-
Doc/reference/ @willingc
304+
Doc/reference/ @willingc @AA-Turner
296305

297306
**/*weakref* @kumaraditya303
307+
308+
# Colorize
309+
Lib/_colorize.py @hugovk
310+
Lib/test/test__colorize.py @hugovk

.github/actionlint.yaml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
self-hosted-runner:
2+
labels: ["windows-aarch64"]
3+
4+
config-variables: null
5+
6+
paths:
7+
.github/workflows/**/*.yml:
8+
ignore:
9+
- 1st argument of function call is not assignable
10+
- SC2(015|038|086|091|097|098|129|155)

.github/workflows/build.yml

Lines changed: 97 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,9 @@ concurrency:
1818
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}-reusable
1919
cancel-in-progress: true
2020

21+
env:
22+
FORCE_COLOR: 1
23+
2124
jobs:
2225
check_source:
2326
name: Change detection
@@ -46,23 +49,24 @@ jobs:
4649
# reproducible: to get the same tools versions (autoconf, aclocal, ...)
4750
runs-on: ubuntu-24.04
4851
container:
49-
image: ghcr.io/python/autoconf:2024.11.11.11786316759
52+
image: ghcr.io/python/autoconf:2025.01.02.12581854023
5053
timeout-minutes: 60
5154
needs: check_source
5255
if: needs.check_source.outputs.run_tests == 'true'
5356
steps:
5457
- name: Install Git
5558
run: |
56-
apt install git -yq
59+
apt update && apt install git -yq
5760
git config --global --add safe.directory "$GITHUB_WORKSPACE"
5861
- uses: actions/checkout@v4
5962
with:
6063
fetch-depth: 1
64+
persist-credentials: false
6165
- name: Runner image version
6266
run: echo "IMAGE_VERSION=${ImageVersion}" >> "$GITHUB_ENV"
6367
- name: Check Autoconf and aclocal versions
6468
run: |
65-
grep "Generated by GNU Autoconf 2.71" configure
69+
grep "Generated by GNU Autoconf 2.72" configure
6670
grep "aclocal 1.16.5" aclocal.m4
6771
grep -q "runstatedir" configure
6872
grep -q "PKG_PROG_PKG_CONFIG" aclocal.m4
@@ -94,6 +98,8 @@ jobs:
9498
if: needs.check_source.outputs.run_tests == 'true'
9599
steps:
96100
- uses: actions/checkout@v4
101+
with:
102+
persist-credentials: false
97103
- uses: actions/setup-python@v5
98104
with:
99105
python-version: '3.x'
@@ -120,7 +126,7 @@ jobs:
120126
- name: Build CPython
121127
run: |
122128
make -j4 regen-all
123-
make regen-stdlib-module-names regen-sbom
129+
make regen-stdlib-module-names regen-sbom regen-unicodedata
124130
- name: Check for changes
125131
run: |
126132
git add -u
@@ -150,16 +156,28 @@ jobs:
150156
needs: check_source
151157
if: fromJSON(needs.check_source.outputs.run_tests)
152158
strategy:
159+
fail-fast: false
153160
matrix:
161+
os:
162+
- windows-latest
154163
arch:
155-
- Win32
156-
- x64
157-
- arm64
164+
- x64
158165
free-threading:
159-
- false
160-
- true
166+
- false
167+
- true
168+
include:
169+
- os: windows-latest # FIXME(diegorusso): change to os: windows-aarch64
170+
arch: arm64
171+
free-threading: false
172+
- os: windows-latest # FIXME(diegorusso): change to os: windows-aarch64
173+
arch: arm64
174+
free-threading: true
175+
- os: windows-latest
176+
arch: Win32
177+
free-threading: false
161178
uses: ./.github/workflows/reusable-windows.yml
162179
with:
180+
os: ${{ matrix.os }}
163181
arch: ${{ matrix.arch }}
164182
free-threading: ${{ matrix.free-threading }}
165183

@@ -216,17 +234,33 @@ jobs:
216234
name: >-
217235
Ubuntu
218236
${{ fromJSON(matrix.free-threading) && '(free-threading)' || '' }}
237+
${{ fromJSON(matrix.bolt) && '(bolt)' || '' }}
219238
needs: check_source
220239
if: needs.check_source.outputs.run_tests == 'true'
221240
strategy:
222241
matrix:
242+
bolt:
243+
- false
244+
- true
223245
free-threading:
224246
- false
225247
- true
248+
os:
249+
- ubuntu-24.04
250+
- ubuntu-24.04-arm
251+
exclude:
252+
# Do not test BOLT with free-threading, to conserve resources
253+
- bolt: true
254+
free-threading: true
255+
# BOLT currently crashes during instrumentation on aarch64
256+
- os: ubuntu-24.04-arm
257+
bolt: true
226258
uses: ./.github/workflows/reusable-ubuntu.yml
227259
with:
228260
config_hash: ${{ needs.check_source.outputs.config_hash }}
261+
bolt-optimizations: ${{ matrix.bolt }}
229262
free-threading: ${{ matrix.free-threading }}
263+
os: ${{ matrix.os }}
230264

231265
build_ubuntu_ssltests:
232266
name: 'Ubuntu SSL tests with OpenSSL'
@@ -238,14 +272,17 @@ jobs:
238272
fail-fast: false
239273
matrix:
240274
os: [ubuntu-24.04]
241-
openssl_ver: [3.0.15, 3.1.7, 3.2.3, 3.3.2]
275+
openssl_ver: [3.0.15, 3.1.7, 3.2.3, 3.3.2, 3.4.0]
276+
# See Tools/ssl/make_ssl_data.py for notes on adding a new version
242277
env:
243278
OPENSSL_VER: ${{ matrix.openssl_ver }}
244279
MULTISSL_DIR: ${{ github.workspace }}/multissl
245280
OPENSSL_DIR: ${{ github.workspace }}/multissl/openssl/${{ matrix.openssl_ver }}
246281
LD_LIBRARY_PATH: ${{ github.workspace }}/multissl/openssl/${{ matrix.openssl_ver }}/lib
247282
steps:
248283
- uses: actions/checkout@v4
284+
with:
285+
persist-credentials: false
249286
- name: Runner image version
250287
run: echo "IMAGE_VERSION=${ImageVersion}" >> "$GITHUB_ENV"
251288
- name: Restore config.cache
@@ -306,6 +343,8 @@ jobs:
306343
PYTHONSTRICTEXTENSIONBUILD: 1
307344
steps:
308345
- uses: actions/checkout@v4
346+
with:
347+
persist-credentials: false
309348
- name: Register gcc problem matcher
310349
run: echo "::add-matcher::.github/problem-matchers/gcc.json"
311350
- name: Install Dependencies
@@ -389,7 +428,7 @@ jobs:
389428
#
390429
# (GH-104097) test_sysconfig is skipped because it has tests that are
391430
# failing when executed from inside a virtual environment.
392-
${{ env.VENV_PYTHON }} -m test \
431+
"${VENV_PYTHON}" -m test \
393432
-W \
394433
-o \
395434
-j4 \
@@ -424,6 +463,8 @@ jobs:
424463
ASAN_OPTIONS: detect_leaks=0:allocator_may_return_null=1:handle_segv=0
425464
steps:
426465
- uses: actions/checkout@v4
466+
with:
467+
persist-credentials: false
427468
- name: Runner image version
428469
run: echo "IMAGE_VERSION=${ImageVersion}" >> "$GITHUB_ENV"
429470
- name: Restore config.cache
@@ -471,26 +512,59 @@ jobs:
471512
run: xvfb-run make ci
472513

473514
build_tsan:
474-
name: 'Thread sanitizer'
515+
name: >-
516+
Thread sanitizer
517+
${{ fromJSON(matrix.free-threading) && '(free-threading)' || '' }}
475518
needs: check_source
476519
if: needs.check_source.outputs.run_tests == 'true'
520+
strategy:
521+
matrix:
522+
free-threading:
523+
- false
524+
- true
477525
uses: ./.github/workflows/reusable-tsan.yml
478526
with:
479527
config_hash: ${{ needs.check_source.outputs.config_hash }}
480-
options: ./configure --config-cache --with-thread-sanitizer --with-pydebug
481-
suppressions_path: Tools/tsan/supressions.txt
482-
tsan_logs_artifact_name: tsan-logs-default
528+
free-threading: ${{ matrix.free-threading }}
483529

484-
build_tsan_free_threading:
485-
name: 'Thread sanitizer (free-threading)'
530+
cross-build-linux:
531+
name: Cross build Linux
532+
runs-on: ubuntu-latest
486533
needs: check_source
487534
if: needs.check_source.outputs.run_tests == 'true'
488-
uses: ./.github/workflows/reusable-tsan.yml
489-
with:
490-
config_hash: ${{ needs.check_source.outputs.config_hash }}
491-
options: ./configure --config-cache --disable-gil --with-thread-sanitizer --with-pydebug
492-
suppressions_path: Tools/tsan/suppressions_free_threading.txt
493-
tsan_logs_artifact_name: tsan-logs-free-threading
535+
steps:
536+
- uses: actions/checkout@v4
537+
with:
538+
persist-credentials: false
539+
- name: Runner image version
540+
run: echo "IMAGE_VERSION=${ImageVersion}" >> "$GITHUB_ENV"
541+
- name: Restore config.cache
542+
uses: actions/cache@v4
543+
with:
544+
path: config.cache
545+
key: ${{ github.job }}-${{ runner.os }}-${{ env.IMAGE_VERSION }}-${{ needs.check_source.outputs.config_hash }}
546+
- name: Register gcc problem matcher
547+
run: echo "::add-matcher::.github/problem-matchers/gcc.json"
548+
- name: Set build dir
549+
run:
550+
# an absolute path outside of the working directoy
551+
echo "BUILD_DIR=$(realpath ${{ github.workspace }}/../build)" >> "$GITHUB_ENV"
552+
- name: Install Dependencies
553+
run: sudo ./.github/workflows/posix-deps-apt.sh
554+
- name: Configure host build
555+
run: ./configure --prefix="$BUILD_DIR/host-python"
556+
- name: Install host Python
557+
run: make -j8 install
558+
- name: Run test subset with host build
559+
run: |
560+
"$BUILD_DIR/host-python/bin/python3" -m test test_sysconfig test_site test_embed
561+
- name: Configure cross build
562+
run: ./configure --prefix="$BUILD_DIR/cross-python" --with-build-python="$BUILD_DIR/host-python/bin/python3"
563+
- name: Install cross Python
564+
run: make -j8 install
565+
- name: Run test subset with host build
566+
run: |
567+
"$BUILD_DIR/cross-python/bin/python3" -m test test_sysconfig test_site test_embed
494568
495569
# CIFuzz job based on https://google.github.io/oss-fuzz/getting-started/continuous-integration/
496570
cifuzz:
@@ -550,7 +624,6 @@ jobs:
550624
- test_hypothesis
551625
- build_asan
552626
- build_tsan
553-
- build_tsan_free_threading
554627
- cifuzz
555628

556629
runs-on: ubuntu-latest
@@ -584,7 +657,6 @@ jobs:
584657
build_windows,
585658
build_asan,
586659
build_tsan,
587-
build_tsan_free_threading,
588660
'
589661
|| ''
590662
}}

.github/workflows/documentation-links.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,16 +10,16 @@ on:
1010
- 'Doc/**'
1111
- '.github/workflows/doc.yml'
1212

13-
permissions:
14-
pull-requests: write
15-
1613
concurrency:
1714
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
1815
cancel-in-progress: true
1916

2017
jobs:
2118
documentation-links:
2219
runs-on: ubuntu-latest
20+
permissions:
21+
pull-requests: write
22+
2323
steps:
2424
- uses: readthedocs/actions/preview@v1
2525
with:

0 commit comments

Comments
 (0)