Skip to content

Commit 62167c6

Browse files
authored
Merge branch '3.14' into backport-c62c371-3.14
2 parents d73c6f8 + e2818a7 commit 62167c6

408 files changed

Lines changed: 10723 additions & 2723 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.

.github/actionlint.yaml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,12 @@
11
config-variables: null
22

3+
# Pending release of actionlint > 1.7.12 for ubuntu-26.04* support:
4+
# https://github.com/rhysd/actionlint/pull/683
5+
self-hosted-runner:
6+
labels:
7+
- ubuntu-26.04
8+
- ubuntu-26.04-arm
9+
310
paths:
411
.github/workflows/**/*.yml:
512
ignore:

.github/workflows/add-issue-header.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ permissions:
1717

1818
jobs:
1919
add-header:
20-
runs-on: ubuntu-latest
20+
runs-on: ubuntu-slim
2121
permissions:
2222
issues: write
2323
timeout-minutes: 5

.github/workflows/build.yml

Lines changed: 19 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@ jobs:
100100
name: 'Check if Autoconf files are up to date'
101101
# Don't use ubuntu-latest but a specific version to make the job
102102
# reproducible: to get the same tools versions (autoconf, aclocal, ...)
103-
runs-on: ubuntu-24.04
103+
runs-on: ubuntu-26.04
104104
container:
105105
image: ghcr.io/python/autoconf:2025.01.02.12581854023
106106
timeout-minutes: 60
@@ -143,7 +143,7 @@ jobs:
143143
name: 'Check if generated files are up to date'
144144
# Don't use ubuntu-latest but a specific version to make the job
145145
# reproducible: to get the same tools versions (autoconf, aclocal, ...)
146-
runs-on: ubuntu-24.04
146+
runs-on: ubuntu-26.04
147147
timeout-minutes: 60
148148
needs: build-context
149149
if: needs.build-context.outputs.run-tests == 'true'
@@ -240,16 +240,16 @@ jobs:
240240
strategy:
241241
fail-fast: false
242242
matrix:
243-
# macos-26 is Apple Silicon, macos-15-intel is Intel.
244-
# macos-15-intel only runs tests against the GIL-enabled CPython.
243+
# macos-26 is Apple Silicon, macos-26-intel is Intel.
244+
# macos-26-intel only runs tests against the GIL-enabled CPython.
245245
os:
246246
- macos-26
247-
- macos-15-intel
247+
- macos-26-intel
248248
free-threading:
249249
- false
250250
- true
251251
exclude:
252-
- os: macos-15-intel
252+
- os: macos-26-intel
253253
free-threading: true
254254
uses: ./.github/workflows/reusable-macos.yml
255255
with:
@@ -272,6 +272,8 @@ jobs:
272272
free-threading:
273273
- false
274274
- true
275+
# For BOLT jobs, https://apt.llvm.org/llvm.sh doesn't support LLVM 19
276+
# on Ubuntu 26.04, so stick to Ubuntu 24.04 until LLVM is upgraded.
275277
os:
276278
- ubuntu-24.04
277279
- ubuntu-24.04-arm
@@ -297,7 +299,7 @@ jobs:
297299
strategy:
298300
fail-fast: false
299301
matrix:
300-
os: [ubuntu-24.04]
302+
os: [ubuntu-26.04]
301303
ssllib:
302304
# See Tools/ssl/make_ssl_data.py for notes on adding a new version
303305
## OpenSSL
@@ -370,38 +372,29 @@ jobs:
370372
- arch: aarch64
371373
runs-on: macos-26
372374
- arch: x86_64
373-
runs-on: ubuntu-24.04
375+
runs-on: ubuntu-26.04
374376

375377
runs-on: ${{ matrix.runs-on }}
376378
steps:
377379
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
378380
with:
379381
persist-credentials: false
380382
- name: Build and test
381-
run: ./Android/android.py ci --fast-ci ${{ matrix.arch }}-linux-android
383+
run: JAVA_HOME="${JAVA_HOME_21_X64:-$JAVA_HOME_21_arm64}" ./Android/android.py ci --fast-ci ${{ matrix.arch }}-linux-android
382384

383385
build-ios:
384386
name: iOS
385387
needs: build-context
386388
if: needs.build-context.outputs.run-ios == 'true'
387389
timeout-minutes: 60
388-
runs-on: macos-14
390+
runs-on: macos-26
389391
steps:
390392
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
391393
with:
392394
persist-credentials: false
393395

394-
# GitHub recommends explicitly selecting the desired Xcode version:
395-
# https://github.com/actions/runner-images/issues/12541#issuecomment-3083850140
396-
# This became a necessity as a result of
397-
# https://github.com/actions/runner-images/issues/12541 and
398-
# https://github.com/actions/runner-images/issues/12751.
399-
- name: Select Xcode version
400-
run: |
401-
sudo xcode-select --switch /Applications/Xcode_15.4.app
402-
403396
- name: Build and test
404-
run: python3 Apple ci iOS --fast-ci --simulator 'iPhone SE (3rd generation),OS=17.5'
397+
run: python3 Apple ci iOS --fast-ci
405398

406399
build-emscripten:
407400
name: 'Emscripten'
@@ -417,7 +410,7 @@ jobs:
417410

418411
test-hypothesis:
419412
name: "Hypothesis tests on Ubuntu"
420-
runs-on: ubuntu-24.04
413+
runs-on: ubuntu-26.04
421414
timeout-minutes: 60
422415
needs: build-context
423416
if: needs.build-context.outputs.run-ubuntu == 'true'
@@ -528,7 +521,7 @@ jobs:
528521
strategy:
529522
fail-fast: false
530523
matrix:
531-
os: [ubuntu-24.04]
524+
os: [ubuntu-26.04]
532525
env:
533526
OPENSSL_VER: 3.5.7
534527
PYTHONSTRICTEXTENSIONBUILD: 1
@@ -543,10 +536,6 @@ jobs:
543536
run: echo "::add-matcher::.github/problem-matchers/gcc.json"
544537
- name: Install dependencies
545538
run: sudo ./.github/workflows/posix-deps-apt.sh
546-
- name: Set up GCC-10 for ASAN
547-
uses: egor-tensin/setup-gcc@a2861a8b8538f49cf2850980acccf6b05a1b2ae4 # v2.0
548-
with:
549-
version: 10
550539
- name: Configure OpenSSL env vars
551540
run: |
552541
echo "MULTISSL_DIR=${GITHUB_WORKSPACE}/multissl" >> "$GITHUB_ENV"
@@ -596,7 +585,7 @@ jobs:
596585

597586
cross-build-linux:
598587
name: Cross build Linux
599-
runs-on: ubuntu-latest
588+
runs-on: ubuntu-26.04
600589
timeout-minutes: 60
601590
needs: build-context
602591
if: needs.build-context.outputs.run-ubuntu == 'true'
@@ -625,6 +614,9 @@ jobs:
625614
run: ./configure --prefix="$BUILD_DIR/cross-python" --with-build-python="$BUILD_DIR/host-python/bin/python3"
626615
- name: Install cross Python
627616
run: make -j8 install
617+
- name: Display build info
618+
run: |
619+
"$BUILD_DIR/cross-python/bin/python3" -m test.pythoninfo
628620
- name: Run test subset with host build
629621
run: |
630622
"$BUILD_DIR/cross-python/bin/python3" -m test test_sysconfig test_site test_embed

.github/workflows/jit.yml

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ env:
2626
jobs:
2727
interpreter:
2828
name: Interpreter (Debug)
29-
runs-on: ubuntu-24.04
29+
runs-on: ubuntu-26.04
3030
timeout-minutes: 60
3131
steps:
3232
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
@@ -96,9 +96,9 @@ jobs:
9696
- false
9797
include:
9898
- target: x86_64-apple-darwin/clang
99-
runner: macos-15-intel
99+
runner: macos-26-intel
100100
- target: aarch64-apple-darwin/clang
101-
runner: macos-15
101+
runner: macos-26
102102
steps:
103103
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
104104
with:
@@ -138,6 +138,8 @@ jobs:
138138
- true
139139
- false
140140
include:
141+
# https://apt.llvm.org/llvm.sh doesn't support LLVM 19
142+
# on Ubuntu 26.04, so stick to Ubuntu 24.04 until LLVM is upgraded.
141143
- target: x86_64-unknown-linux-gnu/gcc
142144
runner: ubuntu-24.04
143145
- target: aarch64-unknown-linux-gnu/gcc
@@ -162,6 +164,8 @@ jobs:
162164
linux-extras:
163165
name: ${{ matrix.name }}
164166

167+
# https://apt.llvm.org/llvm.sh doesn't support LLVM 19 on Ubuntu 26.04,
168+
# so stick to Ubuntu 24.04 until LLVM is upgraded.
165169
runs-on: ubuntu-24.04
166170
timeout-minutes: 60
167171
strategy:

.github/workflows/new-bugs-announce-notifier.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ permissions:
1010

1111
jobs:
1212
notify-new-bugs-announce:
13-
runs-on: ubuntu-latest
13+
runs-on: ubuntu-slim
1414
permissions:
1515
issues: read
1616
timeout-minutes: 10

.github/workflows/posix-deps-apt.sh

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,21 +4,20 @@ apt-get update
44
apt-get -yq --no-install-recommends install \
55
build-essential \
66
pkg-config \
7+
curl \
78
gdb \
89
lcov \
910
libb2-dev \
1011
libbz2-dev \
1112
libffi-dev \
12-
libgdbm-dev \
1313
libgdbm-compat-dev \
14+
libgdbm-dev \
1415
liblzma-dev \
1516
libncurses5-dev \
1617
libreadline6-dev \
1718
libsqlite3-dev \
1819
libssl-dev \
1920
libzstd-dev \
20-
lzma \
21-
lzma-dev \
2221
strace \
2322
tk-dev \
2423
uuid-dev \

.github/workflows/require-pr-label.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ jobs:
1111
label-dnm:
1212
name: DO-NOT-MERGE
1313
if: github.repository_owner == 'python'
14-
runs-on: ubuntu-latest
14+
runs-on: ubuntu-slim
1515
permissions:
1616
pull-requests: read
1717
timeout-minutes: 10
@@ -28,7 +28,7 @@ jobs:
2828
label-reviews:
2929
name: Unresolved review
3030
if: github.repository_owner == 'python'
31-
runs-on: ubuntu-latest
31+
runs-on: ubuntu-slim
3232
permissions:
3333
pull-requests: read
3434
timeout-minutes: 10

.github/workflows/reusable-docs.yml

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,17 @@ name: Reusable Docs
33
on:
44
workflow_call:
55
workflow_dispatch:
6+
# Pushes to CPython branches seed the pip caches under the exact keys every
7+
# docs PR restores from. Without a branch-scoped copy, each PR saves a
8+
# duplicate into its own refs/pull/N/merge scope that nothing else can read.
9+
push:
10+
branches:
11+
- main
12+
- '3.*'
13+
paths:
14+
- 'Doc/pylock.toml'
15+
- 'Doc/requirements.txt'
16+
- '.github/workflows/reusable-docs.yml'
617

718
permissions:
819
contents: read
@@ -79,7 +90,7 @@ jobs:
7990
# Run "doctest" on HEAD as new syntax doesn't exist in the latest stable release
8091
doctest:
8192
name: 'Doctest'
82-
runs-on: ubuntu-24.04
93+
runs-on: ubuntu-26.04
8394
timeout-minutes: 60
8495
steps:
8596
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2

.github/workflows/reusable-emscripten.yml

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ env:
1212
jobs:
1313
build-emscripten-reusable:
1414
name: 'build and test'
15-
runs-on: ubuntu-24.04
15+
runs-on: ubuntu-26.04
1616
timeout-minutes: 40
1717
steps:
1818
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
@@ -63,15 +63,17 @@ jobs:
6363
run: python3 Platforms/emscripten configure-build-python -- --config-cache --with-pydebug
6464
- name: "Make build Python"
6565
run: python3 Platforms/emscripten make-build-python
66+
- name: "Display build info of the build Python"
67+
run: python3 Platforms/emscripten pythoninfo-build
6668
- name: "Make dependencies"
6769
run: >-
6870
python3 Platforms/emscripten make-dependencies
6971
${{ steps.emsdk-cache.outputs.cache-hit == 'true' && '--check-up-to-date' || '' }}
70-
- name: "Configure host Python"
72+
- name: "Configure host/Emscripten Python"
7173
run: python3 Platforms/emscripten configure-host --host-runner node -- --config-cache
72-
- name: "Make host Python"
74+
- name: "Make host/Emscripten Python"
7375
run: python3 Platforms/emscripten make-host
74-
- name: "Display build info"
75-
run: python3 Platforms/emscripten run --pythoninfo
76+
- name: "Display build info of the host/Emscripten Python"
77+
run: python3 Platforms/emscripten pythoninfo-host
7678
- name: "Test"
7779
run: python3 Platforms/emscripten run --test

.github/workflows/reusable-macos.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -56,15 +56,15 @@ jobs:
5656
--prefix=/opt/python-dev \
5757
--with-openssl="$(brew --prefix openssl@3.0)"
5858
- name: Build CPython
59-
if : ${{ inputs.free-threading || inputs.os != 'macos-15-intel' }}
59+
if : ${{ inputs.free-threading || inputs.os != 'macos-26-intel' }}
6060
run: gmake -j8
6161
- name: Build CPython for compiler warning check
62-
if : ${{ !inputs.free-threading && inputs.os == 'macos-15-intel' }}
62+
if : ${{ !inputs.free-threading && inputs.os == 'macos-26-intel' }}
6363
run: set -o pipefail; gmake -j8 --output-sync 2>&1 | tee compiler_output_macos.txt
6464
- name: Display build info
6565
run: make pythoninfo
6666
- name: Check compiler warnings
67-
if : ${{ !inputs.free-threading && inputs.os == 'macos-15-intel' }}
67+
if : ${{ !inputs.free-threading && inputs.os == 'macos-26-intel' }}
6868
run: >-
6969
python3 Tools/build/check_warnings.py
7070
--compiler-output-file-path=compiler_output_macos.txt

0 commit comments

Comments
 (0)