Skip to content

Commit 7f07653

Browse files
authored
Merge branch '3.13' into backport-46a1f0a-3.13
2 parents 047136b + 8d920ac commit 7f07653

File tree

557 files changed

+39714
-32858
lines changed

Some content is hidden

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

557 files changed

+39714
-32858
lines changed

.gitattributes

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,7 @@ Include/opcode_ids.h generated
8181
Include/token.h generated
8282
Lib/_opcode_metadata.py generated
8383
Lib/keyword.py generated
84+
Lib/idlelib/help.html generated
8485
Lib/test/certdata/*.pem generated
8586
Lib/test/certdata/*.0 generated
8687
Lib/test/levenshtein_examples.json generated

.github/CODEOWNERS

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ configure* @erlend-aasland @corona10
2222
**/*genobject* @markshannon
2323
**/*hamt* @1st1
2424
**/*jit* @brandtbucher
25+
Python/perf_jit_trampoline.c # Exclude the owners of "**/*jit*", above.
2526
Objects/set* @rhettinger
2627
Objects/dict* @methane @markshannon
2728
Objects/typevarobject.c @JelleZijlstra

.github/actionlint.yaml

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
self-hosted-runner:
2+
# Pending https://github.com/rhysd/actionlint/issues/533
3+
# and https://github.com/rhysd/actionlint/issues/571
4+
labels: ["windows-11-arm", "macos-15-intel"]
5+
6+
config-variables: null
7+
8+
paths:
9+
.github/workflows/**/*.yml:
10+
ignore:
11+
- 1st argument of function call is not assignable
12+
- SC2(015|038|086|091|097|098|129|155)

.github/workflows/build.yml

Lines changed: 9 additions & 61 deletions
Original file line numberDiff line numberDiff line change
@@ -154,20 +154,10 @@ jobs:
154154
python-version: '3.x'
155155
- name: Runner image version
156156
run: echo "IMAGE_OS_VERSION=${ImageOS}-${ImageVersion}" >> "$GITHUB_ENV"
157-
- name: Restore config.cache
158-
uses: actions/cache@v4
159-
with:
160-
path: config.cache
161-
# Include env.pythonLocation in key to avoid changes in environment when setup-python updates Python
162-
key: ${{ github.job }}-${{ env.IMAGE_OS_VERSION }}-${{ needs.build-context.outputs.config-hash }}-${{ env.pythonLocation }}
163157
- name: Install dependencies
164158
run: sudo ./.github/workflows/posix-deps-apt.sh
165159
- name: Add ccache to PATH
166160
run: echo "PATH=/usr/lib/ccache:$PATH" >> "$GITHUB_ENV"
167-
- name: Configure ccache action
168-
uses: hendrikmuhs/ccache-action@v1.2
169-
with:
170-
save: false
171161
- name: Configure CPython
172162
run: |
173163
# Build Python with the libpython dynamic library
@@ -255,28 +245,19 @@ jobs:
255245
strategy:
256246
fail-fast: false
257247
matrix:
258-
# Cirrus and macos-14 are M1, macos-13 is default GHA Intel.
259-
# macOS 13 only runs tests against the GIL-enabled CPython.
260-
# Cirrus used for upstream, macos-14 for forks.
248+
# macos-14 is M1, macos-15-intel is Intel.
249+
# macos-15-intel only runs tests against the GIL-enabled CPython.
261250
os:
262-
- ghcr.io/cirruslabs/macos-runner:sonoma
263251
- macos-14
264-
- macos-13
265-
is-fork: # only used for the exclusion trick
266-
- ${{ github.repository_owner != 'python' }}
252+
- macos-15-intel
267253
free-threading:
268254
- false
269255
- true
270256
exclude:
271-
- os: ghcr.io/cirruslabs/macos-runner:sonoma
272-
is-fork: true
273-
- os: macos-14
274-
is-fork: false
275-
- os: macos-13
257+
- os: macos-15-intel
276258
free-threading: true
277259
uses: ./.github/workflows/reusable-macos.yml
278260
with:
279-
config_hash: ${{ needs.build-context.outputs.config-hash }}
280261
free-threading: ${{ matrix.free-threading }}
281262
os: ${{ matrix.os }}
282263

@@ -294,7 +275,6 @@ jobs:
294275
- true
295276
uses: ./.github/workflows/reusable-ubuntu.yml
296277
with:
297-
config_hash: ${{ needs.build-context.outputs.config-hash }}
298278
free-threading: ${{ matrix.free-threading }}
299279

300280
build-ubuntu-ssltests:
@@ -310,7 +290,7 @@ jobs:
310290
# Keep 1.1.1w in our list despite it being upstream EOL and otherwise
311291
# unsupported as it most resembles other 1.1.1-work-a-like ssl APIs
312292
# supported by important vendors such as AWS-LC.
313-
openssl_ver: [1.1.1w, 3.0.15, 3.1.7, 3.2.3, 3.3.2]
293+
openssl_ver: [1.1.1w, 3.0.18, 3.1.7, 3.2.6, 3.3.5]
314294
env:
315295
OPENSSL_VER: ${{ matrix.openssl_ver }}
316296
MULTISSL_DIR: ${{ github.workspace }}/multissl
@@ -322,11 +302,6 @@ jobs:
322302
persist-credentials: false
323303
- name: Runner image version
324304
run: echo "IMAGE_OS_VERSION=${ImageOS}-${ImageVersion}" >> "$GITHUB_ENV"
325-
- name: Restore config.cache
326-
uses: actions/cache@v4
327-
with:
328-
path: config.cache
329-
key: ${{ github.job }}-${{ env.IMAGE_OS_VERSION }}-${{ needs.build-context.outputs.config-hash }}
330305
- name: Register gcc problem matcher
331306
run: echo "::add-matcher::.github/problem-matchers/gcc.json"
332307
- name: Install dependencies
@@ -348,10 +323,6 @@ jobs:
348323
- name: Add ccache to PATH
349324
run: |
350325
echo "PATH=/usr/lib/ccache:$PATH" >> "$GITHUB_ENV"
351-
- name: Configure ccache action
352-
uses: hendrikmuhs/ccache-action@v1.2
353-
with:
354-
save: false
355326
- name: Configure CPython
356327
run: ./configure --config-cache --with-pydebug --with-openssl=$OPENSSL_DIR
357328
- name: Build CPython
@@ -370,9 +341,8 @@ jobs:
370341
fail-fast: false
371342
matrix:
372343
include:
373-
# Use the same runs-on configuration as build-macos and build-ubuntu.
374344
- arch: aarch64
375-
runs-on: ${{ github.repository_owner == 'python' && 'ghcr.io/cirruslabs/macos-runner:sonoma' || 'macos-14' }}
345+
runs-on: macos-14
376346
- arch: x86_64
377347
runs-on: ubuntu-24.04
378348

@@ -382,15 +352,13 @@ jobs:
382352
with:
383353
persist-credentials: false
384354
- name: Build and test
385-
run: ./Android/android.py ci ${{ matrix.arch }}-linux-android
355+
run: ./Android/android.py ci --fast-ci ${{ matrix.arch }}-linux-android
386356

387357
build-wasi:
388358
name: 'WASI'
389359
needs: build-context
390360
if: needs.build-context.outputs.run-tests == 'true'
391361
uses: ./.github/workflows/reusable-wasi.yml
392-
with:
393-
config_hash: ${{ needs.build-context.outputs.config-hash }}
394362

395363
test-hypothesis:
396364
name: "Hypothesis tests on Ubuntu"
@@ -399,7 +367,7 @@ jobs:
399367
needs: build-context
400368
if: needs.build-context.outputs.run-tests == 'true'
401369
env:
402-
OPENSSL_VER: 3.0.15
370+
OPENSSL_VER: 3.0.18
403371
PYTHONSTRICTEXTENSIONBUILD: 1
404372
steps:
405373
- uses: actions/checkout@v4
@@ -426,10 +394,6 @@ jobs:
426394
- name: Add ccache to PATH
427395
run: |
428396
echo "PATH=/usr/lib/ccache:$PATH" >> "$GITHUB_ENV"
429-
- name: Configure ccache action
430-
uses: hendrikmuhs/ccache-action@v1.2
431-
with:
432-
save: false
433397
- name: Setup directory envs for out-of-tree builds
434398
run: |
435399
echo "CPYTHON_RO_SRCDIR=$(realpath -m "${GITHUB_WORKSPACE}"/../cpython-ro-srcdir)" >> "$GITHUB_ENV"
@@ -440,11 +404,6 @@ jobs:
440404
run: sudo mount --bind -o ro "$GITHUB_WORKSPACE" "$CPYTHON_RO_SRCDIR"
441405
- name: Runner image version
442406
run: echo "IMAGE_OS_VERSION=${ImageOS}-${ImageVersion}" >> "$GITHUB_ENV"
443-
- name: Restore config.cache
444-
uses: actions/cache@v4
445-
with:
446-
path: ${{ env.CPYTHON_BUILDDIR }}/config.cache
447-
key: ${{ github.job }}-${{ env.IMAGE_OS_VERSION }}-${{ needs.build-context.outputs.config-hash }}
448407
- name: Configure CPython out-of-tree
449408
working-directory: ${{ env.CPYTHON_BUILDDIR }}
450409
run: |
@@ -518,7 +477,7 @@ jobs:
518477
matrix:
519478
os: [ubuntu-24.04]
520479
env:
521-
OPENSSL_VER: 3.0.15
480+
OPENSSL_VER: 3.0.18
522481
PYTHONSTRICTEXTENSIONBUILD: 1
523482
ASAN_OPTIONS: detect_leaks=0:allocator_may_return_null=1:handle_segv=0
524483
steps:
@@ -527,11 +486,6 @@ jobs:
527486
persist-credentials: false
528487
- name: Runner image version
529488
run: echo "IMAGE_OS_VERSION=${ImageOS}-${ImageVersion}" >> "$GITHUB_ENV"
530-
- name: Restore config.cache
531-
uses: actions/cache@v4
532-
with:
533-
path: config.cache
534-
key: ${{ github.job }}-${{ env.IMAGE_OS_VERSION }}-${{ needs.build-context.outputs.config-hash }}
535489
- name: Register gcc problem matcher
536490
run: echo "::add-matcher::.github/problem-matchers/gcc.json"
537491
- name: Install dependencies
@@ -557,11 +511,6 @@ jobs:
557511
- name: Add ccache to PATH
558512
run: |
559513
echo "PATH=/usr/lib/ccache:$PATH" >> "$GITHUB_ENV"
560-
- name: Configure ccache action
561-
uses: hendrikmuhs/ccache-action@v1.2
562-
with:
563-
save: ${{ github.event_name == 'push' }}
564-
max-size: "200M"
565514
- name: Configure CPython
566515
run: ./configure --config-cache --with-address-sanitizer --without-pymalloc
567516
- name: Build CPython
@@ -589,7 +538,6 @@ jobs:
589538
uses: ./.github/workflows/reusable-san.yml
590539
with:
591540
sanitizer: ${{ matrix.sanitizer }}
592-
config_hash: ${{ needs.build-context.outputs.config-hash }}
593541
free-threading: ${{ matrix.free-threading }}
594542

595543
# CIFuzz job based on https://google.github.io/oss-fuzz/getting-started/continuous-integration/

.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-13
85+
runner: macos-15-intel
8686
compiler: clang
8787
- target: aarch64-apple-darwin/clang
8888
architecture: aarch64

.github/workflows/mypy.yml

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@ on:
2727
- "Tools/jit/**"
2828
- "Tools/peg_generator/**"
2929
- "Tools/requirements-dev.txt"
30-
- "Tools/wasm/**"
3130
workflow_dispatch:
3231

3332
permissions:
@@ -59,7 +58,6 @@ jobs:
5958
"Tools/clinic",
6059
"Tools/jit",
6160
"Tools/peg_generator",
62-
"Tools/wasm",
6361
]
6462
steps:
6563
- uses: actions/checkout@v4

.github/workflows/reusable-context.yml

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,6 @@ on: # yamllint disable-line rule:truthy
1717
# || 'falsy-branch'
1818
# }}
1919
#
20-
config-hash:
21-
description: Config hash value for use in cache keys
22-
value: ${{ jobs.compute-changes.outputs.config-hash }} # str
2320
run-docs:
2421
description: Whether to build the docs
2522
value: ${{ jobs.compute-changes.outputs.run-docs }} # bool
@@ -42,7 +39,6 @@ jobs:
4239
runs-on: ubuntu-latest
4340
timeout-minutes: 10
4441
outputs:
45-
config-hash: ${{ steps.config-hash.outputs.hash }}
4642
run-ci-fuzz: ${{ steps.changes.outputs.run-ci-fuzz }}
4743
run-docs: ${{ steps.changes.outputs.run-docs }}
4844
run-tests: ${{ steps.changes.outputs.run-tests }}
@@ -100,8 +96,3 @@ jobs:
10096
GITHUB_EVENT_NAME: ${{ github.event_name }}
10197
CCF_TARGET_REF: ${{ github.base_ref || github.event.repository.default_branch }}
10298
CCF_HEAD_REF: ${{ github.event.pull_request.head.sha || github.sha }}
103-
104-
- name: Compute hash for config cache key
105-
id: config-hash
106-
run: |
107-
echo "hash=${{ hashFiles('configure', 'configure.ac', '.github/workflows/build.yml') }}" >> "$GITHUB_OUTPUT"

.github/workflows/reusable-macos.yml

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,6 @@ name: Reusable macOS
33
on:
44
workflow_call:
55
inputs:
6-
config_hash:
7-
required: true
8-
type: string
96
free-threading:
107
required: false
118
type: boolean
@@ -36,11 +33,6 @@ jobs:
3633
persist-credentials: false
3734
- name: Runner image version
3835
run: echo "IMAGE_OS_VERSION=${ImageOS}-${ImageVersion}" >> "$GITHUB_ENV"
39-
- name: Restore config.cache
40-
uses: actions/cache@v4
41-
with:
42-
path: config.cache
43-
key: ${{ github.job }}-${{ env.IMAGE_OS_VERSION }}-${{ inputs.config_hash }}
4436
- name: Install Homebrew dependencies
4537
run: |
4638
brew install pkg-config openssl@3.0 xz gdbm tcl-tk@8

.github/workflows/reusable-san.yml

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,6 @@ on:
66
sanitizer:
77
required: true
88
type: string
9-
config_hash:
10-
required: true
11-
type: string
129
free-threading:
1310
description: Whether to use free-threaded mode
1411
required: false
@@ -34,11 +31,6 @@ jobs:
3431
persist-credentials: false
3532
- name: Runner image version
3633
run: echo "IMAGE_OS_VERSION=${ImageOS}-${ImageVersion}" >> "$GITHUB_ENV"
37-
- name: Restore config.cache
38-
uses: actions/cache@v4
39-
with:
40-
path: config.cache
41-
key: ${{ github.job }}-${{ env.IMAGE_OS_VERSION }}-${{ inputs.sanitizer }}-${{ inputs.config_hash }}
4234
- name: Install dependencies
4335
run: |
4436
sudo ./.github/workflows/posix-deps-apt.sh
@@ -77,11 +69,6 @@ jobs:
7769
- name: Add ccache to PATH
7870
run: |
7971
echo "PATH=/usr/lib/ccache:$PATH" >> "$GITHUB_ENV"
80-
- name: Configure ccache action
81-
uses: hendrikmuhs/ccache-action@v1.2
82-
with:
83-
save: ${{ github.event_name == 'push' }}
84-
max-size: "200M"
8572
- name: Configure CPython
8673
run: >-
8774
./configure

.github/workflows/reusable-ubuntu.yml

Lines changed: 1 addition & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,6 @@ name: Reusable Ubuntu
33
on:
44
workflow_call:
55
inputs:
6-
config_hash:
7-
required: true
8-
type: string
96
free-threading:
107
description: Whether to use free-threaded mode
118
required: false
@@ -25,7 +22,7 @@ jobs:
2522
matrix:
2623
os: [ubuntu-24.04, ubuntu-24.04-arm]
2724
env:
28-
OPENSSL_VER: 3.0.15
25+
OPENSSL_VER: 3.0.18
2926
PYTHONSTRICTEXTENSIONBUILD: 1
3027
TERM: linux
3128
steps:
@@ -53,11 +50,6 @@ jobs:
5350
- name: Add ccache to PATH
5451
run: |
5552
echo "PATH=/usr/lib/ccache:$PATH" >> "$GITHUB_ENV"
56-
- name: Configure ccache action
57-
uses: hendrikmuhs/ccache-action@v1.2
58-
with:
59-
save: ${{ github.event_name == 'push' }}
60-
max-size: "200M"
6153
- name: Setup directory envs for out-of-tree builds
6254
run: |
6355
echo "CPYTHON_RO_SRCDIR=$(realpath -m "${GITHUB_WORKSPACE}"/../cpython-ro-srcdir)" >> "$GITHUB_ENV"
@@ -68,11 +60,6 @@ jobs:
6860
run: sudo mount --bind -o ro "$GITHUB_WORKSPACE" "$CPYTHON_RO_SRCDIR"
6961
- name: Runner image version
7062
run: echo "IMAGE_OS_VERSION=${ImageOS}-${ImageVersion}" >> "$GITHUB_ENV"
71-
- name: Restore config.cache
72-
uses: actions/cache@v4
73-
with:
74-
path: ${{ env.CPYTHON_BUILDDIR }}/config.cache
75-
key: ${{ github.job }}-${{ env.IMAGE_OS_VERSION }}-${{ inputs.config_hash }}
7663
- name: Configure CPython out-of-tree
7764
working-directory: ${{ env.CPYTHON_BUILDDIR }}
7865
run: >-

0 commit comments

Comments
 (0)