[patch] Unify dev tooling via uv so pre-commit, CI, and the update bot stay aligned #48

Merged
brian merged 1 commits from chore/align-dev-tooling-via-uv into main 2026-07-10 14:36:46 +02:00
Owner

Summary

Pre-commit hooks, CI, and the dependency update bot were running different versions of ruff, mypy, and pyupgrade. This PR makes uv.lock the single source of truth for Python dev tools.

  • Route ruff, mypy, and pyupgrade through local pre-commit hooks (uv run …) instead of remote hook repos with separate version pins
  • Add explicit [tool.ruff] settings (line length, target version, isort rules) and apply the resulting import sort fixes
  • Raise dev dependency floors in pyproject.toml so uv lock --upgrade can bump tools without editing pins
  • Extend the dependency update bot to run pre-commit autoupdate (for remote hooks like prettier), smoke-check upgraded tooling, and commit both uv.lock and .pre-commit-config.yaml

Remote hooks (pre-commit-hooks, prettier) remain on pinned revs and are updated by pre-commit autoupdate in the scheduled bot.

Test plan

  • pre-commit run --all-files passes locally
  • uv run ruff check ., uv run ruff format --check ., and uv run mypy . pass
  • Code quality workflow passes on the PR
  • Confirm dependency update bot steps (uv lock --upgrade, pre-commit autoupdate, smoke check) are valid in workflow YAML
## Summary Pre-commit hooks, CI, and the dependency update bot were running different versions of ruff, mypy, and pyupgrade. This PR makes `uv.lock` the single source of truth for Python dev tools. - Route ruff, mypy, and pyupgrade through local pre-commit hooks (`uv run …`) instead of remote hook repos with separate version pins - Add explicit `[tool.ruff]` settings (line length, target version, isort rules) and apply the resulting import sort fixes - Raise dev dependency floors in `pyproject.toml` so `uv lock --upgrade` can bump tools without editing pins - Extend the dependency update bot to run `pre-commit autoupdate` (for remote hooks like prettier), smoke-check upgraded tooling, and commit both `uv.lock` and `.pre-commit-config.yaml` Remote hooks (`pre-commit-hooks`, `prettier`) remain on pinned revs and are updated by `pre-commit autoupdate` in the scheduled bot. ## Test plan - [x] `pre-commit run --all-files` passes locally - [x] `uv run ruff check .`, `uv run ruff format --check .`, and `uv run mypy .` pass - [x] Code quality workflow passes on the PR - [x] Confirm dependency update bot steps (`uv lock --upgrade`, `pre-commit autoupdate`, smoke check) are valid in workflow YAML
brian added 1 commit 2026-07-10 14:34:28 +02:00
Unify dev tooling via uv so pre-commit, CI, and the update bot stay aligned.
Test Python Package / unit-tests (pull_request) Successful in 12s
Code Quality Pipeline / code-quality (pull_request) Successful in 19s
PR Title Check / check-title (pull_request) Successful in 31s
Test Python Package / integration-tests (pull_request) Successful in 23s
Test Python Package / coverage-report (pull_request) Successful in 10s
565879dd52
Route Python hooks through uv run with versions pinned in uv.lock, add explicit
Ruff settings, and extend the dependency bot to run pre-commit autoupdate.

Co-authored-by: Cursor <cursoragent@cursor.com>
Member

Test Coverage Report:

Name                                                            Stmts   Miss    Cover   Missing
-----------------------------------------------------------------------------------------------
python_repositories/__init__.py                                    12      0  100.00%
python_repositories/adapters/__init__.py                           13      0  100.00%
python_repositories/adapters/connection_aware_adapter.py           61      0  100.00%
python_repositories/adapters/minio_adapter.py                     117      0  100.00%
python_repositories/adapters/redis_adapter.py                     105      0  100.00%
python_repositories/config/__init__.py                              4      0  100.00%
python_repositories/config/dotenv_loader.py                         7      0  100.00%
python_repositories/config/env_bool.py                             14      0  100.00%
python_repositories/config/minio_config.py                         21      0  100.00%
python_repositories/config/redis_config.py                         14      0  100.00%
python_repositories/examples/__init__.py                            0      0  100.00%
python_repositories/examples/artifact_object_repository.py          9      0  100.00%
python_repositories/examples/user_json_repository.py               11      0  100.00%
python_repositories/interfaces/__init__.py                          5      0  100.00%
python_repositories/interfaces/connection_aware_interface.py        8      0  100.00%
python_repositories/interfaces/context_aware_interface.py           8      0  100.00%
python_repositories/interfaces/json_repository_interface.py        15      0  100.00%
python_repositories/interfaces/object_repository_interface.py      11      0  100.00%
-----------------------------------------------------------------------------------------------
TOTAL                                                             435      0  100.00%

**Test Coverage Report:** ``` Name Stmts Miss Cover Missing ----------------------------------------------------------------------------------------------- python_repositories/__init__.py 12 0 100.00% python_repositories/adapters/__init__.py 13 0 100.00% python_repositories/adapters/connection_aware_adapter.py 61 0 100.00% python_repositories/adapters/minio_adapter.py 117 0 100.00% python_repositories/adapters/redis_adapter.py 105 0 100.00% python_repositories/config/__init__.py 4 0 100.00% python_repositories/config/dotenv_loader.py 7 0 100.00% python_repositories/config/env_bool.py 14 0 100.00% python_repositories/config/minio_config.py 21 0 100.00% python_repositories/config/redis_config.py 14 0 100.00% python_repositories/examples/__init__.py 0 0 100.00% python_repositories/examples/artifact_object_repository.py 9 0 100.00% python_repositories/examples/user_json_repository.py 11 0 100.00% python_repositories/interfaces/__init__.py 5 0 100.00% python_repositories/interfaces/connection_aware_interface.py 8 0 100.00% python_repositories/interfaces/context_aware_interface.py 8 0 100.00% python_repositories/interfaces/json_repository_interface.py 15 0 100.00% python_repositories/interfaces/object_repository_interface.py 11 0 100.00% ----------------------------------------------------------------------------------------------- TOTAL 435 0 100.00% ```
brian merged commit b1d34f8f0f into main 2026-07-10 14:36:46 +02:00
brian deleted branch chore/align-dev-tooling-via-uv 2026-07-10 14:36:47 +02:00
Sign in to join this conversation.
No Reviewers
No labels
2 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: lille-vemmelund/python-repositories#48