Skip to content

Commit d146ae8

Browse files
authored
Pin CI tools and manage dependency updates with Renovate (#792)
1 parent 191303a commit d146ae8

6 files changed

Lines changed: 96 additions & 25 deletions

File tree

.github/dependabot.yml

Lines changed: 0 additions & 12 deletions
This file was deleted.

.github/renovate.json5

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
{
2+
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
3+
"extends": ["schedule:monthly", "helpers:pinGitHubActionDigestsToSemver"],
4+
"dependencyDashboard": true,
5+
"enabledManagers": ["github-actions", "custom.regex", "pre-commit", "pep621"],
6+
"pre-commit": {
7+
"enabled": true
8+
},
9+
"minimumReleaseAge": "7 days",
10+
"packageRules": [
11+
{
12+
// Pin versions already in use without waiting for the upgrade cooldown.
13+
"matchUpdateTypes": ["pinDigest"],
14+
"minimumReleaseAge": null
15+
},
16+
{
17+
// Preserve Python versions, runners, and containers. The custom manager
18+
// handles tool inputs so uv's version and checksum are updated together.
19+
"matchManagers": ["github-actions"],
20+
"matchDepTypes": ["uses-with", "github-runner", "docker", "container", "service"],
21+
"enabled": false
22+
},
23+
{
24+
// Only manage build requirements; preserve Python support and library dependencies.
25+
"matchManagers": ["pep621"],
26+
"matchDepTypes": ["!build-system.requires"],
27+
"enabled": false
28+
},
29+
{
30+
"matchManagers": ["github-actions", "custom.regex", "pre-commit", "pep621"],
31+
"groupName": "CI dependencies"
32+
}
33+
],
34+
"customManagers": [
35+
{
36+
"customType": "regex",
37+
"managerFilePatterns": ["/^\\.github/workflows/(ci|third_party)\\.yml$/"],
38+
"matchStrings": [
39+
"# renovate: datasource=(?<datasource>\\S+) depName=(?<depName>\\S+)\\s+version: \"(?<currentValue>[^\"\\r\\n]+)\"(?:\\s+checksum: \"(?<currentDigest>[a-f0-9]{64})\")?"
40+
],
41+
"versioningTemplate": "semver"
42+
}
43+
]
44+
}

.github/workflows/ci.yml

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,9 +30,12 @@ jobs:
3030
with:
3131
persist-credentials: false
3232

33-
- name: Install the latest version of uv
33+
- name: Install uv
3434
uses: astral-sh/setup-uv@fac544c07dec837d0ccb6301d7b5580bf5edae39 # v8.2.0
3535
with:
36+
# renovate: datasource=github-release-attachments depName=astral-sh/uv
37+
version: "0.12.7"
38+
checksum: "788f18abea7c5f55d6216e4f5613fd89d4d59b631efeec117b2b07fe72f1da21"
3639
python-version: "3.14"
3740

3841
- name: Build docs in nitpicky mode
@@ -119,6 +122,8 @@ jobs:
119122
github.repository == 'python/typing_extensions'
120123
&& (github.event_name == 'push' || github.event_name == 'pull_request')
121124
with:
125+
# renovate: datasource=github-releases depName=codecov/codecov-cli
126+
version: "v11.3.1"
122127
use_oidc: true
123128
flags: ${{ matrix.python-version }}
124129
directory: src

.github/workflows/publish.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -159,4 +159,4 @@ jobs:
159159
- name: Ensure exactly one sdist and one wheel have been downloaded
160160
run: test "$(find dist/*.tar.gz | wc -l | xargs)" = 1 && test "$(find dist/*.whl | wc -l | xargs)" = 1
161161
- name: Publish distribution to PyPI
162-
uses: pypa/gh-action-pypi-publish@cef221092ed1bacb1cc03d23a2d87d1d172e277b
162+
uses: pypa/gh-action-pypi-publish@cef221092ed1bacb1cc03d23a2d87d1d172e277b # v1.14.0

.github/workflows/third_party.yml

Lines changed: 36 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -51,9 +51,12 @@ jobs:
5151
runs-on: ubuntu-latest
5252
timeout-minutes: 60
5353
steps:
54-
- name: Install the latest version of uv
54+
- name: Install uv
5555
uses: astral-sh/setup-uv@fac544c07dec837d0ccb6301d7b5580bf5edae39 # v8.2.0
5656
with:
57+
# renovate: datasource=github-release-attachments depName=astral-sh/uv
58+
version: "0.12.7"
59+
checksum: "788f18abea7c5f55d6216e4f5613fd89d4d59b631efeec117b2b07fe72f1da21"
5760
python-version: ${{ matrix.python-version }}
5861
- name: Checkout pydantic
5962
run: git clone --depth=1 https://github.com/pydantic/pydantic.git || git clone --depth=1 https://github.com/pydantic/pydantic.git
@@ -84,9 +87,12 @@ jobs:
8487
runs-on: ubuntu-latest
8588
timeout-minutes: 60
8689
steps:
87-
- name: Install the latest version of uv
90+
- name: Install uv
8891
uses: astral-sh/setup-uv@fac544c07dec837d0ccb6301d7b5580bf5edae39 # v8.2.0
8992
with:
93+
# renovate: datasource=github-release-attachments depName=astral-sh/uv
94+
version: "0.12.7"
95+
checksum: "788f18abea7c5f55d6216e4f5613fd89d4d59b631efeec117b2b07fe72f1da21"
9096
python-version: ${{ matrix.python-version }}
9197
- name: Checkout typing_inspect
9298
run: git clone --depth=1 https://github.com/ilevkivskyi/typing_inspect.git || git clone --depth=1 https://github.com/ilevkivskyi/typing_inspect.git
@@ -119,9 +125,12 @@ jobs:
119125
runs-on: ubuntu-latest
120126
timeout-minutes: 60
121127
steps:
122-
- name: Install the latest version of uv
128+
- name: Install uv
123129
uses: astral-sh/setup-uv@fac544c07dec837d0ccb6301d7b5580bf5edae39 # v8.2.0
124130
with:
131+
# renovate: datasource=github-release-attachments depName=astral-sh/uv
132+
version: "0.12.7"
133+
checksum: "788f18abea7c5f55d6216e4f5613fd89d4d59b631efeec117b2b07fe72f1da21"
125134
python-version: ${{ matrix.python-version }}
126135
- name: Check out pycroscope
127136
run: git clone --depth=1 https://github.com/JelleZijlstra/pycroscope.git || git clone --depth=1 https://github.com/JelleZijlstra/pycroscope.git
@@ -154,9 +163,12 @@ jobs:
154163
runs-on: ubuntu-latest
155164
timeout-minutes: 60
156165
steps:
157-
- name: Install the latest version of uv
166+
- name: Install uv
158167
uses: astral-sh/setup-uv@fac544c07dec837d0ccb6301d7b5580bf5edae39 # v8.2.0
159168
with:
169+
# renovate: datasource=github-release-attachments depName=astral-sh/uv
170+
version: "0.12.7"
171+
checksum: "788f18abea7c5f55d6216e4f5613fd89d4d59b631efeec117b2b07fe72f1da21"
160172
python-version: ${{ matrix.python-version }}
161173
- name: Check out typeguard
162174
run: git clone --depth=1 https://github.com/agronholm/typeguard.git || git clone --depth=1 https://github.com/agronholm/typeguard.git
@@ -192,9 +204,12 @@ jobs:
192204
runs-on: ubuntu-latest
193205
timeout-minutes: 60
194206
steps:
195-
- name: Install the latest version of uv
207+
- name: Install uv
196208
uses: astral-sh/setup-uv@fac544c07dec837d0ccb6301d7b5580bf5edae39 # v8.2.0
197209
with:
210+
# renovate: datasource=github-release-attachments depName=astral-sh/uv
211+
version: "0.12.7"
212+
checksum: "788f18abea7c5f55d6216e4f5613fd89d4d59b631efeec117b2b07fe72f1da21"
198213
python-version: ${{ matrix.python-version }}
199214
- name: Check out typed-argument-parser
200215
run: git clone --depth=1 https://github.com/swansonk14/typed-argument-parser.git || git clone --depth=1 https://github.com/swansonk14/typed-argument-parser.git
@@ -235,9 +250,12 @@ jobs:
235250
runs-on: ubuntu-latest
236251
timeout-minutes: 60
237252
steps:
238-
- name: Install the latest version of uv
253+
- name: Install uv
239254
uses: astral-sh/setup-uv@fac544c07dec837d0ccb6301d7b5580bf5edae39 # v8.2.0
240255
with:
256+
# renovate: datasource=github-release-attachments depName=astral-sh/uv
257+
version: "0.12.7"
258+
checksum: "788f18abea7c5f55d6216e4f5613fd89d4d59b631efeec117b2b07fe72f1da21"
241259
python-version: ${{ matrix.python-version }}
242260
- name: Checkout mypy for stubtest and mypyc tests
243261
run: git clone --depth=1 https://github.com/python/mypy.git || git clone --depth=1 https://github.com/python/mypy.git
@@ -271,9 +289,12 @@ jobs:
271289
runs-on: ubuntu-latest
272290
timeout-minutes: 60
273291
steps:
274-
- name: Install the latest version of uv
292+
- name: Install uv
275293
uses: astral-sh/setup-uv@fac544c07dec837d0ccb6301d7b5580bf5edae39 # v8.2.0
276294
with:
295+
# renovate: datasource=github-release-attachments depName=astral-sh/uv
296+
version: "0.12.7"
297+
checksum: "788f18abea7c5f55d6216e4f5613fd89d4d59b631efeec117b2b07fe72f1da21"
277298
python-version: ${{ matrix.python-version }}
278299
- name: Checkout cattrs
279300
run: git clone --depth=1 https://github.com/python-attrs/cattrs.git || git clone --depth=1 https://github.com/python-attrs/cattrs.git
@@ -309,9 +330,12 @@ jobs:
309330
runs-on: ubuntu-22.04
310331
timeout-minutes: 60
311332
steps:
312-
- name: Install the latest version of uv
333+
- name: Install uv
313334
uses: astral-sh/setup-uv@fac544c07dec837d0ccb6301d7b5580bf5edae39 # v8.2.0
314335
with:
336+
# renovate: datasource=github-release-attachments depName=astral-sh/uv
337+
version: "0.12.7"
338+
checksum: "788f18abea7c5f55d6216e4f5613fd89d4d59b631efeec117b2b07fe72f1da21"
315339
python-version: ${{ matrix.python-version }}
316340
- name: Checkout sqlalchemy
317341
run: git clone -b ${{ matrix.checkout-ref }} --depth=1 https://github.com/sqlalchemy/sqlalchemy.git || git clone -b ${{ matrix.checkout-ref }} --depth=1 https://github.com/sqlalchemy/sqlalchemy.git
@@ -341,9 +365,12 @@ jobs:
341365
# As of 2 November 2025 a dependency is missing 3.14 wheels
342366
python-version: [ "3.11", "3.12", "3.13" ]
343367
steps:
344-
- name: Install the latest version of uv
368+
- name: Install uv
345369
uses: astral-sh/setup-uv@fac544c07dec837d0ccb6301d7b5580bf5edae39 # v8.2.0
346370
with:
371+
# renovate: datasource=github-release-attachments depName=astral-sh/uv
372+
version: "0.12.7"
373+
checksum: "788f18abea7c5f55d6216e4f5613fd89d4d59b631efeec117b2b07fe72f1da21"
347374
python-version: ${{ matrix.python-version }}
348375
- name: Checkout litestar
349376
run: git clone --depth=1 https://github.com/litestar-org/litestar.git || git clone --depth=1 https://github.com/litestar-org/litestar.git

.pre-commit-config.yaml

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,18 +24,25 @@ repos:
2424
- repo: https://github.com/python-jsonschema/check-jsonschema
2525
rev: 6b63472e72e1a91ed8a2f6d483790dfb644fa1d3 # frozen: 0.37.4
2626
hooks:
27-
- id: check-dependabot
27+
- id: check-renovate
28+
# Renovate needs an explicit language to update additional_dependencies.
29+
language: python
30+
additional_dependencies: ["json5==0.15.0"]
2831
- id: check-github-workflows
2932
- id: check-readthedocs
3033
- repo: https://github.com/abravalheri/validate-pyproject
3134
rev: 4b2e70d08cb2ccd26d1fba73588de41c7a5d50b7 # frozen: v0.25
3235
hooks:
3336
- id: validate-pyproject
34-
additional_dependencies: ["validate-pyproject-schema-store[all]"]
37+
# Renovate needs an explicit language to update additional_dependencies.
38+
language: python
39+
additional_dependencies: ["validate-pyproject-schema-store[all]==2026.8.15"]
3540
- repo: https://github.com/rhysd/actionlint
3641
rev: 914e7df21a07ef503a81201c76d2b11c789d3fca # frozen: v1.7.12
3742
hooks:
3843
- id: actionlint
44+
# Renovate needs an explicit language to update additional_dependencies.
45+
language: golang
3946
additional_dependencies:
4047
# actionlint has a shellcheck integration which extracts shell scripts in `run:` steps from GitHub Actions
4148
# and checks these with shellcheck. This is arguably its most useful feature,

0 commit comments

Comments
 (0)