Modern cookiecutter template for creating Python packages with complete CI/CD setup and automatic PyPI publishing.
Project description
Python Package Template
Cookiecutter template for creating Python packages with complete CI/CD setup and automatic PyPI publishing.
Features
- 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
Quick Start
Using cookiecutter directly
# 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
Using CLI tool
# 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-setup
Configuration Options
When 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)
Main Commands
make dev-setup # Setup development environment
make test # Run tests
make check # Check code
make format # Format code
make build # Build package
What You Get
- Ready Python package with proper structure
- CI/CD pipeline with GitHub Actions
- Automatic PyPI publishing
- Version management via Release Please
Example Project
See a real example of this template in action: demo-example-package
Documentation
- Full Documentation - Complete guide and reference
- Tutorial - Step-by-step setup guide
- Features - Detailed feature descriptions
- Examples - Usage examples and scenarios
License
MIT License
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters