Skip to content

Migrate Python tooling from pip-tools/tox to uv#351

Merged
hf-krechan merged 1 commit into
mainfrom
migrate-pip-tools-tox-to-uv
Jul 22, 2026
Merged

Migrate Python tooling from pip-tools/tox to uv#351
hf-krechan merged 1 commit into
mainfrom
migrate-pip-tools-tox-to-uv

Conversation

@hf-krechan

Copy link
Copy Markdown
Contributor

Summary

  • Move dev-tool groups (tests, linting, type_check, spell_check, coverage, formatting) from project.optional-dependencies to PEP 735 [dependency-groups]; also moves packaging (build/twine) there since it's maintainer tooling, not a user-facing extra. dev group aggregates everything + pre-commit, replacing the removed pip-tools dependency.
  • Remove tox.ini and requirements.txt; add uv.lock (generated via uv lock). Set [tool.uv] default-groups = [] so isolated CI jobs (uv sync --group X) don't implicitly pull in the whole dev group.
  • Update all .github/workflows/*.yml to install uv via astral-sh/setup-uv@v9.0.0 and run uv sync --group X + uv run <tool> instead of pip install tox + tox -e X (also drops the separate actions/setup-python step, since setup-uv pins the interpreter).
  • Rewrite the README bootstrap section: drop the toxbase Windows/Unix setup instructions in favor of uv sync --group dev, and point PyCharm/VS Code interpreter instructions at .venv instead of .tox/dev.
  • No application code changes — tooling/config/CI/docs only.

Test plan

  • uv lock / uv sync --group dev succeed
  • uv run pytest passes
  • Spot-checked isolated groups work: linting (pylint 10/10), type_check (mypy strict, clean), spell_check (codespell, clean), coverage (100%, report generates), formatting (black/isort clean), packaging (build + twine check pass)
  • pre-commit hooks run clean on the commit

🤖 Generated with Claude Code

Replaces pip-compile/tox-based dev tooling with uv: dev-tool groups move
from project.optional-dependencies to PEP 735 dependency-groups, tox.ini
and requirements.txt are removed in favor of uv.lock, CI workflows install
uv (astral-sh/setup-uv) and run `uv sync --group X` + `uv run <tool>`
instead of `pip install tox` + `tox -e X`, and the README bootstrap/IDE
setup instructions now point at `uv sync` and `.venv`.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@hf-krechan
hf-krechan merged commit 4d7f008 into main Jul 22, 2026
19 checks passed
@hf-krechan
hf-krechan deleted the migrate-pip-tools-tox-to-uv branch July 22, 2026 13:50
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