Skip to content

Commit 5ef9e82

Browse files
Merge branch '3.12' into backport-d931725-3.12
2 parents 20293be + 82b53a6 commit 5ef9e82

24 files changed

+172
-153
lines changed

.github/workflows/build.yml

Lines changed: 25 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -49,10 +49,10 @@ jobs:
4949
needs: build-context
5050
if: needs.build-context.outputs.run-tests == 'true'
5151
steps:
52-
- uses: actions/checkout@v6
52+
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
5353
with:
5454
persist-credentials: false
55-
- uses: actions/setup-python@v6
55+
- uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
5656
- name: Install dependencies
5757
run: |
5858
sudo ./.github/workflows/posix-deps-apt.sh
@@ -81,7 +81,7 @@ jobs:
8181
if: ${{ failure() && steps.check.conclusion == 'failure' }}
8282
run: |
8383
make regen-abidump
84-
- uses: actions/upload-artifact@v6
84+
- uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0
8585
name: Publish updated ABI files
8686
if: ${{ failure() && steps.check.conclusion == 'failure' }}
8787
with:
@@ -103,7 +103,7 @@ jobs:
103103
run: |
104104
apt update && apt install git -yq
105105
git config --global --add safe.directory "$GITHUB_WORKSPACE"
106-
- uses: actions/checkout@v6
106+
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
107107
with:
108108
fetch-depth: 1
109109
persist-credentials: false
@@ -140,16 +140,16 @@ jobs:
140140
needs: build-context
141141
if: needs.build-context.outputs.run-tests == 'true'
142142
steps:
143-
- uses: actions/checkout@v6
143+
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
144144
with:
145145
persist-credentials: false
146-
- uses: actions/setup-python@v6
146+
- uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
147147
with:
148148
python-version: '3.x'
149149
- name: Runner image version
150150
run: echo "IMAGE_OS_VERSION=${ImageOS}-${ImageVersion}" >> "$GITHUB_ENV"
151151
- name: Restore config.cache
152-
uses: actions/cache@v5
152+
uses: actions/cache@668228422ae6a00e4ad889ee87cd7109ec5666a7 # v5.0.4
153153
with:
154154
path: config.cache
155155
# Include env.pythonLocation in key to avoid changes in environment when setup-python updates Python
@@ -159,7 +159,7 @@ jobs:
159159
- name: Add ccache to PATH
160160
run: echo "PATH=/usr/lib/ccache:$PATH" >> "$GITHUB_ENV"
161161
- name: Configure ccache action
162-
uses: hendrikmuhs/ccache-action@v1.2
162+
uses: hendrikmuhs/ccache-action@5ebbd400eff9e74630f759d94ddd7b6c26299639 # v1.2.20
163163
with:
164164
save: false
165165
- name: Configure CPython
@@ -215,22 +215,6 @@ jobs:
215215
arch: ${{ matrix.arch }}
216216
free-threading: ${{ matrix.free-threading }}
217217

218-
build-windows-msi:
219-
name: >- # ${{ '' } is a hack to nest jobs under the same sidebar category
220-
Windows MSI${{ '' }}
221-
needs: build-context
222-
if: fromJSON(needs.build-context.outputs.run-windows-msi)
223-
strategy:
224-
fail-fast: false
225-
matrix:
226-
arch:
227-
- x86
228-
- x64
229-
- arm64
230-
uses: ./.github/workflows/reusable-windows-msi.yml
231-
with:
232-
arch: ${{ matrix.arch }}
233-
234218
build-macos:
235219
name: >-
236220
macOS
@@ -240,10 +224,10 @@ jobs:
240224
strategy:
241225
fail-fast: false
242226
matrix:
243-
# macos-14 is M1, macos-15-intel is Intel.
227+
# macos-26 is Apple Silicon, macos-15-intel is Intel.
244228
# macos-15-intel only runs tests against the GIL-enabled CPython.
245229
os:
246-
- macos-14
230+
- macos-26
247231
- macos-15-intel
248232
free-threading:
249233
- false
@@ -291,13 +275,13 @@ jobs:
291275
OPENSSL_DIR: ${{ github.workspace }}/multissl/openssl/${{ matrix.openssl_ver }}
292276
LD_LIBRARY_PATH: ${{ github.workspace }}/multissl/openssl/${{ matrix.openssl_ver }}/lib
293277
steps:
294-
- uses: actions/checkout@v6
278+
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
295279
with:
296280
persist-credentials: false
297281
- name: Runner image version
298282
run: echo "IMAGE_OS_VERSION=${ImageOS}-${ImageVersion}" >> "$GITHUB_ENV"
299283
- name: Restore config.cache
300-
uses: actions/cache@v5
284+
uses: actions/cache@668228422ae6a00e4ad889ee87cd7109ec5666a7 # v5.0.4
301285
with:
302286
path: config.cache
303287
key: ${{ github.job }}-${{ env.IMAGE_OS_VERSION }}-${{ needs.build-context.outputs.config-hash }}
@@ -312,7 +296,7 @@ jobs:
312296
echo "LD_LIBRARY_PATH=${GITHUB_WORKSPACE}/multissl/openssl/${OPENSSL_VER}/lib" >> "$GITHUB_ENV"
313297
- name: 'Restore OpenSSL build'
314298
id: cache-openssl
315-
uses: actions/cache@v5
299+
uses: actions/cache@668228422ae6a00e4ad889ee87cd7109ec5666a7 # v5.0.4
316300
with:
317301
path: ./multissl/openssl/${{ env.OPENSSL_VER }}
318302
key: ${{ matrix.os }}-multissl-openssl-${{ env.OPENSSL_VER }}
@@ -323,7 +307,7 @@ jobs:
323307
run: |
324308
echo "PATH=/usr/lib/ccache:$PATH" >> "$GITHUB_ENV"
325309
- name: Configure ccache action
326-
uses: hendrikmuhs/ccache-action@v1.2
310+
uses: hendrikmuhs/ccache-action@5ebbd400eff9e74630f759d94ddd7b6c26299639 # v1.2.20
327311
with:
328312
save: false
329313
- name: Configure CPython
@@ -345,7 +329,7 @@ jobs:
345329
OPENSSL_VER: 3.0.15
346330
PYTHONSTRICTEXTENSIONBUILD: 1
347331
steps:
348-
- uses: actions/checkout@v6
332+
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
349333
with:
350334
persist-credentials: false
351335
- name: Register gcc problem matcher
@@ -359,7 +343,7 @@ jobs:
359343
echo "LD_LIBRARY_PATH=${GITHUB_WORKSPACE}/multissl/openssl/${OPENSSL_VER}/lib" >> "$GITHUB_ENV"
360344
- name: 'Restore OpenSSL build'
361345
id: cache-openssl
362-
uses: actions/cache@v5
346+
uses: actions/cache@668228422ae6a00e4ad889ee87cd7109ec5666a7 # v5.0.4
363347
with:
364348
path: ./multissl/openssl/${{ env.OPENSSL_VER }}
365349
key: ${{ runner.os }}-multissl-openssl-${{ env.OPENSSL_VER }}
@@ -370,7 +354,7 @@ jobs:
370354
run: |
371355
echo "PATH=/usr/lib/ccache:$PATH" >> "$GITHUB_ENV"
372356
- name: Configure ccache action
373-
uses: hendrikmuhs/ccache-action@v1.2
357+
uses: hendrikmuhs/ccache-action@5ebbd400eff9e74630f759d94ddd7b6c26299639 # v1.2.20
374358
with:
375359
save: false
376360
- name: Setup directory envs for out-of-tree builds
@@ -384,7 +368,7 @@ jobs:
384368
- name: Runner image version
385369
run: echo "IMAGE_OS_VERSION=${ImageOS}-${ImageVersion}" >> "$GITHUB_ENV"
386370
- name: Restore config.cache
387-
uses: actions/cache@v5
371+
uses: actions/cache@668228422ae6a00e4ad889ee87cd7109ec5666a7 # v5.0.4
388372
with:
389373
path: ${{ env.CPYTHON_BUILDDIR }}/config.cache
390374
key: ${{ github.job }}-${{ env.IMAGE_OS_VERSION }}-${{ needs.build-context.outputs.config-hash }}
@@ -417,7 +401,7 @@ jobs:
417401
./python -m venv "$VENV_LOC" && "$VENV_PYTHON" -m pip install -r "${GITHUB_WORKSPACE}/Tools/requirements-hypothesis.txt"
418402
- name: 'Restore Hypothesis database'
419403
id: cache-hypothesis-database
420-
uses: actions/cache@v5
404+
uses: actions/cache@668228422ae6a00e4ad889ee87cd7109ec5666a7 # v5.0.4
421405
with:
422406
path: ./hypothesis
423407
key: hypothesis-database-${{ github.head_ref || github.run_id }}
@@ -443,7 +427,7 @@ jobs:
443427
-x test_subprocess \
444428
-x test_signal \
445429
-x test_sysconfig
446-
- uses: actions/upload-artifact@v6
430+
- uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6.0.0
447431
if: always()
448432
with:
449433
name: hypothesis-example-db
@@ -464,13 +448,13 @@ jobs:
464448
PYTHONSTRICTEXTENSIONBUILD: 1
465449
ASAN_OPTIONS: detect_leaks=0:allocator_may_return_null=1:handle_segv=0
466450
steps:
467-
- uses: actions/checkout@v6
451+
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
468452
with:
469453
persist-credentials: false
470454
- name: Runner image version
471455
run: echo "IMAGE_OS_VERSION=${ImageOS}-${ImageVersion}" >> "$GITHUB_ENV"
472456
- name: Restore config.cache
473-
uses: actions/cache@v5
457+
uses: actions/cache@668228422ae6a00e4ad889ee87cd7109ec5666a7 # v5.0.4
474458
with:
475459
path: config.cache
476460
key: ${{ github.job }}-${{ env.IMAGE_OS_VERSION }}-${{ needs.build-context.outputs.config-hash }}
@@ -479,7 +463,7 @@ jobs:
479463
- name: Install dependencies
480464
run: sudo ./.github/workflows/posix-deps-apt.sh
481465
- name: Set up GCC-10 for ASAN
482-
uses: egor-tensin/setup-gcc@v2
466+
uses: egor-tensin/setup-gcc@a2861a8b8538f49cf2850980acccf6b05a1b2ae4 # v2.0
483467
with:
484468
version: 10
485469
- name: Configure OpenSSL env vars
@@ -489,7 +473,7 @@ jobs:
489473
echo "LD_LIBRARY_PATH=${GITHUB_WORKSPACE}/multissl/openssl/${OPENSSL_VER}/lib" >> "$GITHUB_ENV"
490474
- name: 'Restore OpenSSL build'
491475
id: cache-openssl
492-
uses: actions/cache@v5
476+
uses: actions/cache@668228422ae6a00e4ad889ee87cd7109ec5666a7 # v5.0.4
493477
with:
494478
path: ./multissl/openssl/${{ env.OPENSSL_VER }}
495479
key: ${{ matrix.os }}-multissl-openssl-${{ env.OPENSSL_VER }}
@@ -500,7 +484,7 @@ jobs:
500484
run: |
501485
echo "PATH=/usr/lib/ccache:$PATH" >> "$GITHUB_ENV"
502486
- name: Configure ccache action
503-
uses: hendrikmuhs/ccache-action@v1.2
487+
uses: hendrikmuhs/ccache-action@5ebbd400eff9e74630f759d94ddd7b6c26299639 # v1.2.20
504488
with:
505489
save: ${{ github.event_name == 'push' }}
506490
max-size: "200M"
@@ -539,7 +523,6 @@ jobs:
539523
- check-autoconf-regen
540524
- check-generated-files
541525
- build-windows
542-
- build-windows-msi
543526
- build-macos
544527
- build-ubuntu
545528
- build-ubuntu-ssltests
@@ -553,7 +536,6 @@ jobs:
553536
uses: re-actors/alls-green@05ac9388f0aebcb5727afa17fcccfecd6f8ec5fe
554537
with:
555538
allowed-failures: >-
556-
build-windows-msi,
557539
build-ubuntu-ssltests,
558540
test-hypothesis,
559541
allowed-skips: >-

.github/workflows/documentation-links.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ jobs:
2222
timeout-minutes: 5
2323

2424
steps:
25-
- uses: readthedocs/actions/preview@v1
25+
- uses: readthedocs/actions/preview@b8bba1484329bda1a3abe986df7ebc80a8950333 # v1.5
2626
with:
2727
project-slug: "cpython-previews"
2828
single-version: "true"

.github/workflows/lint.yml

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

2121
steps:
22-
- uses: actions/checkout@v6
22+
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
2323
with:
2424
persist-credentials: false
25-
- uses: actions/setup-python@v6
25+
- uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
2626
with:
2727
python-version: "3.x"
28-
- uses: pre-commit/action@v3.0.1
28+
- uses: pre-commit/action@2c7b3805fd2a0fd8c1884dcaebf91fc102a13ecd # v3.0.1

.github/workflows/mypy.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,10 +30,10 @@ jobs:
3030
runs-on: ubuntu-latest
3131
timeout-minutes: 10
3232
steps:
33-
- uses: actions/checkout@v6
33+
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
3434
with:
3535
persist-credentials: false
36-
- uses: actions/setup-python@v6
36+
- uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
3737
with:
3838
python-version: "3.x"
3939
cache: pip

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

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,19 +6,21 @@ on:
66
- opened
77

88
permissions:
9-
issues: read
9+
contents: read
1010

1111
jobs:
1212
notify-new-bugs-announce:
1313
runs-on: ubuntu-latest
14+
permissions:
15+
issues: read
1416
timeout-minutes: 10
1517
steps:
16-
- uses: actions/setup-node@v6
18+
- uses: actions/setup-node@53b83947a5a98c8d113130e565377fae1a50d02f # v6.3.0
1719
with:
1820
node-version: 14
1921
- run: npm install mailgun.js form-data
2022
- name: Send notification
21-
uses: actions/github-script@v8
23+
uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8.0.0
2224
env:
2325
MAILGUN_API_KEY: ${{ secrets.MAILGUN_PYTHON_ORG_MAILGUN_KEY }}
2426
with:

.github/workflows/project-updater.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ jobs:
2424
- { project: 32, label: sprint }
2525

2626
steps:
27-
- uses: actions/add-to-project@v1.0.2
27+
- uses: actions/add-to-project@244f685bbc3b7adfa8466e08b698b5577571133e # v1.0.2
2828
with:
2929
project-url: https://github.com/orgs/python/projects/${{ matrix.project }}
3030
github-token: ${{ secrets.ADD_TO_PROJECT_PAT }}

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

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,9 @@ on:
44
pull_request:
55
types: [opened, reopened, labeled, unlabeled, synchronize]
66

7+
permissions:
8+
contents: read
9+
710
jobs:
811
label:
912
name: DO-NOT-MERGE / unresolved review
@@ -14,7 +17,7 @@ jobs:
1417
timeout-minutes: 10
1518

1619
steps:
17-
- uses: mheap/github-action-required-labels@v5
20+
- uses: mheap/github-action-required-labels@0ac283b4e65c1fb28ce6079dea5546ceca98ccbe # v5.5.2
1821
with:
1922
mode: exactly
2023
count: 0

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

Lines changed: 2 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -32,10 +32,6 @@ on: # yamllint disable-line rule:truthy
3232
run_tests:
3333
description: Whether to run the regular tests
3434
value: ${{ jobs.compute-changes.outputs.run-tests || false }} # bool
35-
run-win-msi:
36-
description: Whether to run the MSI installer smoke tests
37-
value: >- # bool
38-
${{ jobs.compute-changes.outputs.run-win-msi || false }}
3935
run_hypothesis:
4036
description: Whether to run the Hypothesis tests
4137
value: >- # bool
@@ -56,11 +52,10 @@ jobs:
5652
run-docs: ${{ steps.docs-changes.outputs.run-docs }}
5753
run-hypothesis: ${{ steps.check.outputs.run-hypothesis }}
5854
run-tests: ${{ steps.check.outputs.run-tests }}
59-
run-win-msi: ${{ steps.win-msi-changes.outputs.run-win-msi }}
6055
steps:
6156
- run: >-
6257
echo '${{ github.event_name }}'
63-
- uses: actions/checkout@v6
58+
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
6459
with:
6560
persist-credentials: false
6661
- name: Check for source changes
@@ -118,7 +113,7 @@ jobs:
118113
- name: Get a list of the changed documentation-related files
119114
if: github.event_name == 'pull_request'
120115
id: changed-docs-files
121-
uses: Ana06/get-changed-files@v2.3.0
116+
uses: Ana06/get-changed-files@25f79e676e7ea1868813e21465014798211fad8c # v2.3.0
122117
with:
123118
filter: |
124119
Doc/**
@@ -136,23 +131,3 @@ jobs:
136131
id: docs-changes
137132
run: |
138133
echo "run-docs=true" >> "${GITHUB_OUTPUT}"
139-
- name: Get a list of the MSI installer-related files
140-
if: github.event_name == 'pull_request'
141-
id: changed-win-msi-files
142-
uses: Ana06/get-changed-files@v2.3.0
143-
with:
144-
filter: |
145-
Tools/msi/**
146-
.github/workflows/reusable-windows-msi.yml
147-
format: csv # works for paths with spaces
148-
- name: Check for changes in MSI installer-related files
149-
# We only want to run this on PRs when related files are changed,
150-
# or when user triggers manual workflow run.
151-
if: >-
152-
(
153-
github.event_name == 'pull_request'
154-
&& steps.changed-win-msi-files.outputs.added_modified_renamed != ''
155-
) || github.event_name == 'workflow_dispatch'
156-
id: win-msi-changes
157-
run: |
158-
echo "run-win-msi=true" >> "${GITHUB_OUTPUT}"

0 commit comments

Comments
 (0)