Skip to content

chore: migrate to Python 3.13, uv, ruff; replace pipenv and black/flake8/isort#1

Open
adrian-afergon wants to merge 1 commit into
mainfrom
chore/modernize-2026
Open

chore: migrate to Python 3.13, uv, ruff; replace pipenv and black/flake8/isort#1
adrian-afergon wants to merge 1 commit into
mainfrom
chore/modernize-2026

Conversation

@adrian-afergon

Copy link
Copy Markdown
Member

Summary

  • migrate project metadata to pyproject.toml with Python >=3.13
  • replace pipenv/black/flake8/isort workflow with uv + ruff + mypy in Makefile
  • remove legacy Pipfile, Pipfile.lock, and setup.cfg
  • update README version/installation references and gitignore for ruff cache

Notes

  • uv.lock is intentionally not committed in this PR because package-manager commands were not run per constraints.
  • uv.lock will be generated on first uv sync during setup.

Verification

  • Not run (per constraints: do not execute package manager commands)

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Pull request overview

This PR modernizes the project’s Python tooling by moving configuration into pyproject.toml, bumping the supported Python version to 3.13, and replacing the Pipenv + black/flake8/isort workflow with uv + ruff + mypy driven via make.

Changes:

  • Introduce pyproject.toml (Python >= 3.13) and migrate tool configs (pytest, ruff, mypy, coverage) from setup.cfg.
  • Replace Pipenv-based Makefile workflows with uv-based setup/tests/lint/format targets.
  • Remove legacy Pipfile, Pipfile.lock, and setup.cfg; adjust README + gitignore for new tooling/caches.

Reviewed changes

Copilot reviewed 6 out of 8 changed files in this pull request and generated 8 comments.

Show a summary per file
File Description
setup.cfg Removed legacy flake8/isort/mypy/pytest/black/coverage configuration in favor of pyproject.toml.
README.md Updates setup instructions to Python 3.13 + uv (but needs minor corrections for pyenv usage).
pyproject.toml New centralized project + tooling configuration (dependency groups + pytest/ruff/mypy/coverage).
Pipfile.lock Removed Pipenv lockfile as part of the uv migration.
Pipfile Removed Pipenv manifest as part of the uv migration.
Makefile Replaces Pipenv-based setup/tests/lint with uv + ruff + mypy targets.
.python-version Adds a pinned Python version for local tooling (pyenv).
.gitignore Stops ignoring .python-version and adds ruff cache ignore.

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

Comment thread Makefile
Comment on lines +1 to +4
.PHONY: setup tests lint clean

.PHONY: help
help: ## Show this help
@grep -E '^\S+:.*?## .*$$' $(firstword $(MAKEFILE_LIST)) | \
awk 'BEGIN {FS = ":.*?## "}; {printf "%-30s %s\n", $$1, $$2}'
setup:
uv sync
Comment thread Makefile
Comment on lines +6 to +7
tests:
uv run pytest --verbose
Comment thread Makefile
Comment on lines +9 to +12
lint:
uv run ruff check ./src
uv run ruff format --check ./src
uv run mypy
Comment thread Makefile
Comment on lines +14 to +15
format:
uv run ruff format ./src
Comment thread Makefile
Comment on lines +17 to +22
clean:
find . -type f -name "*.pyc" -delete
find . -type d -name "__pycache__" -delete
find . -type d -name ".pytest_cache" -exec rm -rf {} +
find . -type d -name ".mypy_cache" -exec rm -rf {} +
find . -type d -name ".hypothesis" -exec rm -rf {} +
Comment thread README.md

```bash
pyenv install 3.10.9
pyenv install 3.13
Comment thread README.md

```bash
pyenv local 3.10.9
pyenv local 3.13
Comment thread .python-version
@@ -0,0 +1 @@
3.13
@adrian-afergon adrian-afergon self-assigned this Jun 19, 2026
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.

2 participants