Skip to content

Commit c848f39

Browse files
authored
Merge branch 'main' into gh-100445
2 parents d8c0026 + 3686013 commit c848f39

File tree

1,177 files changed

+78400
-48007
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,177 files changed

+78400
-48007
lines changed

.azure-pipelines/ci.yml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ jobs:
88
displayName: Pre-build checks
99

1010
pool:
11-
vmImage: ubuntu-20.04
11+
vmImage: ubuntu-22.04
1212

1313
steps:
1414
- template: ./prebuild-checks.yml
@@ -20,7 +20,7 @@ jobs:
2020
condition: and(succeeded(), eq(dependencies.Prebuild.outputs['docs.run'], 'true'))
2121

2222
pool:
23-
vmImage: ubuntu-20.04
23+
vmImage: ubuntu-22.04
2424

2525
steps:
2626
- template: ./docs-steps.yml
@@ -52,12 +52,12 @@ jobs:
5252
condition: and(succeeded(), eq(dependencies.Prebuild.outputs['tests.run'], 'true'))
5353

5454
pool:
55-
vmImage: ubuntu-20.04
55+
vmImage: ubuntu-22.04
5656

5757
variables:
5858
testRunTitle: '$(build.sourceBranchName)-linux'
5959
testRunPlatform: linux
60-
openssl_version: 1.1.1q
60+
openssl_version: 1.1.1t
6161

6262
steps:
6363
- template: ./posix-steps.yml
@@ -78,12 +78,12 @@ jobs:
7878
)
7979
8080
pool:
81-
vmImage: ubuntu-20.04
81+
vmImage: ubuntu-22.04
8282

8383
variables:
8484
testRunTitle: '$(Build.SourceBranchName)-linux-coverage'
8585
testRunPlatform: linux-coverage
86-
openssl_version: 1.1.1q
86+
openssl_version: 1.1.1t
8787

8888
steps:
8989
- template: ./posix-steps.yml

.azure-pipelines/pr.yml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ jobs:
88
displayName: Pre-build checks
99

1010
pool:
11-
vmImage: ubuntu-20.04
11+
vmImage: ubuntu-22.04
1212

1313
steps:
1414
- template: ./prebuild-checks.yml
@@ -20,7 +20,7 @@ jobs:
2020
condition: and(succeeded(), eq(dependencies.Prebuild.outputs['docs.run'], 'true'))
2121

2222
pool:
23-
vmImage: ubuntu-20.04
23+
vmImage: ubuntu-22.04
2424

2525
steps:
2626
- template: ./docs-steps.yml
@@ -52,12 +52,12 @@ jobs:
5252
condition: and(succeeded(), eq(dependencies.Prebuild.outputs['tests.run'], 'true'))
5353

5454
pool:
55-
vmImage: ubuntu-20.04
55+
vmImage: ubuntu-22.04
5656

5757
variables:
5858
testRunTitle: '$(system.pullRequest.TargetBranch)-linux'
5959
testRunPlatform: linux
60-
openssl_version: 1.1.1q
60+
openssl_version: 1.1.1t
6161

6262
steps:
6363
- template: ./posix-steps.yml
@@ -78,12 +78,12 @@ jobs:
7878
)
7979
8080
pool:
81-
vmImage: ubuntu-20.04
81+
vmImage: ubuntu-22.04
8282

8383
variables:
8484
testRunTitle: '$(Build.SourceBranchName)-linux-coverage'
8585
testRunPlatform: linux-coverage
86-
openssl_version: 1.1.1q
86+
openssl_version: 1.1.1t
8787

8888
steps:
8989
- template: ./posix-steps.yml

.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)"
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
1616
workingDirectory: $(Build.BinariesDirectory)\layout-${{ parameters.kind }}-$(arch)
1717
displayName: ${{ parameters.kind }} Tests
1818
env:

.devcontainer/Dockerfile

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
FROM docker.io/library/fedora:37
2+
3+
ENV CC=clang
4+
5+
ENV WASI_SDK_VERSION=19
6+
ENV WASI_SDK_PATH=/opt/wasi-sdk
7+
8+
ENV WASMTIME_HOME=/opt/wasmtime
9+
ENV WASMTIME_VERSION=7.0.0
10+
ENV WASMTIME_CPU_ARCH=x86_64
11+
12+
RUN dnf -y --nodocs install git clang xz python3-blurb dnf-plugins-core && \
13+
dnf -y --nodocs builddep python3 && \
14+
dnf -y clean all
15+
16+
RUN mkdir ${WASI_SDK_PATH} && \
17+
curl --location https://github.com/WebAssembly/wasi-sdk/releases/download/wasi-sdk-${WASI_SDK_VERSION}/wasi-sdk-${WASI_SDK_VERSION}.0-linux.tar.gz | \
18+
tar --strip-components 1 --directory ${WASI_SDK_PATH} --extract --gunzip
19+
20+
RUN mkdir --parents ${WASMTIME_HOME} && \
21+
curl --location "https://github.com/bytecodealliance/wasmtime/releases/download/v${WASMTIME_VERSION}/wasmtime-v${WASMTIME_VERSION}-${WASMTIME_CPU_ARCH}-linux.tar.xz" | \
22+
xz --decompress | \
23+
tar --strip-components 1 --directory ${WASMTIME_HOME} -x && \
24+
ln -s ${WASMTIME_HOME}/wasmtime /usr/local/bin

.devcontainer/devcontainer.json

Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
{
2+
"build": {
3+
"dockerfile": "Dockerfile"
4+
},
5+
"onCreateCommand": [
6+
// Install common tooling.
7+
"dnf",
8+
"install",
9+
"-y",
10+
"which",
11+
"zsh",
12+
"fish"
13+
],
14+
"updateContentCommand": {
15+
// Using the shell for `nproc` usage.
16+
"python": "./configure --config-cache --with-pydebug && make -s -j `nproc`",
17+
"docs": [
18+
"make",
19+
"--directory",
20+
"Doc",
21+
"venv",
22+
"html"
23+
]
24+
},
25+
"customizations": {
26+
"vscode": {
27+
"extensions": [
28+
// Highlighting for Parser/Python.asdl.
29+
"brettcannon.zephyr-asdl",
30+
// Highlighting for configure.ac.
31+
"maelvalais.autoconf",
32+
// C auto-complete.
33+
"ms-vscode.cpptools",
34+
// To view built docs.
35+
"ms-vscode.live-server"
36+
// https://github.com/microsoft/vscode-python/issues/18073
37+
// "ms-python.python"
38+
],
39+
"settings": {
40+
"C_Cpp.default.compilerPath": "/usr/bin/clang",
41+
"C_Cpp.default.cStandard": "c11",
42+
"C_Cpp.default.defines": [
43+
"CONFIG_64",
44+
"Py_BUILD_CORE"
45+
],
46+
"C_Cpp.default.includePath": [
47+
"${workspaceFolder}/*",
48+
"${workspaceFolder}/Include/**"
49+
],
50+
// https://github.com/microsoft/vscode-cpptools/issues/10732
51+
"C_Cpp.errorSquiggles": "disabled",
52+
"editor.insertSpaces": true,
53+
"editor.rulers": [
54+
80
55+
],
56+
"editor.tabSize": 4,
57+
"editor.trimAutoWhitespace": true,
58+
"files.associations": {
59+
"*.h": "c"
60+
},
61+
"files.encoding": "utf8",
62+
"files.eol": "\n",
63+
"files.insertFinalNewline": true,
64+
"files.trimTrailingWhitespace": true,
65+
"python.analysis.diagnosticSeverityOverrides": {
66+
// Complains about shadowing the stdlib w/ the stdlib.
67+
"reportShadowedImports": "none",
68+
// Doesn't like _frozen_importlib.
69+
"reportMissingImports": "none"
70+
},
71+
"python.analysis.extraPaths": [
72+
"Lib"
73+
],
74+
"python.defaultInterpreterPath": "./python",
75+
"[restructuredtext]": {
76+
"editor.tabSize": 3
77+
}
78+
}
79+
}
80+
}
81+
}

.gitattributes

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,10 @@ Lib/test/test_importlib/resources/data01/* noeol
3232
Lib/test/test_importlib/resources/namespacedata01/* noeol
3333
Lib/test/xmltestdata/* noeol
3434

35+
# Shell scripts should have LF even on Windows because of Cygwin
36+
Lib/venv/scripts/common/activate text eol=lf
37+
Lib/venv/scripts/posix/* text eol=lf
38+
3539
# CRLF files
3640
[attr]dos text eol=crlf
3741

.github/CODEOWNERS

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

77
# GitHub
8-
.github/** @ezio-melotti
8+
.github/** @ezio-melotti @hugovk
9+
10+
# Build system
11+
configure* @erlend-aasland @corona10
912

1013
# asyncio
1114
**/*asyncio* @1st1 @asvetlov @gvanrossum @kumaraditya303
@@ -58,12 +61,8 @@ Python/traceback.c @iritkatriel
5861
/Tools/build/parse_html5_entities.py @ezio-melotti
5962

6063
# Import (including importlib).
61-
# Ignoring importlib.h so as to not get flagged on
62-
# all pull requests that change the emitted
63-
# bytecode.
64-
**/*import*.c @brettcannon @encukou @ericsnowcurrently @ncoghlan @warsaw
65-
**/*import*.py @brettcannon @encukou @ericsnowcurrently @ncoghlan @warsaw
66-
**/*importlib/resources/* @jaraco @warsaw @brettcannon @FFY00
64+
**/*import* @brettcannon @encukou @ericsnowcurrently @ncoghlan @warsaw
65+
**/*importlib/resources/* @jaraco @warsaw @FFY00
6766
**/importlib/metadata/* @jaraco @warsaw
6867

6968
# Dates and times
@@ -144,16 +143,18 @@ Lib/ast.py @isidentical
144143
**/*cgi* @ethanfurman
145144
**/*tarfile* @ethanfurman
146145

147-
**/*tomllib* @encukou
146+
**/*tomllib* @encukou @hauntsaninja
148147

149148
**/*sysconfig* @FFY00
150149

150+
**/*cjkcodecs* @corona10
151+
151152
# macOS
152153
/Mac/ @python/macos-team
153154
**/*osx_support* @python/macos-team
154155

155156
# pathlib
156-
**/*pathlib* @brettcannon
157+
**/*pathlib* @barneygale
157158

158159
# zipfile.Path
159160
**/*zipfile/*_path.py @jaraco

.github/workflows/build.yml

Lines changed: 27 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ jobs:
3333
check_source:
3434
name: 'Check for source changes'
3535
runs-on: ubuntu-latest
36+
timeout-minutes: 10
3637
outputs:
3738
run_tests: ${{ steps.check.outputs.run_tests }}
3839
steps:
@@ -63,6 +64,7 @@ jobs:
6364
check_generated_files:
6465
name: 'Check if generated files are up to date'
6566
runs-on: ubuntu-latest
67+
timeout-minutes: 60
6668
needs: check_source
6769
if: needs.check_source.outputs.run_tests == 'true'
6870
steps:
@@ -111,10 +113,14 @@ jobs:
111113
run: make smelly
112114
- name: Check limited ABI symbols
113115
run: make check-limited-abi
116+
- name: Check for unsupported C global variables
117+
if: github.event_name == 'pull_request' # $GITHUB_EVENT_NAME
118+
run: make check-c-globals
114119

115120
build_win32:
116121
name: 'Windows (x86)'
117122
runs-on: windows-latest
123+
timeout-minutes: 60
118124
needs: check_source
119125
if: needs.check_source.outputs.run_tests == 'true'
120126
env:
@@ -123,7 +129,6 @@ jobs:
123129
- uses: actions/checkout@v3
124130
- name: Build CPython
125131
run: .\PCbuild\build.bat -e -d -p Win32
126-
timeout-minutes: 30
127132
- name: Display build info
128133
run: .\python.bat -m test.pythoninfo
129134
- name: Tests
@@ -132,6 +137,7 @@ jobs:
132137
build_win_amd64:
133138
name: 'Windows (x64)'
134139
runs-on: windows-latest
140+
timeout-minutes: 60
135141
needs: check_source
136142
if: needs.check_source.outputs.run_tests == 'true'
137143
env:
@@ -142,7 +148,6 @@ jobs:
142148
run: echo "::add-matcher::.github/problem-matchers/msvc.json"
143149
- name: Build CPython
144150
run: .\PCbuild\build.bat -e -d -p x64
145-
timeout-minutes: 30
146151
- name: Display build info
147152
run: .\python.bat -m test.pythoninfo
148153
- name: Tests
@@ -151,18 +156,27 @@ jobs:
151156
build_macos:
152157
name: 'macOS'
153158
runs-on: macos-latest
159+
timeout-minutes: 60
154160
needs: check_source
155161
if: needs.check_source.outputs.run_tests == 'true'
156162
env:
163+
HOMEBREW_NO_ANALYTICS: 1
164+
HOMEBREW_NO_AUTO_UPDATE: 1
165+
HOMEBREW_NO_INSTALL_CLEANUP: 1
157166
PYTHONSTRICTEXTENSIONBUILD: 1
158167
steps:
159168
- uses: actions/checkout@v3
160-
- name: Prepare homebrew environment variables
161-
run: |
162-
echo "LDFLAGS=-L$(brew --prefix tcl-tk)/lib" >> $GITHUB_ENV
163-
echo "PKG_CONFIG_PATH=$(brew --prefix [email protected])/lib/pkgconfig:$(brew --prefix tcl-tk)/lib/pkgconfig" >> $GITHUB_ENV
169+
- name: Install Homebrew dependencies
170+
run: brew install pkg-config [email protected] xz gdbm tcl-tk
164171
- name: Configure CPython
165-
run: ./configure --with-pydebug --prefix=/opt/python-dev
172+
run: |
173+
CFLAGS="-I$(brew --prefix gdbm)/include -I$(brew --prefix xz)/include" \
174+
LDFLAGS="-L$(brew --prefix gdbm)/lib -I$(brew --prefix xz)/lib" \
175+
PKG_CONFIG_PATH="$(brew --prefix tcl-tk)/lib/pkgconfig" \
176+
./configure \
177+
--with-pydebug \
178+
--prefix=/opt/python-dev \
179+
--with-openssl="$(brew --prefix [email protected])"
166180
- name: Build CPython
167181
run: make -j4
168182
- name: Display build info
@@ -173,10 +187,11 @@ jobs:
173187
build_ubuntu:
174188
name: 'Ubuntu'
175189
runs-on: ubuntu-20.04
190+
timeout-minutes: 60
176191
needs: check_source
177192
if: needs.check_source.outputs.run_tests == 'true'
178193
env:
179-
OPENSSL_VER: 1.1.1s
194+
OPENSSL_VER: 1.1.1t
180195
PYTHONSTRICTEXTENSIONBUILD: 1
181196
steps:
182197
- uses: actions/checkout@v3
@@ -230,12 +245,13 @@ jobs:
230245
build_ubuntu_ssltests:
231246
name: 'Ubuntu SSL tests with OpenSSL'
232247
runs-on: ubuntu-20.04
248+
timeout-minutes: 60
233249
needs: check_source
234250
if: needs.check_source.outputs.run_tests == 'true'
235251
strategy:
236252
fail-fast: false
237253
matrix:
238-
openssl_ver: [1.1.1s, 3.0.7]
254+
openssl_ver: [1.1.1t, 3.0.8, 3.1.0-beta1]
239255
env:
240256
OPENSSL_VER: ${{ matrix.openssl_ver }}
241257
MULTISSL_DIR: ${{ github.workspace }}/multissl
@@ -279,10 +295,11 @@ jobs:
279295
build_asan:
280296
name: 'Address sanitizer'
281297
runs-on: ubuntu-20.04
298+
timeout-minutes: 60
282299
needs: check_source
283300
if: needs.check_source.outputs.run_tests == 'true'
284301
env:
285-
OPENSSL_VER: 1.1.1s
302+
OPENSSL_VER: 1.1.1t
286303
PYTHONSTRICTEXTENSIONBUILD: 1
287304
ASAN_OPTIONS: detect_leaks=0:allocator_may_return_null=1:handle_segv=0
288305
steps:

0 commit comments

Comments
 (0)