Skip to content

Updated CI: Python 3.11-3.15 test matrix, ruff and setup-uv versions, and Dependabot - #19

Merged
david-yz-liu merged 3 commits into
mainfrom
ci-python-matrix
Nov 1, 2026
Merged

david-yz-liu merged 3 commits into
mainfrom
ci-python-matrix

Conversation

@david-yz-liu

@david-yz-liu david-yz-liu commented Nov 1, 2026 •

Copy link
Copy Markdown
Contributor

Summary

test.yml: the test matrix ran only Python 3.13, although the package supports >=3.11, and markus-autotesting's server image now uses 3.13 to 3.15. The matrix is now 3.11, 3.12, 3.13, 3.14, and 3.15.

ruff.yml:

  • Actions: updated actions/checkout from v4 to v7 and astral-sh/ruff-action from v3 to v4.1.0. ruff-action's v4 releases are immutable and have no floating v4 tag, so it's pinned to the exact version, as its README now recommends. Its breaking change is moving to Node 24, which GitHub-hosted runners support. ruff-action still reads the ruff version from the dev dependency group in pyproject.toml (currently 0.17.3).
  • Formatting check: added a ruff format --check --diff step. ruff-action runs only ruff check by default, and pre-commit.ci isn't running on this repo, so formatting wasn't checked in CI.
  • Triggers: switched from on: [push, pull_request] to the same triggers as test.yml (pull requests, and pushes to main). Before, every pull request from a branch in this repo ran ruff twice: once for the push and once for the pull request.

setup-uv (test.yml, publish.yml): updated from v7 to v10.3.3. Breaking changes since v7:

  • v8 stopped publishing floating major/minor tags, so it's pinned to the exact version.
  • v9 changed the prune-cache default to false. This uses more cache storage, but changes nothing functionally.
  • v10 disables the cache by default on release, pull_request_target, and workflow_run events, to prevent cache poisoning. publish.yml runs on release and set enable-cache: true, which would override that, so I removed it. The publish job builds one package, so the cache barely helps there. test.yml keeps enable-cache: true, since pull_request and push aren't affected.

.pre-commit-config.yaml: updated the ruff hooks from v0.17.1 to v0.17.3, matching the version pinned in pyproject.toml and used in CI.

dependabot.yml: added the github-actions ecosystem (monthly), so the workflows' pinned action versions get update PRs. Before, only uv dependencies were covered.

Testing

  • CI passes on all five Python versions, 3.11 to 3.15. uv sync --locked and pytest also pass locally on 3.11 to 3.14.
  • test.yml passes on setup-uv v10.3.3. publish.yml can only be exercised by a release.
  • pre-commit run --all-files passes with ruff v0.17.3, with no changes.
  • The ruff job runs both ruff check and ruff format --check --diff, with ruff 0.17.3 read from pyproject.toml.
  • ruff check . and ruff format --check --diff . pass.

🤖 Generated with Claude Code

david-yz-liu and others added 3 commits November 1, 2026 12:07
The test matrix only covered Python 3.13, although the package supports 3.11
and later.

In ruff.yml: updated actions/checkout to v7 and ruff-action to v4, added a
`ruff format --check` step (CI only ran `ruff check`), and used the same
triggers as test.yml so each pull request runs ruff once instead of twice.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
ruff-action v4 releases are immutable and have no floating `v4` tag.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Updated astral-sh/setup-uv from v7 to v10.3.3, pinned to the exact version
  because setup-uv no longer publishes floating major tags (since v8).
- Removed `enable-cache: true` from publish.yml, so setup-uv v10's default
  disables the cache on `release` events, guarding the PyPI publish job
  against cache poisoning.
- Updated the ruff pre-commit hooks from v0.17.1 to v0.17.3, matching the
  version pinned in pyproject.toml and used in CI.
- Added the github-actions ecosystem to Dependabot, so pinned action versions
  get update PRs.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@david-yz-liu david-yz-liu changed the title Ran CI tests on Python 3.11 to 3.15 and updated the ruff workflow Updated CI: Python 3.11-3.15 test matrix, ruff and setup-uv versions, and Dependabot Nov 1, 2026
@david-yz-liu
david-yz-liu merged commit 55cb500 into main Nov 1, 2026
7 checks passed
@david-yz-liu
david-yz-liu deleted the ci-python-matrix branch November 1, 2026 17: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.

1 participant