X Tutup
Skip to content

Improve CI infrastructure for pre-commit#2110

Merged
EliahKagan merged 2 commits intogitpython-developers:mainfrom
EliahKagan:pre-commit-infra
Mar 9, 2026
Merged

Improve CI infrastructure for pre-commit#2110
EliahKagan merged 2 commits intogitpython-developers:mainfrom
EliahKagan:pre-commit-infra

Conversation

@EliahKagan
Copy link
Member

@EliahKagan EliahKagan commented Mar 9, 2026

On CI, the pre-commit job has two shortcomings:

  • It runs on a machine far more powerful than necessary, since anything slow should not be done in pre-commit at all (since some developers may run pre-commit locally).
  • We've haven't been using any automated means of keeping the pre-commit hook versions up to date, and as a results some of them are quite old. This includes ruff. (There is an external integration that can keep pre-commit hooks up to date on GitHub, but it requires providing access to the repository to an external service. This is sometimes a tradeoff worth making, but it's one we've avoided doing here for this purpose, I think rightly.)

These have both become easier to address recently:

  • A lighter-weight ubuntu-slim runner is available. Running it on that should work as well and be as fast, and give an indication that we're doing too much in pre-commit if that is ever not the case. It also frees up an ubuntu-latest runner, potentially making CI finish slightly earlier in some PRs where there have been a lot of pushes.
  • Dependabot now supports pre-commit as a beta ecosystem, so it can keep them up to date. I've tested this in my fork; the resulting grouped PR looks like EliahKagan#5. It's not ideal that the ecosystem is still in beta, but I think it's worth using--and if it turns out to have bugs I haven't yet observed, then this is an oppportunity for me to report them.

This PR uses the ubuntu-slim runner to run pre-commit on CI, and enables Dependabot version updates for pre-commit hooks.

The `ubuntu-slim` runner is lighter weight, being a container
rather than using a whole VM, and having only one vCPU, less RAM,
and a 15 minute time limit. It's not suitable for most of our CI
jobs in GitPython, but it should work well for our `pre-commit`
checks. (If it doesn't, that's reason to suspect they might be
better removed from `pre-commit` and run in a different way.)

- https://github.blog/changelog/2026-01-22-1-vcpu-linux-runner-now-generally-available-in-github-actions/
- https://github.com/actions/runner-images/blob/main/images/ubuntu-slim/ubuntu-slim-Readme.md
- Add `pre-commit` as an ecosystem for Dependabot version updates,
  now that it is available as a beta ecosystem. Enable beta
  ecosystems to allow this.

- Group the updates and use a monthly cadence to avoid getting
  swamped by frequent automated PRs.

- It would be valuable in the future to Use a 7-day cooldown period
  rather than taking new versions immediately once released. (This
  may also be of value to developers who use `pre-commit` locally.)
  However, this doesn't do that, since the Dependabot ecosystem for
  `pre-commit` does not currently support `cooldown`.

- Use a less busy style (less unnecessary quoting) than was being
  used in `dependabot.yml` before, since this new stanza is more
  elaborate than before. Apply that style to the existing stanzas
  for consistency.
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adjusts CI configuration to make the pre-commit lint job run on a lighter runner and enables Dependabot updates for pre-commit hook versions, keeping hook tooling (e.g., ruff) current without relying on external integrations.

Changes:

  • Switch lint workflow job runner from ubuntu-latest to ubuntu-slim.
  • Enable Dependabot beta ecosystems and add grouped monthly updates for pre-commit hooks.
  • Minor YAML normalization in Dependabot config (remove unnecessary quoting).

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated no comments.

File Description
.github/workflows/lint.yml Moves the lint job to ubuntu-slim to reduce CI resource usage for pre-commit.
.github/dependabot.yml Enables beta ecosystems and adds pre-commit ecosystem updates grouped into a single PR.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

You can also share your feedback on Copilot code review. Take the survey.

Copy link
Member Author

@EliahKagan EliahKagan left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Note that this PR (intentionally) does not upgrade any actual pre-commit hooks. Dependabot should open a PR to do that once this merges.

@EliahKagan EliahKagan marked this pull request as ready for review March 9, 2026 19:44
@EliahKagan EliahKagan merged commit 9e6954c into gitpython-developers:main Mar 9, 2026
31 checks passed
@EliahKagan EliahKagan deleted the pre-commit-infra branch March 9, 2026 19:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

X Tutup