Skip to content

Pin CI tools and manage dependency updates with Renovate - #792

Open
AlexWaygood wants to merge 1 commit into
mainfrom
alex/pin-ci-tool-versions
Open

Pin CI tools and manage dependency updates with Renovate#792
AlexWaygood wants to merge 1 commit into
mainfrom
alex/pin-ci-tool-versions

Conversation

@AlexWaygood

@AlexWaygood AlexWaygood commented Aug 29, 2026

Copy link
Copy Markdown
Member

Note

We would need to enable the Renovate GitHub App for python/typing_extensions before landing this PR. Adding the configuration does not enable the app, and this PR removes the existing Dependabot update configuration. See Renovate's installation instructions.

Pin more CI dependencies while keeping their updates automated.

Pinning GitHub Actions to commits pins the installer code, but actions can still download unpinned tools on each run: setup-uv and Codecov currently do so. This PR pins those tool versions and switches from Dependabot to Renovate so that these additional pins can receive automated update PRs instead of requiring manual maintenance.

The PR pins uv to 0.12.7 in all ten setup-uv steps, pins the Codecov CLI to v11.3.1, and pins the Python pre-commit hook dependencies json5 and validate-pyproject-schema-store[all]. It also replaces the Dependabot schema hook with the Renovate schema hook and declares hook languages explicitly so Renovate can discover their additional dependencies.

The monthly schedule and seven-day release cooldown are retained, with updates grouped under "CI dependencies" and a Dependency Dashboard enabled. Initial digest pinning is exempt from the cooldown because it pins a version already in use. The configuration does not enable automerging.

Renovate will update:

Dependency source Updates covered
GitHub Actions Action versions and commit hashes, retaining full commit pins and full SemVer comments. The PyPI publishing action gains a version comment so Renovate can identify its existing pin.
uv The annotated version and SHA-256 checksum inputs together in ci.yml and third_party.yml.
Codecov CLI The annotated version input in ci.yml. Codecov's existing download verification remains enabled.
pre-commit Hook repository revisions, including their frozen hashes/version comments, and the versioned additional dependencies: JSON5, the pyproject schema store, and ShellCheck.
Python build requirements Requirements under [build-system].requires in pyproject.toml, currently the flit_core version range. This PR does not change that range.

Renovate will not update Python versions or support metadata, test matrices, GitHub runner images, containers/services, or the Read the Docs environment.

uv checksums

The uv checksum is pinned in addition to the version because a version selects a release, while a checksum fixes the expected archive contents. The pinned setup-uv action uses an explicit checksum or its built-in checksum table for the default download source; if neither supplies a checksum, it skips verification.

Renovate's native setup-uv support updates the version without the checksum. The custom manager therefore uses Renovate's github-release-attachments datasource to update both fields together.

@codecov

codecov Bot commented Aug 29, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 97.26%. Comparing base (191303a) to head (7f4cbdf).

@@           Coverage Diff           @@
##             main     #792   +/-   ##
=======================================
  Coverage   97.26%   97.26%           
=======================================
  Files           3        3           
  Lines        7859     7859           
=======================================
  Hits         7644     7644           
  Misses        215      215           
Flag Coverage Δ
3.10 88.85% <ø> (ø)
3.10.4 88.85% <ø> (ø)
3.11 88.02% <ø> (ø)
3.11.0 87.27% <ø> (ø)
3.12 87.96% <ø> (ø)
3.12.0 87.94% <ø> (ø)
3.13 83.39% <ø> (ø)
3.13.0 84.09% <ø> (ø)
3.14 79.53% <ø> (ø)
3.9 89.53% <ø> (ø)
3.9.12 89.53% <ø> (ø)
pypy3.10 88.68% <ø> (ø)
pypy3.11 87.88% <ø> (ø)
pypy3.9 89.37% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@AlexWaygood
AlexWaygood marked this pull request as ready for review August 29, 2026 14:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants