Skip to content

Commit e9591b2

Browse files
authored
Merge branch '3.12' into backport-f2cb399-3.12
2 parents cdb58a7 + 34fe4af commit e9591b2

File tree

392 files changed

+7257
-2360
lines changed

Some content is hidden

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

392 files changed

+7257
-2360
lines changed

.azure-pipelines/ci.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ jobs:
55
displayName: Pre-build checks
66

77
pool:
8-
vmImage: ubuntu-22.04
8+
vmImage: ubuntu-24.04
99

1010
steps:
1111
- template: ./prebuild-checks.yml

.github/workflows/build.yml

Lines changed: 44 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,50 @@ jobs:
9191
name: abi-data
9292
path: ./Doc/data/*.abi
9393

94+
check_autoconf_regen:
95+
name: 'Check if Autoconf files are up to date'
96+
# Don't use ubuntu-latest but a specific version to make the job
97+
# reproducible: to get the same tools versions (autoconf, aclocal, ...)
98+
runs-on: ubuntu-24.04
99+
container:
100+
image: ghcr.io/python/autoconf:2024.10.16.11360930377
101+
timeout-minutes: 60
102+
needs: check_source
103+
if: needs.check_source.outputs.run_tests == 'true'
104+
steps:
105+
- name: Install Git
106+
run: |
107+
apt update && apt install git -yq
108+
git config --global --add safe.directory "$GITHUB_WORKSPACE"
109+
- uses: actions/checkout@v4
110+
with:
111+
fetch-depth: 1
112+
- name: Runner image version
113+
run: echo "IMAGE_VERSION=${ImageVersion}" >> $GITHUB_ENV
114+
- name: Check Autoconf and aclocal versions
115+
run: |
116+
grep "Generated by GNU Autoconf 2.71" configure
117+
grep "aclocal 1.16.5" aclocal.m4
118+
grep -q "runstatedir" configure
119+
grep -q "PKG_PROG_PKG_CONFIG" aclocal.m4
120+
- name: Regenerate autoconf files
121+
# Same command used by Tools/build/regen-configure.sh ($AUTORECONF)
122+
run: autoreconf -ivf -Werror
123+
- name: Check for changes
124+
run: |
125+
git add -u
126+
changes=$(git status --porcelain)
127+
# Check for changes in regenerated files
128+
if test -n "$changes"; then
129+
echo "Generated files not up to date."
130+
echo "Perhaps you forgot to run make regen-configure ;)"
131+
echo "configure files must be regenerated with a specific version of autoconf."
132+
echo "$changes"
133+
echo ""
134+
git diff --staged || true
135+
exit 1
136+
fi
137+
94138
check_generated_files:
95139
name: 'Check if generated files are up to date'
96140
# Don't use ubuntu-latest but a specific version to make the job
@@ -119,19 +163,10 @@ jobs:
119163
uses: hendrikmuhs/[email protected]
120164
with:
121165
save: false
122-
- name: Check Autoconf and aclocal versions
123-
run: |
124-
grep "Generated by GNU Autoconf 2.71" configure
125-
grep "aclocal 1.16.5" aclocal.m4
126-
grep -q "runstatedir" configure
127-
grep -q "PKG_PROG_PKG_CONFIG" aclocal.m4
128166
- name: Configure CPython
129167
run: |
130168
# Build Python with the libpython dynamic library
131169
./configure --config-cache --with-pydebug --enable-shared
132-
- name: Regenerate autoconf files
133-
# Same command used by Tools/build/regen-configure.sh ($AUTORECONF)
134-
run: autoreconf -ivf -Werror
135170
- name: Build CPython
136171
run: |
137172
# Deepfreeze will usually cause global objects to be added or removed,

.github/workflows/reusable-change-detection.yml

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,4 @@
1-
---
2-
3-
name: Change detection
1+
name: Reusable change detection
42

53
on: # yamllint disable-line rule:truthy
64
workflow_call:

.github/workflows/reusable-docs.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
name: Docs
1+
name: Reusable Docs
22

33
on:
44
workflow_call:
@@ -81,7 +81,7 @@ jobs:
8181
- name: 'Set up Python'
8282
uses: actions/setup-python@v5
8383
with:
84-
python-version: '3.12' # known to work with Sphinx 6.2.1
84+
python-version: '3.13' # known to work with Sphinx 7.2.6
8585
cache: 'pip'
8686
cache-dependency-path: 'Doc/requirements-oldest-sphinx.txt'
8787
- name: 'Install build dependencies'
@@ -92,7 +92,7 @@ jobs:
9292
# Run "doctest" on HEAD as new syntax doesn't exist in the latest stable release
9393
doctest:
9494
name: 'Doctest'
95-
runs-on: ubuntu-latest
95+
runs-on: ubuntu-22.04
9696
timeout-minutes: 60
9797
steps:
9898
- uses: actions/checkout@v4

.github/workflows/reusable-macos.yml

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
name: Reusable macOS
2+
13
on:
24
workflow_call:
35
inputs:
@@ -34,7 +36,10 @@ jobs:
3436
path: config.cache
3537
key: ${{ github.job }}-${{ inputs.os }}-${{ env.IMAGE_VERSION }}-${{ inputs.config_hash }}
3638
- name: Install Homebrew dependencies
37-
run: brew install pkg-config [email protected] xz gdbm tcl-tk
39+
run: |
40+
brew install pkg-config [email protected] xz gdbm tcl-tk@8
41+
# Because alternate versions are not symlinked into place by default:
42+
brew link tcl-tk@8
3843
- name: Configure CPython
3944
run: |
4045
GDBM_CFLAGS="-I$(brew --prefix gdbm)/include" \

.github/workflows/reusable-tsan.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
name: Reusable Thread Sanitizer
2+
13
on:
24
workflow_call:
35
inputs:

.github/workflows/reusable-ubuntu.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
name: Reusable Ubuntu
2+
13
on:
24
workflow_call:
35
inputs:

.github/workflows/reusable-windows-msi.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
name: TestsMSI
1+
name: Reusable Windows MSI
22

33
on:
44
workflow_call:

.github/workflows/reusable-windows.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
name: Reusable Windows
2+
13
on:
24
workflow_call:
35
inputs:

Doc/Makefile

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -144,7 +144,7 @@ pydoc-topics: build
144144

145145
.PHONY: gettext
146146
gettext: BUILDER = gettext
147-
gettext: SPHINXOPTS += -d build/doctrees-gettext
147+
gettext: override SPHINXOPTS := -d build/doctrees-gettext $(SPHINXOPTS)
148148
gettext: build
149149

150150
.PHONY: htmlview
@@ -294,7 +294,7 @@ check: _ensure-pre-commit
294294

295295
.PHONY: serve
296296
serve:
297-
@echo "The serve target was removed, use htmlview instead (see bpo-36329)"
297+
@echo "The serve target was removed, use htmllive instead (see gh-80510)"
298298

299299
# Targets for daily automated doc build
300300
# By default, Sphinx only rebuilds pages where the page content has changed.

0 commit comments

Comments
 (0)