A modern Python project template with uv, Ruff, mypy, and CI/CD best practices.
- 📦 uv for dependency management
- 🧹 Ruff for linting and formatting
- 🔍 mypy for type checking
- ✅ pytest with coverage reporting
- 🔄 GitHub Actions CI/CD with matrix testing
- 📝 Semantic Release for automated versioning
- 🔒 Pre-commit hooks with conventional commit validation
- 🛡️ Dependabot for security updates
.
├── .github/
│ ├── workflows/
│ │ ├── ci.yml # CI: Lint, Type-check, Test matrix
│ │ └── release.yml # CD: Automated versioning & GitHub Release
│ └── dependabot.yml # Weekly dependency updates
├── scripts/
│ ├── setup-github.ps1 # Configure GitHub repo settings (PowerShell)
│ └── setup-github.sh # Configure GitHub repo settings (Bash)
├── src/
│ └── {{project_name}}/ # Your project source code
├── tests/ # Your test suite
├── Dockerfile # Containerization with uv
├── pyproject.toml # Project metadata & tool configuration
└── README.md # This file
- Click "Use this template" on GitHub.
- Run the setup script:
.\scripts\setup-github.ps1(Windows) or./scripts/setup-github.sh(Linux/Mac). - Update
pyproject.tomlwith your project data.