.PHONY: help setup format lint test clean bump build help: @echo "Available targets:" @echo " make setup - Create venv, install all dependencies, and set up git hooks" @echo " make format - Auto-fix and format code (ruff)" @echo " make lint - Check code style and errors without modifying files (ruff)" @echo " make test - Run all unit tests (pytest)" @echo " make clean - Remove build caches and the virtual environment" @echo " make bump part=X - Bump version (patch/minor/major or set X.Y.Z)" @echo " make build - Build wheel and sdist into dist/" setup: @echo ">> Initializing virtual environment and installing dependencies..." uv sync --group dev @echo ">> Installing pre-commit git hooks..." uv run --group dev pre-commit install format: uv run ruff check --fix src/ tests/ uv run ruff format src/ tests/ lint: uv run ruff check src/ tests/ uv run ruff format --check src/ tests/ test: uv run pytest -v clean: rm -rf .pytest_cache .ruff_cache .venv find src tests -type f -name "*.pyc" -delete find src tests -type d -name "__pycache__" -delete bump: uv run --group dev bump-my-version bump $(part) build: uv build