Skip to content

Commit d4794d5

Browse files
Merge branch 'main' into decimal-version-info
2 parents e508482 + 24ea85a commit d4794d5

764 files changed

Lines changed: 56804 additions & 51961 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.

‎.claude/CLAUDE.md‎

Lines changed: 0 additions & 1 deletion
This file was deleted.

‎.github/CODEOWNERS‎

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -290,9 +290,10 @@ Tools/jit/ @brandtbucher @savannahostrowski @diegorusso
290290
InternalDocs/jit.md @brandtbucher @savannahostrowski @diegorusso @AA-Turner
291291

292292
# Lazy imports (PEP 810)
293-
Objects/lazyimportobject.c @yhg1s @DinoV @pablogsal
294-
Include/internal/pycore_lazyimportobject.h @yhg1s @DinoV @pablogsal
295-
Lib/test/test_lazy_import @yhg1s @DinoV @pablogsal
293+
.github/workflows/reusable-test-lazy-imports-all.yml @yhg1s @DinoV @pablogsal
294+
Objects/lazyimportobject.c @yhg1s @DinoV @pablogsal
295+
Include/internal/pycore_lazyimportobject.h @yhg1s @DinoV @pablogsal
296+
Lib/test/test_lazy_import @yhg1s @DinoV @pablogsal
296297

297298
# Micro-op / μop / Tier 2 Optimiser
298299
Python/optimizer.c @markshannon @Fidget-Spinner
@@ -655,5 +656,8 @@ Objects/**/clinic/
655656
PC/**/clinic/
656657
Python/**/clinic/
657658

659+
# Exclude Lazy Imports=all CI carve out file
660+
Lib/test/lazy_imports_all_exclude.txt
661+
658662
# Exclude HTML IDs list
659663
Doc/tools/removed-ids.txt

‎.github/dependabot.yml‎

Lines changed: 119 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,6 @@ updates:
77
labels:
88
- "skip issue"
99
- "skip news"
10-
ignore:
11-
- dependency-name: "*"
12-
update-types:
13-
- "version-update:semver-minor"
14-
- "version-update:semver-patch"
1510
groups:
1611
actions:
1712
patterns:
@@ -21,12 +16,128 @@ updates:
2116
# Cooldowns protect against supply chain attacks by avoiding the
2217
# highest-risk window immediately after new releases.
2318
default-days: 14
19+
2420
- package-ecosystem: "pip"
2521
directory: "/Tools/"
2622
schedule:
2723
interval: "quarterly"
28-
labels:
29-
- "skip issue"
30-
- "skip news"
24+
labels: ["skip issue", "skip news"]
25+
groups:
26+
pip:
27+
patterns: ["*"]
28+
cooldown:
29+
default-days: 14
30+
31+
# Release branches: Dependabot only reads this file from the default
32+
# branch, so each branch that should get its own actions bumps needs an
33+
# entry here with `target-branch`. Add one when a new release branch is
34+
# created, and remove when the branch reaches end-of-life.
35+
- package-ecosystem: "github-actions"
36+
target-branch: "3.15"
37+
directory: "/"
38+
schedule:
39+
interval: "quarterly"
40+
labels: ["skip issue", "skip news"]
41+
groups:
42+
actions:
43+
patterns: ["*"]
44+
cooldown:
45+
default-days: 14
46+
47+
- package-ecosystem: "github-actions"
48+
target-branch: "3.14"
49+
directory: "/"
50+
schedule:
51+
interval: "quarterly"
52+
labels: ["skip issue", "skip news"]
53+
groups:
54+
actions:
55+
patterns: ["*"]
56+
cooldown:
57+
default-days: 14
58+
59+
- package-ecosystem: "github-actions"
60+
target-branch: "3.13"
61+
directory: "/"
62+
schedule:
63+
interval: "quarterly"
64+
labels: ["skip issue", "skip news"]
65+
groups:
66+
actions:
67+
patterns: ["*"]
68+
cooldown:
69+
default-days: 14
70+
71+
- package-ecosystem: "github-actions"
72+
target-branch: "3.12"
73+
directory: "/"
74+
schedule:
75+
interval: "quarterly"
76+
labels: ["skip issue", "skip news"]
77+
groups:
78+
actions:
79+
patterns: ["*"]
80+
cooldown:
81+
default-days: 14
82+
83+
- package-ecosystem: "github-actions"
84+
target-branch: "3.11"
85+
directory: "/"
86+
schedule:
87+
interval: "quarterly"
88+
labels: ["skip issue", "skip news"]
89+
groups:
90+
actions:
91+
patterns: ["*"]
92+
cooldown:
93+
default-days: 14
94+
95+
- package-ecosystem: "github-actions"
96+
target-branch: "3.10"
97+
directory: "/"
98+
schedule:
99+
interval: "quarterly"
100+
labels: ["skip issue", "skip news"]
101+
groups:
102+
actions:
103+
patterns: ["*"]
104+
cooldown:
105+
default-days: 14
106+
107+
# Only bump bugfix branches for pip. Remove
108+
# the entry when branch goes security-only.
109+
- package-ecosystem: "pip"
110+
target-branch: "3.15"
111+
directory: "/Tools/"
112+
schedule:
113+
interval: "quarterly"
114+
labels: ["skip issue", "skip news"]
115+
groups:
116+
pip:
117+
patterns: ["*"]
118+
cooldown:
119+
default-days: 14
120+
121+
- package-ecosystem: "pip"
122+
target-branch: "3.14"
123+
directory: "/Tools/"
124+
schedule:
125+
interval: "quarterly"
126+
labels: ["skip issue", "skip news"]
127+
groups:
128+
pip:
129+
patterns: ["*"]
130+
cooldown:
131+
default-days: 14
132+
133+
- package-ecosystem: "pip"
134+
target-branch: "3.13"
135+
directory: "/Tools/"
136+
schedule:
137+
interval: "quarterly"
138+
labels: ["skip issue", "skip news"]
139+
groups:
140+
pip:
141+
patterns: ["*"]
31142
cooldown:
32143
default-days: 14

‎.github/workflows/build.yml‎

Lines changed: 23 additions & 15 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@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
67+
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
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@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
104+
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
105105
with:
106106
persist-credentials: false
107-
- uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
107+
- uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
108108
with:
109109
python-version: '3.x'
110110
- name: Runner image version
@@ -281,7 +281,7 @@ jobs:
281281
SSLLIB_DIR: ${{ github.workspace }}/multissl/${{ matrix.ssllib.name }}/${{ matrix.ssllib.version }}
282282
LD_LIBRARY_PATH: ${{ github.workspace }}/multissl/${{ matrix.ssllib.name }}/${{ matrix.ssllib.version }}/lib
283283
steps:
284-
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
284+
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
285285
with:
286286
persist-credentials: false
287287
- name: Runner image version
@@ -292,7 +292,7 @@ jobs:
292292
run: sudo ./.github/workflows/posix-deps-apt.sh
293293
- name: 'Restore SSL library build'
294294
id: cache-ssl-lib
295-
uses: actions/cache@668228422ae6a00e4ad889ee87cd7109ec5666a7 # v5.0.4
295+
uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
296296
with:
297297
path: ./multissl/${{ matrix.ssllib.name }}/${{ matrix.ssllib.version }}
298298
key: ${{ matrix.os }}-multissl-${{ matrix.ssllib.name }}-${{ matrix.ssllib.version }}
@@ -340,7 +340,7 @@ jobs:
340340

341341
runs-on: ${{ matrix.runs-on }}
342342
steps:
343-
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
343+
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
344344
with:
345345
persist-credentials: false
346346
- name: Build and test
@@ -353,7 +353,7 @@ jobs:
353353
timeout-minutes: 60
354354
runs-on: macos-26
355355
steps:
356-
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
356+
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
357357
with:
358358
persist-credentials: false
359359

@@ -382,7 +382,7 @@ jobs:
382382
OPENSSL_VER: 3.5.8
383383
PYTHONSTRICTEXTENSIONBUILD: 1
384384
steps:
385-
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
385+
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
386386
with:
387387
persist-credentials: false
388388
- name: Register gcc problem matcher
@@ -396,7 +396,7 @@ jobs:
396396
echo "LD_LIBRARY_PATH=${GITHUB_WORKSPACE}/multissl/openssl/${OPENSSL_VER}/lib" >> "$GITHUB_ENV"
397397
- name: 'Restore OpenSSL build'
398398
id: cache-openssl
399-
uses: actions/cache@668228422ae6a00e4ad889ee87cd7109ec5666a7 # v5.0.4
399+
uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
400400
with:
401401
path: ./multissl/openssl/${{ env.OPENSSL_VER }}
402402
key: ${{ runner.os }}-multissl-openssl-${{ env.OPENSSL_VER }}
@@ -443,7 +443,7 @@ jobs:
443443
./python -m venv "$VENV_LOC" && "$VENV_PYTHON" -m pip install -r "${GITHUB_WORKSPACE}/Tools/requirements-hypothesis.txt"
444444
- name: 'Restore Hypothesis database'
445445
id: cache-hypothesis-database
446-
uses: actions/cache@668228422ae6a00e4ad889ee87cd7109ec5666a7 # v5.0.4
446+
uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
447447
with:
448448
path: ${{ env.CPYTHON_BUILDDIR }}/.hypothesis/
449449
key: hypothesis-database-${{ github.head_ref || github.run_id }}
@@ -470,12 +470,18 @@ jobs:
470470
-x test_subprocess \
471471
-x test_signal \
472472
-x test_sysconfig
473-
- uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0
473+
- uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
474474
if: always()
475475
with:
476476
name: hypothesis-example-db
477477
path: ${{ env.CPYTHON_BUILDDIR }}/.hypothesis/examples/
478478

479+
test-lazy-imports-all:
480+
name: 'Lazy imports enabled'
481+
needs: build-context
482+
if: fromJSON(needs.build-context.outputs.run-tests)
483+
uses: ./.github/workflows/reusable-test-lazy-imports-all.yml
484+
479485
build-asan:
480486
name: 'Address sanitizer'
481487
runs-on: ${{ matrix.os }}
@@ -491,7 +497,7 @@ jobs:
491497
PYTHONSTRICTEXTENSIONBUILD: 1
492498
ASAN_OPTIONS: detect_leaks=0:allocator_may_return_null=1:handle_segv=0
493499
steps:
494-
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
500+
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
495501
with:
496502
persist-credentials: false
497503
- name: Runner image version
@@ -507,7 +513,7 @@ jobs:
507513
echo "LD_LIBRARY_PATH=${GITHUB_WORKSPACE}/multissl/openssl/${OPENSSL_VER}/lib" >> "$GITHUB_ENV"
508514
- name: 'Restore OpenSSL build'
509515
id: cache-openssl
510-
uses: actions/cache@668228422ae6a00e4ad889ee87cd7109ec5666a7 # v5.0.4
516+
uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
511517
with:
512518
path: ./multissl/openssl/${{ env.OPENSSL_VER }}
513519
key: ${{ matrix.os }}-multissl-openssl-${{ env.OPENSSL_VER }}
@@ -554,7 +560,7 @@ jobs:
554560
needs: build-context
555561
if: needs.build-context.outputs.run-ubuntu == 'true'
556562
steps:
557-
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
563+
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
558564
with:
559565
persist-credentials: false
560566
- name: Runner image version
@@ -648,6 +654,7 @@ jobs:
648654
- build-emscripten
649655
- build-wasi
650656
- test-hypothesis
657+
- test-lazy-imports-all
651658
- build-asan
652659
- build-san
653660
- cross-build-linux
@@ -656,7 +663,7 @@ jobs:
656663

657664
steps:
658665
- name: Check whether the needed jobs succeeded or failed
659-
uses: re-actors/alls-green@05ac9388f0aebcb5727afa17fcccfecd6f8ec5fe
666+
uses: re-actors/alls-green@b5b5b37504aa4183270bd3d855c52a67f212be35
660667
with:
661668
allowed-failures: >-
662669
build-android,
@@ -705,4 +712,5 @@ jobs:
705712
${{ !fromJSON(needs.build-context.outputs.run-ios) && 'build-ios,' || '' }}
706713
${{ !fromJSON(needs.build-context.outputs.run-emscripten) && 'build-emscripten,' || '' }}
707714
${{ !fromJSON(needs.build-context.outputs.run-wasi) && 'build-wasi,' || '' }}
715+
${{ !fromJSON(needs.build-context.outputs.run-tests) && 'test-lazy-imports-all,' || '' }}
708716
jobs: ${{ toJSON(needs) }}

‎.github/workflows/jit.yml‎

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ jobs:
3232
runs-on: ubuntu-26.04
3333
timeout-minutes: 60
3434
steps:
35-
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
35+
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
3636
with:
3737
persist-credentials: false
3838
- name: Install dependencies
@@ -72,10 +72,10 @@ jobs:
7272
architecture: ARM64
7373
runner: windows-11-arm
7474
steps:
75-
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
75+
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
7676
with:
7777
persist-credentials: false
78-
- uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
78+
- uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
7979
with:
8080
python-version: '3.11'
8181
# PCbuild downloads LLVM automatically:
@@ -106,10 +106,10 @@ jobs:
106106
- target: aarch64-apple-darwin/clang
107107
runner: macos-26
108108
steps:
109-
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
109+
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
110110
with:
111111
persist-credentials: false
112-
- uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
112+
- uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
113113
with:
114114
python-version: '3.11'
115115
- name: Install LLVM
@@ -149,10 +149,10 @@ jobs:
149149
- target: aarch64-unknown-linux-gnu/gcc
150150
runner: ubuntu-26.04-arm
151151
steps:
152-
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
152+
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
153153
with:
154154
persist-credentials: false
155-
- uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
155+
- uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
156156
with:
157157
python-version: '3.11'
158158
- name: Install dependencies
@@ -190,10 +190,10 @@ jobs:
190190
use_clang: true
191191
run_tests: false
192192
steps:
193-
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
193+
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
194194
with:
195195
persist-credentials: false
196-
- uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
196+
- uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0
197197
with:
198198
python-version: '3.11'
199199
- name: Install dependencies

‎.github/workflows/lint.yml‎

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

2121
steps:
22-
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
22+
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
2323
with:
2424
persist-credentials: false
25-
- uses: j178/prek-action@bdca6f102f98e2b4c7029491a53dfd366469e33d # v2.0.4
25+
- uses: j178/prek-action@4e14d07f9231acabce116ccfca13b13dd9755ece # v3.0.0

0 commit comments

Comments
 (0)