Skip to content

Commit d8ebb2d

Browse files
authored
Merge branch 'main' into gh-152754-os-race-mutex
2 parents 6a512e3 + b11e749 commit d8ebb2d

912 files changed

Lines changed: 20429 additions & 23195 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/windows-layout-steps.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ steps:
1212
displayName: Show layout info (${{ parameters.kind }})
1313

1414
- ${{ if eq(parameters.fulltest, 'true') }}:
15-
- script: .\python.exe -m test -q -uall -u-cpu -rwW --slowest --timeout=1200 -j0 --junit-xml="$(Build.BinariesDirectory)\test-results-${{ parameters.kind }}.xml" --tempdir "$(Build.BinariesDirectory)\tmp-${{ parameters.kind }}-$(arch)" -i test_launcher
15+
- script: .\python.exe -m test -q -uall -u-cpu -rwW --slowest --timeout=1200 -j0 --junit-xml="$(Build.BinariesDirectory)\test-results-${{ parameters.kind }}.xml" --tempdir "$(Build.BinariesDirectory)\tmp-${{ parameters.kind }}-$(arch)"
1616
workingDirectory: $(Build.BinariesDirectory)\layout-${{ parameters.kind }}-$(arch)
1717
displayName: ${{ parameters.kind }} Tests
1818
env:

.gitattributes

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
*.zip binary
2020

2121
# Specific binary files
22-
PC/classicAppCompat.* binary
22+
# -- None right now --
2323

2424
# Text files that should not be subject to eol conversion
2525
[attr]noeol -text

.github/CODEOWNERS

Lines changed: 5 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -171,9 +171,6 @@ Mac/ @python/macos-team
171171
Lib/_osx_support.py @python/macos-team
172172
Lib/test/test__osx_support.py @python/macos-team
173173

174-
# WebAssembly
175-
Tools/wasm/README.md @brettcannon @freakboy3742 @emmatyping
176-
177174
# WebAssembly (Emscripten)
178175
Platforms/emscripten @freakboy3742 @emmatyping
179176
Tools/wasm/emscripten @freakboy3742 @emmatyping
@@ -188,12 +185,8 @@ Tools/wasm/wasi @brettcannon @emmatyping @savannahostrowski
188185
PC/ @python/windows-team
189186
PCbuild/ @python/windows-team
190187

191-
# Windows installer packages
192-
Tools/msi/ @python/windows-team
193-
Tools/nuget/ @python/windows-team
194-
195-
# Windows Launcher
196-
PC/launcher.c @python/windows-team @vsajip
188+
# Windows Venv launcher/redirector
189+
PC/venvlauncher.c @python/windows-team @vsajip
197190

198191

199192
# ----------------------------------------------------------------------------
@@ -339,7 +332,6 @@ Modules/_remote_debugging/ @pablogsal
339332

340333
# Sub-Interpreters
341334
**/*crossinterp* @ericsnowcurrently
342-
**/*interpreteridobject.* @ericsnowcurrently
343335
Doc/library/concurrent.interpreters.rst @ericsnowcurrently
344336
Lib/concurrent/futures/interpreter.py @ericsnowcurrently
345337
Lib/concurrent/interpreters/ @ericsnowcurrently
@@ -650,3 +642,6 @@ Modules/**/clinic/
650642
Objects/**/clinic/
651643
PC/**/clinic/
652644
Python/**/clinic/
645+
646+
# Exclude HTML IDs list
647+
Doc/tools/removed-ids.txt

.github/workflows/build.yml

Lines changed: 9 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -181,22 +181,6 @@ jobs:
181181
free-threading: ${{ matrix.free-threading }}
182182
interpreter: ${{ matrix.interpreter }}
183183

184-
build-windows-msi:
185-
# ${{ '' } is a hack to nest jobs under the same sidebar category.
186-
name: Windows MSI${{ '' }} # zizmor: ignore[obfuscation]
187-
needs: build-context
188-
if: fromJSON(needs.build-context.outputs.run-windows-msi)
189-
strategy:
190-
fail-fast: false
191-
matrix:
192-
arch:
193-
- x86
194-
- x64
195-
- arm64
196-
uses: ./.github/workflows/reusable-windows-msi.yml
197-
with:
198-
arch: ${{ matrix.arch }}
199-
200184
build-macos:
201185
name: >-
202186
macOS
@@ -261,6 +245,12 @@ jobs:
261245
os: ${{ matrix.os }}
262246
test-opts: ${{ matrix.test-opts || '' }}
263247

248+
build-ubuntu-installed:
249+
name: 'Ubuntu (installed)'
250+
needs: build-context
251+
if: needs.build-context.outputs.run-ubuntu == 'true'
252+
uses: ./.github/workflows/reusable-install.yml
253+
264254
build-ubuntu-ssltests:
265255
name: 'Ubuntu SSL tests'
266256
runs-on: ${{ matrix.os }}
@@ -354,7 +344,7 @@ jobs:
354344
with:
355345
persist-credentials: false
356346
- name: Build and test
357-
run: JAVA_HOME="${JAVA_HOME_21_X64:-$JAVA_HOME_21_arm64}" python3 Platforms/Android ci --fast-ci ${{ matrix.arch }}-linux-android
347+
run: python3 Platforms/Android ci --fast-ci ${{ matrix.arch }}-linux-android
358348

359349
build-ios:
360350
name: iOS
@@ -650,9 +640,9 @@ jobs:
650640
- check-generated-files
651641
- check-c-api-docs
652642
- build-windows
653-
- build-windows-msi
654643
- build-macos
655644
- build-ubuntu
645+
- build-ubuntu-installed
656646
- build-ubuntu-ssltests
657647
- build-ios
658648
- build-emscripten
@@ -671,7 +661,6 @@ jobs:
671661
allowed-failures: >-
672662
build-android,
673663
build-emscripten,
674-
build-windows-msi,
675664
build-ubuntu-ssltests,
676665
test-hypothesis,
677666
cifuzz,
@@ -703,6 +692,7 @@ jobs:
703692
!fromJSON(needs.build-context.outputs.run-ubuntu)
704693
&& '
705694
build-ubuntu,
695+
build-ubuntu-installed,
706696
build-ubuntu-ssltests,
707697
test-hypothesis,
708698
build-asan,

.github/workflows/reusable-check-html-ids.yml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,13 @@ jobs:
2020
with:
2121
persist-credentials: false
2222
ref: ${{ github.event.pull_request.head.sha }}
23+
- name: 'Downgrade Git'
24+
# Temporarily downgrade to 2.43 until 2.55 is in the runner image,
25+
# to avoid "fatal: shallow file has changed since we read it" bug.
26+
# See https://github.com/python/cpython/issues/151365.
27+
run: |
28+
sudo apt-get install -y --allow-downgrades 'git=1:2.43.*' 'git-man=1:2.43.*'
29+
git --version
2330
- name: 'Find merge base'
2431
id: merge-base
2532
run: |

.github/workflows/reusable-context.yml

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -47,9 +47,6 @@ on: # yamllint disable-line rule:truthy
4747
run-wasi:
4848
description: Whether to run the WASI tests
4949
value: ${{ jobs.compute-changes.outputs.run-wasi }} # bool
50-
run-windows-msi:
51-
description: Whether to run the MSI installer smoke tests
52-
value: ${{ jobs.compute-changes.outputs.run-windows-msi }} # bool
5350
run-windows-tests:
5451
description: Whether to run the Windows tests
5552
value: ${{ jobs.compute-changes.outputs.run-windows-tests }} # bool
@@ -73,7 +70,6 @@ jobs:
7370
run-ubuntu: ${{ steps.changes.outputs.run-ubuntu }}
7471
run-emscripten: ${{ steps.changes.outputs.run-emscripten }}
7572
run-wasi: ${{ steps.changes.outputs.run-wasi }}
76-
run-windows-msi: ${{ steps.changes.outputs.run-windows-msi }}
7773
run-windows-tests: ${{ steps.changes.outputs.run-windows-tests }}
7874
steps:
7975
- name: Set up Python
@@ -94,6 +90,15 @@ jobs:
9490
|| ''
9591
}}
9692
93+
- name: 'Downgrade Git'
94+
# Temporarily downgrade to 2.43 until 2.55 is in the runner image,
95+
# to avoid "fatal: shallow file has changed since we read it" bug.
96+
# See https://github.com/python/cpython/issues/151365.
97+
if: github.event_name == 'pull_request'
98+
run: |
99+
sudo apt-get install -y --allow-downgrades 'git=1:2.43.*' 'git-man=1:2.43.*'
100+
git --version
101+
97102
# Adapted from https://github.com/actions/checkout/issues/520#issuecomment-1167205721
98103
- name: Fetch commits to get branch diff
99104
if: github.event_name == 'pull_request'

.github/workflows/reusable-docs.yml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,14 @@ jobs:
4747
&& github.event.pull_request.head.sha
4848
|| ''
4949
}}
50+
- name: 'Downgrade Git'
51+
# Temporarily downgrade to 2.43 until 2.55 is in the runner image,
52+
# to avoid "fatal: shallow file has changed since we read it" bug.
53+
# See https://github.com/python/cpython/issues/151365.
54+
if: github.event_name == 'pull_request'
55+
run: |
56+
sudo apt-get install -y --allow-downgrades 'git=1:2.43.*' 'git-man=1:2.43.*'
57+
git --version
5058
# Adapted from https://github.com/actions/checkout/issues/520#issuecomment-1167205721
5159
- name: 'Fetch commits to get branch diff'
5260
if: github.event_name == 'pull_request'
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
name: Reusable Ubuntu (installed)
2+
3+
on:
4+
workflow_call:
5+
6+
permissions:
7+
contents: read
8+
9+
env:
10+
FORCE_COLOR: 1
11+
12+
jobs:
13+
build-install-test:
14+
name: build, install and test
15+
runs-on: ubuntu-26.04-arm
16+
timeout-minutes: 60
17+
env:
18+
PYTHONSTRICTEXTENSIONBUILD: 1
19+
steps:
20+
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
21+
with:
22+
persist-credentials: false
23+
- name: Register gcc problem matcher
24+
run: echo "::add-matcher::.github/problem-matchers/gcc.json"
25+
- name: Set install dir
26+
run:
27+
echo "INSTALL_DIR=$(realpath "${GITHUB_WORKSPACE}/../installed-python")" >> "$GITHUB_ENV"
28+
- name: Install dependencies
29+
run: sudo ./.github/workflows/posix-deps-apt.sh
30+
- name: Configure CPython
31+
run: ./configure --config-cache --prefix="$INSTALL_DIR"
32+
- name: Build CPython
33+
run: make -j
34+
- name: Install CPython
35+
run: make install
36+
- name: Set installed interpreter
37+
run: |
38+
ldversion=$(./python -c 'import sysconfig; print(sysconfig.get_config_var("LDVERSION"))')
39+
echo "INSTALLED_PYTHON=${INSTALL_DIR}/bin/python${ldversion}" >> "$GITHUB_ENV"
40+
- name: Display build info
41+
run: |
42+
"$INSTALLED_PYTHON" -m test.pythoninfo
43+
- name: Test the installed Python
44+
run: xvfb-run "$INSTALLED_PYTHON" -m test --fast-ci --timeout=900

.github/workflows/reusable-san.yml

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,8 @@ jobs:
3939
run: |
4040
sudo ./.github/workflows/posix-deps-apt.sh
4141
# On ubuntu-26.04 image, clang is clang-21 by default
42+
# NOTE: when bumping to a new version of clang,
43+
# please update the versions in `Tools/pixi-packages/variants.yaml` too.
4244
echo "CC=clang" >> "$GITHUB_ENV"
4345
echo "CXX=clang++" >> "$GITHUB_ENV"
4446
- name: TSan option setup
@@ -53,7 +55,7 @@ jobs:
5355
SAN_LOG_OPTION: log_path=${{ github.workspace }}/san_log
5456
SUPPRESSIONS_SUFFIX: >-
5557
${{
56-
fromJSON(inputs.free-threading)
58+
inputs.free-threading
5759
&& '_free_threading'
5860
|| ''
5961
}}
@@ -99,7 +101,7 @@ jobs:
99101
}}
100102
--with-pydebug
101103
${{ inputs.sanitizer == 'TSan' && '--with-openssl="$OPENSSL_DIR" --with-openssl-rpath=auto' || '' }}
102-
${{ fromJSON(inputs.free-threading) && '--disable-gil' || '' }}
104+
${{ inputs.free-threading && '--disable-gil' || '' }}
103105
- name: Build CPython
104106
run: make -j4
105107
- name: Display build info
@@ -112,7 +114,7 @@ jobs:
112114
- name: Parallel tests
113115
if: >-
114116
inputs.sanitizer == 'TSan'
115-
&& fromJSON(inputs.free-threading)
117+
&& inputs.free-threading
116118
run: ./python -m test --tsan-parallel --parallel-threads=4 -j4 -W --timeout=600 --slowest
117119
- name: Display logs
118120
if: always()
@@ -123,7 +125,7 @@ jobs:
123125
with:
124126
name: >-
125127
${{ inputs.sanitizer }}-logs-${{
126-
fromJSON(inputs.free-threading)
128+
inputs.free-threading
127129
&& 'free-threading'
128130
|| 'default'
129131
}}

.github/workflows/reusable-ubuntu.yml

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -14,14 +14,14 @@ on:
1414
type: boolean
1515
default: false
1616
os:
17-
description: OS to run the job
18-
required: true
19-
type: string
17+
description: OS to run the job
18+
required: true
19+
type: string
2020
test-opts:
21-
description: Extra options to pass to the test runner via TESTOPTS
22-
required: false
23-
type: string
24-
default: ''
21+
description: Extra options to pass to the test runner via TESTOPTS
22+
required: false
23+
type: string
24+
default: ''
2525

2626
permissions:
2727
contents: read
@@ -47,7 +47,7 @@ jobs:
4747
- name: Install dependencies
4848
run: sudo ./.github/workflows/posix-deps-apt.sh
4949
- name: Install Clang and BOLT
50-
if: ${{ fromJSON(inputs.bolt-optimizations) }}
50+
if: inputs.bolt-optimizations
5151
run: |
5252
# On ubuntu-26.04 image, LLVM is LLVM-21 by default
5353
sudo apt-get install --no-install-recommends bolt-21
@@ -88,10 +88,10 @@ jobs:
8888
--enable-slower-safety
8989
--enable-safety
9090
--with-openssl="$OPENSSL_DIR"
91-
${{ fromJSON(inputs.free-threading) && '--disable-gil' || '' }}
92-
${{ fromJSON(inputs.bolt-optimizations) && '--enable-bolt' || '' }}
91+
${{ inputs.free-threading && '--disable-gil' || '' }}
92+
${{ inputs.bolt-optimizations && '--enable-bolt' || '' }}
9393
- name: Build CPython out-of-tree
94-
if: ${{ inputs.free-threading }}
94+
if: inputs.free-threading
9595
working-directory: ${{ env.CPYTHON_BUILDDIR }}
9696
run: make -j
9797
- name: Build CPython out-of-tree (for compiler warning check)

0 commit comments

Comments
 (0)