.PHONY: help install dev-install format lint type-check test test-cov clean pre-commit setup-dev help: @echo "Available commands:" @echo " setup-dev - Install all development dependencies and setup pre-commit" @echo " install - Install production dependencies" @echo " dev-install - Install development dependencies" @echo "" @echo "Code Quality:" @echo " format - Format code with ruff" @echo " lint - Lint code with ruff and pylint" @echo " type-check - Run type checking with mypy and pyright" @echo " security - Run security checks with bandit" @echo " check-all - Run all code quality checks" @echo "" @echo "Testing:" @echo " test - Run tests with pytest" @echo " test-cov - Run tests with coverage reporting" @echo "" @echo "Development:" @echo " pre-commit - Run pre-commit hooks on all files" @echo " clean - Clean up cache files and artifacts" install: uv sync --no-dev dev-install: uv sync setup-dev: dev-install uv run pre-commit install @echo "โœ… Development environment setup complete!" @echo "Run 'make check-all' to verify everything works correctly." format: @echo "๐ŸŽจ Formatting code with ruff..." uv run ruff format . @echo "โœ… Code formatting complete!" lint: @echo "๐Ÿ” Linting code with ruff..." uv run ruff check . --fix @echo "๐Ÿ“ Running additional linting with pylint..." uv run pylint strix/ --score=no --reports=no @echo "โœ… Linting complete!" type-check: @echo "๐Ÿ” Type checking with mypy..." uv run mypy strix/ @echo "๐Ÿ” Type checking with pyright..." uv run pyright strix/ @echo "โœ… Type checking complete!" security: @echo "๐Ÿ”’ Running security checks with bandit..." uv run bandit -r strix/ -c pyproject.toml @echo "โœ… Security checks complete!" check-all: format lint type-check security @echo "โœ… All code quality checks passed!" test: @echo "๐Ÿงช Running tests..." uv run pytest -v @echo "โœ… Tests complete!" test-cov: @echo "๐Ÿงช Running tests with coverage..." uv run pytest -v --cov=strix --cov-report=term-missing --cov-report=html @echo "โœ… Tests with coverage complete!" @echo "๐Ÿ“Š Coverage report generated in htmlcov/" pre-commit: @echo "๐Ÿ”ง Running pre-commit hooks..." uv run pre-commit run --all-files @echo "โœ… Pre-commit hooks complete!" clean: @echo "๐Ÿงน Cleaning up cache files..." find . -type d -name "__pycache__" -exec rm -rf {} + 2>/dev/null || true find . -type d -name ".pytest_cache" -exec rm -rf {} + 2>/dev/null || true find . -type d -name ".mypy_cache" -exec rm -rf {} + 2>/dev/null || true find . -type d -name ".ruff_cache" -exec rm -rf {} + 2>/dev/null || true find . -type d -name "htmlcov" -exec rm -rf {} + 2>/dev/null || true find . -name "*.pyc" -delete 2>/dev/null || true find . -name ".coverage" -delete 2>/dev/null || true @echo "โœ… Cleanup complete!" dev: format lint type-check test @echo "โœ… Development cycle complete!"