ci: Update pre-commit hooks and GitHub Action #2000
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Using pre-commit together with uv gives a considerable speedup when running with
--no-sync
, and eliminates the need for our current elaborate caching setup in GitHub Actions.Also adds the Python 3.13 trove classifier to
pyproject.toml
, since wheels for it have been published on PyPI.Since uv is already used in cibuildwheel for Python virtual environment management, I figured it was a good idea to implement it here also. I've been running this setup (
uv run pre-commit run ...
) across multiple projects for a while now, including benchmark, so I consider it a well-tried approach.As for the addition of
--no-sync
: This prevents the installation of google-benchmark into the virtual environment, which is good, since it is not necessary for pre-commit to begin with, and takes a good 20-30s on GitHub runners.