A copier template to create a Python package.
Getting started & other docs are in the GH Wiki.
Our Changelog is intended to be a helpful resource for maintainers of Coppy projects. Make sure you review it, especially the Breaking section of each release, before upgrading to the latest Coppy template (see next section).
Copier, the project Coppy is built on, enables code lifecycle management for generated projects. That means, it's much easier to keep your project in-sync with the upstream template even when you have made changes to the template files post-generation.
Before updating your Coppy based project, check the Changelog for breaking changes. We'll do our best to keep them relatively minor and provide clear instructions when manual intervention is needed.
pyproject.tomlpackage config- Hatch build backend
- uv project for dependencies, etc.
- Ruff linting & formatting
- Enforce single quotes
- Sane(ish) linting rules including safe fixes
- mise
- Manage Python version
- Local dev virtualenv activation
- Static environment variables
- Other tools when needed (e.g. npm, Terraform)
- Project tasks
- Versioning
- Date based by default (
mise bump --help) - Bumping automatically commits, tags, and (by default) pushes
- Date based by default (
- Testing
- Nox (tox alternative) test runner
pytestwith integrated code coverage
- pre-commit & pre-commit-uv for speed
- CI: GitHub Actions & CircleCi integration using nox