Skip to content

Commit 76154d4

Browse files
authored
Merge branch '3.13' into backport-128350
2 parents 94b9221 + 3d64fd8 commit 76154d4

File tree

374 files changed

+6167
-2466
lines changed

Some content is hidden

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

374 files changed

+6167
-2466
lines changed

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ jobs:
1818
runs-on: ubuntu-latest
1919
permissions:
2020
issues: write
21+
timeout-minutes: 5
2122
steps:
2223
- uses: actions/github-script@v7
2324
with:

.github/workflows/build.yml

Lines changed: 128 additions & 140 deletions
Large diffs are not rendered by default.

.github/workflows/documentation-links.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ jobs:
1919
runs-on: ubuntu-latest
2020
permissions:
2121
pull-requests: write
22+
timeout-minutes: 5
2223

2324
steps:
2425
- uses: readthedocs/actions/preview@v1

.github/workflows/jit.yml

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -117,17 +117,15 @@ jobs:
117117
- name: Native Windows
118118
if: runner.os == 'Windows' && matrix.architecture != 'ARM64'
119119
run: |
120-
choco upgrade llvm -y
121-
choco install llvm --allow-downgrade --no-progress --version ${{ matrix.llvm }}
120+
choco install llvm --allow-downgrade --no-progress --version ${{ matrix.llvm }}.1.0
122121
./PCbuild/build.bat --experimental-jit ${{ matrix.debug && '-d' || '--pgo' }} -p ${{ matrix.architecture }}
123122
./PCbuild/rt.bat ${{ matrix.debug && '-d' || '' }} -p ${{ matrix.architecture }} -q --multiprocess 0 --timeout 4500 --verbose2 --verbose3
124123
125124
# No PGO or tests (yet):
126125
- name: Emulated Windows
127126
if: runner.os == 'Windows' && matrix.architecture == 'ARM64'
128127
run: |
129-
choco upgrade llvm -y
130-
choco install llvm --allow-downgrade --no-progress --version ${{ matrix.llvm }}
128+
choco install llvm --allow-downgrade --no-progress --version ${{ matrix.llvm }}.1.0
131129
./PCbuild/build.bat --experimental-jit ${{ matrix.debug && '-d' || '' }} -p ${{ matrix.architecture }}
132130
133131
- name: Native macOS
@@ -174,6 +172,7 @@ jobs:
174172
name: Free-Threaded (Debug)
175173
needs: interpreter
176174
runs-on: ubuntu-latest
175+
timeout-minutes: 90
177176
steps:
178177
- uses: actions/checkout@v4
179178
with:

.github/workflows/mypy.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,9 @@ concurrency:
3333

3434
jobs:
3535
mypy:
36+
name: Run mypy on ${{ matrix.target }}
37+
runs-on: ubuntu-latest
38+
timeout-minutes: 10
3639
strategy:
3740
fail-fast: false
3841
matrix:
@@ -46,9 +49,6 @@ jobs:
4649
"Tools/peg_generator",
4750
"Tools/wasm",
4851
]
49-
name: Run mypy on ${{ matrix.target }}
50-
runs-on: ubuntu-latest
51-
timeout-minutes: 10
5252
steps:
5353
- uses: actions/checkout@v4
5454
with:

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

Lines changed: 0 additions & 158 deletions
This file was deleted.
Lines changed: 104 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,104 @@
1+
name: Reusable build context
2+
3+
on: # yamllint disable-line rule:truthy
4+
workflow_call:
5+
outputs:
6+
# Every referenced step MUST always set its output variable,
7+
# either via ``Tools/build/compute-changes.py`` or in this workflow file.
8+
# Boolean outputs (generally prefixed ``run-``) can then later be used
9+
# safely through the following idiom in job conditionals and other
10+
# expressions. Here's some examples:
11+
#
12+
# if: fromJSON(needs.build-context.outputs.run-tests)
13+
#
14+
# ${{
15+
# fromJSON(needs.build-context.outputs.run-tests)
16+
# && 'truthy-branch'
17+
# || 'falsy-branch'
18+
# }}
19+
#
20+
config-hash:
21+
description: Config hash value for use in cache keys
22+
value: ${{ jobs.compute-changes.outputs.config-hash }} # str
23+
run-docs:
24+
description: Whether to build the docs
25+
value: ${{ jobs.compute-changes.outputs.run-docs }} # bool
26+
run-tests:
27+
description: Whether to run the regular tests
28+
value: ${{ jobs.compute-changes.outputs.run-tests }} # bool
29+
run-windows-tests:
30+
description: Whether to run the Windows tests
31+
value: ${{ jobs.compute-changes.outputs.run-windows-tests }} # bool
32+
run-windows-msi:
33+
description: Whether to run the MSI installer smoke tests
34+
value: ${{ jobs.compute-changes.outputs.run-windows-msi }} # bool
35+
run-ci-fuzz:
36+
description: Whether to run the CIFuzz job
37+
value: ${{ jobs.compute-changes.outputs.run-ci-fuzz }} # bool
38+
39+
jobs:
40+
compute-changes:
41+
name: Create context from changed files
42+
runs-on: ubuntu-latest
43+
timeout-minutes: 10
44+
outputs:
45+
config-hash: ${{ steps.config-hash.outputs.hash }}
46+
run-ci-fuzz: ${{ steps.changes.outputs.run-ci-fuzz }}
47+
run-docs: ${{ steps.changes.outputs.run-docs }}
48+
run-tests: ${{ steps.changes.outputs.run-tests }}
49+
run-windows-msi: ${{ steps.changes.outputs.run-windows-msi }}
50+
run-windows-tests: ${{ steps.changes.outputs.run-windows-tests }}
51+
steps:
52+
- name: Set up Python
53+
uses: actions/setup-python@v5
54+
with:
55+
python-version: "3"
56+
57+
- run: >-
58+
echo '${{ github.event_name }}'
59+
60+
- uses: actions/checkout@v4
61+
with:
62+
persist-credentials: false
63+
ref: >-
64+
${{
65+
github.event_name == 'pull_request'
66+
&& github.event.pull_request.head.sha
67+
|| ''
68+
}}
69+
70+
# Adapted from https://github.com/actions/checkout/issues/520#issuecomment-1167205721
71+
- name: Fetch commits to get branch diff
72+
if: github.event_name == 'pull_request'
73+
run: |
74+
set -eux
75+
76+
# Fetch enough history to find a common ancestor commit (aka merge-base):
77+
git fetch origin "${refspec_pr}" --depth=$(( commits + 1 )) \
78+
--no-tags --prune --no-recurse-submodules
79+
80+
# This should get the oldest commit in the local fetched history (which may not be the commit the PR branched from):
81+
COMMON_ANCESTOR=$( git rev-list --first-parent --max-parents=0 --max-count=1 "${branch_pr}" )
82+
DATE=$( git log --date=iso8601 --format=%cd "${COMMON_ANCESTOR}" )
83+
84+
# Get all commits since that commit date from the base branch (eg: main):
85+
git fetch origin "${refspec_base}" --shallow-since="${DATE}" \
86+
--no-tags --prune --no-recurse-submodules
87+
env:
88+
branch_pr: 'origin/${{ github.event.pull_request.head.ref }}'
89+
commits: ${{ github.event.pull_request.commits }}
90+
refspec_base: '+${{ github.event.pull_request.base.sha }}:remotes/origin/${{ github.event.pull_request.base.ref }}'
91+
refspec_pr: '+${{ github.event.pull_request.head.sha }}:remotes/origin/${{ github.event.pull_request.head.ref }}'
92+
93+
# We only want to run tests on PRs when related files are changed,
94+
# or when someone triggers a manual workflow run.
95+
- name: Compute changed files
96+
id: changes
97+
run: python Tools/build/compute-changes.py
98+
env:
99+
GITHUB_DEFAULT_BRANCH: ${{ github.event.repository.default_branch }}
100+
101+
- name: Compute hash for config cache key
102+
id: config-hash
103+
run: |
104+
echo "hash=${{ hashFiles('configure', 'configure.ac', '.github/workflows/build.yml') }}" >> "$GITHUB_OUTPUT"

.github/workflows/reusable-docs.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ env:
1515
FORCE_COLOR: 1
1616

1717
jobs:
18-
build_doc:
18+
build-doc:
1919
name: 'Docs'
2020
runs-on: ubuntu-latest
2121
timeout-minutes: 60

.github/workflows/reusable-macos.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,9 @@ env:
1919
FORCE_COLOR: 1
2020

2121
jobs:
22-
build_macos:
22+
build-macos:
2323
name: build and test (${{ inputs.os }})
24+
runs-on: ${{ inputs.os }}
2425
timeout-minutes: 60
2526
env:
2627
HOMEBREW_NO_ANALYTICS: 1
@@ -29,18 +30,17 @@ jobs:
2930
HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK: 1
3031
PYTHONSTRICTEXTENSIONBUILD: 1
3132
TERM: linux
32-
runs-on: ${{ inputs.os }}
3333
steps:
3434
- uses: actions/checkout@v4
3535
with:
3636
persist-credentials: false
3737
- name: Runner image version
38-
run: echo "IMAGE_VERSION=${ImageVersion}" >> $GITHUB_ENV
38+
run: echo "IMAGE_OS_VERSION=${ImageOS}-${ImageVersion}" >> "$GITHUB_ENV"
3939
- name: Restore config.cache
4040
uses: actions/cache@v4
4141
with:
4242
path: config.cache
43-
key: ${{ github.job }}-${{ inputs.os }}-${{ env.IMAGE_VERSION }}-${{ inputs.config_hash }}
43+
key: ${{ github.job }}-${{ env.IMAGE_OS_VERSION }}-${{ inputs.config_hash }}
4444
- name: Install Homebrew dependencies
4545
run: |
4646
brew install pkg-config openssl@3.0 xz gdbm tcl-tk@8

0 commit comments

Comments
 (0)