Modern python tooling
- Dominant language
- Python
- Stars
- 44
- Forks
- 12
- Avg merge
- 7d 19h
- Merged PRs (30d)
- 10
Description
Over the last years, the open source tooling from astral proved to be reliable and super quick. The migrations would look as following:
- `uv` instead of poetry
- `ruff` instead of flake8/black
- `ty` instead of mypy (`ty` did not have its stable release yet, but it's already widely adopted)
Other changes I would like to make:
- Add prek as a dev dependency, replaces pre-commit, faster and better `uv` compatibility
- Add complexipy as a pre-commit check, limits cognitive complexity of functions
Some things I would remove:
- Nox: I don't fully understand why nox is used in the repo. From my perspective, it should be sufficient if the tests pass on a single python version locally, and different python versions can then be checked in a CI matrix in github actions
- `setup.cfg`: this can be integrated in `pyproject.toml`
- `requirements.txt`: the `poetry.lock` (or `uv.lock`) should handle version locking conveniently, why is an additional mechanism needed?
Contributor guide
Research direction
Start by reviewing the repository's pyproject.toml, setup.cfg, requirements.txt, Poetry configuration or lockfile, Nox setup, and GitHub Actions workflows. Compare the current Poetry, linting, typing, and pre-commit tooling with the proposed uv, ruff, ty, prek, and complexipy migration; done means the local workflow and CI remain passing across the supported Python versions.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- github-actions, python
- Domain
- build-system, ci-cd, tooling
- Issue type
- Refactor
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100