Cookiecutter template for creating Python packages with complete CI/CD setup and automatic PyPI publishing.
- Modern tools: Hatchling, uv, Ruff, MyPy, Pytest
- CI/CD out of the box: GitHub Actions with automatic PyPI publishing
- Release management: Release Please + Conventional Commits
- Code quality: linting, typing, tests, security checks
- Ready commands: Makefile for all development tasks
# Install cookiecutter
pip install cookiecutter
# Create project
cookiecutter https://github.com/serafinovsky/cookiecutter-uv-package
# Setup development environment
cd your-project-name
make dev-setup# Install the CLI tool
pip install cookiecutter-uv-package
# Get help with available arguments
cookiecutter-uv-package --help
# Create project with CLI
cookiecutter-uv-package
# Or with custom options
cookiecutter-uv-package --output-dir /path/to/projects --no-input
# Setup development environment
cd your-project-name
make dev-setupWhen creating a project, you'll be asked to configure:
- project_name: Display name for your package (e.g., "My Awesome Package")
- project_short_description: Brief description of what your package does
- author_name: Your name
- author_email: Your email address
- github_username: Your GitHub username
- python_versions: Supported Python versions (default: "3.11, 3.12, 3.13")
- use_docker: Whether to include Docker support (yes/no)
- deployment_setup: Choose deployment setup (none/github-ci/github-ci-pypi)
- license: Choose license (MIT/Apache-2.0/BSD-3-Clause/GPL-3.0/ISC/none)
make dev-setup # Setup development environment
make test # Run tests
make check # Check code
make format # Format code
make build # Build package- Ready Python package with proper structure
- CI/CD pipeline with GitHub Actions
- Automatic PyPI publishing
- Version management via Release Please
See a real example of this template in action: demo-example-package
- Full Documentation - Complete guide and reference
- Tutorial - Step-by-step setup guide
- Features - Detailed feature descriptions
- Examples - Usage examples and scenarios
MIT License