Changelog¶
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
1.0.0 - 2026-02-18¶
This is the first release of python-production-template as an independent repository, detached from the upstream pawamoy/copier-uv fork.
Features¶
- AI-native development — Claude Code integration with
CLAUDE.md, custom skills (/commit,/release,/review-pr,/docs-deploy), and Cursor IDE support - Modern Python toolchain — uv for dependency management, Ruff for formatting/linting, ty for type checking, taskipy for task running
- Production-ready scaffold — CLI support, structured logging (loguru), pre-commit hooks, GitHub Actions CI/CD, auto-generated changelog
- Documentation site — Zensical with mkdocstrings for auto-generated API docs
- Optional marimo notebooks — interactive notebook support for data science workflows
- All open-source licenses — every license from choosealicense.com
- Smart defaults — git email and username auto-detected from git config
Fixed¶
- Clean tag history — removed 71 upstream tags (1.0.0–1.11.9) that polluted version resolution
- No more
--vcs-ref HEADworkaround — copier now correctly resolves the latest version without manual ref pinning - Independent repository — no longer marked as a GitHub fork
0.15.0 - 2026-02-17¶
0.14.0 - 2026-02-17¶
0.13.1 - 2026-02-17¶
Fixed¶
- fix(docs): Document copier ref caching behavior and workaround (13444ab by oedokumaci).
0.13.0 - 2026-02-17¶
0.12.0 - 2026-02-17¶
0.11.3 - 2026-02-17¶
0.11.2 - 2026-02-17¶
0.11.1 - 2026-02-17¶
Fixed¶
- fix: Replace remaining make references with taskipy commands (6d768b1 by oedokumaci).
0.11.0 - 2026-02-17¶
Fixed¶
- fix(docs): Add --vcs-ref HEAD to copier copy commands to bypass cache (b4369b8 by oedokumaci).
0.10.1 - 2026-02-17¶
Fixed¶
- fix: Replace make references with taskipy commands in README.md.jinja (e704bf5 by oedokumaci).
0.10.0 - 2026-02-17¶
0.9.0 - 2026-02-17¶
0.8.0 - 2026-02-17¶
Fixed¶
- fix: Improve copyright holder help text to suggest company names (fa0c7c4 by oedokumaci).
0.7.4 - 2026-02-17¶
Fixed¶
- fix: Default repository provider to github.com without prompting (bc8dd45 by oedokumaci).
0.7.3 - 2026-02-17¶
Fixed¶
- fix: Address review issues in upstream migration PR (8506149 by oedokumaci).
0.7.2 - 2026-02-17¶
Fixed¶
- fix(docs): Address review issues in workflow documentation (e16d979 by oedokumaci).
0.7.1 - 2026-02-17¶
Fixed¶
- fix: Replace _internal imports with public API in docs and AI guidance (a88dd56 by Claude).
0.7.0 - 2026-02-17¶
0.6.0 - 2026-02-17¶
0.5.0 - 2026-02-17¶
0.4.5 - 2026-01-26¶
Fixed¶
- fix: Change default copyright license from ISC to MIT (1f61db1 by oedokumaci).
0.4.4 - 2026-01-26¶
Fixed¶
- fix: Add new test command options and update CI workflow (86dd2d0 by oedokumaci).
0.4.3 - 2026-01-26¶
Added¶
- Add instructions for remote repository setup (34fa8a7 by Berk Idem).
0.4.2 - 2026-01-22¶
Fixed¶
- fix(template): Handle missing classifier key in gen_credits.py template (94b48c7 by oedokumaci).
0.4.1 - 2026-01-22¶
0.4.0 - 2026-01-22¶
Fixed¶
- fix: Update requirements and changelog commands for packaging compatibility (84803c6 by oedokumaci).
- fix(template): Format cli.py and debug.py templates for ruff compliance (0a25a63 by oedokumaci).
- fix: Use correct uvx syntax for taskipy (uvx --from taskipy task) (2a52f27 by oedokumaci).
- fix: Apply Python logging best practices to generated init.py (94dc33e by oedokumaci).
0.3.0 - 2025-12-19¶
Fixed¶
- fix(ci): Update git user name in CI configuration and adjust copyright date in tests (3e3b65a by oedokumaci).
0.2.0 - 2025-12-05¶
0.1.18 - 2025-12-05¶
0.1.17 - 2025-12-05¶
0.1.16 - 2025-11-30¶
0.1.15 - 2025-11-30¶
Fixed¶
- fix(config): Adjust Ruff configuration for notebook exclusion (90e25c8 by oedokumaci).
0.1.14 - 2025-11-30¶
Fixed¶
- fix(notebooks): Update README and starter notebook for marimo formatting (8ffa8ad by oedokumaci).
0.1.13 - 2025-11-30¶
Fixed¶
- fix(notebooks): fix YouTube channel link in README and starter files (93b22f2 by oedokumaci).
0.1.12 - 2025-11-30¶
0.1.11 - 2025-11-30¶
Fixed¶
- fix(config): Remove tests directory from coverage source paths (201bb04 by oedokumaci).
0.1.10 - 2025-11-30¶
Fixed¶
- fix: Update symlink in .cursorrules.jinja to point to CLAUDE.md (60837b7 by oedokumaci).
0.1.9 - 2025-11-30¶
0.1.8 - 2025-11-30¶
Fixed¶
- fix(docs): Update README.md.jinja to include full clone URL for repository (6c17515 by oedokumaci).
0.1.7 - 2025-11-30¶
Fixed¶
- fix(tests): Release file lock in logging tests on Windows (df2d9e5 by oedokumaci).
0.1.6 - 2025-11-30¶
0.1.5 - 2025-11-30¶
0.1.4 - 2025-11-29¶
0.1.3 - 2025-11-29¶
0.1.2 - 2025-11-29¶
Fixed¶
- fix(template): Replace magic number with constant in CLI verbosity check (df34686 by oedokumaci).
0.1.1 - 2025-11-29¶
0.1.0 - 2025-11-29¶
Fixed¶
- fix: render credits without extra link (f50d9f6 by oedokumaci).
1.11.2 - 2025-11-20¶
1.11.1 - 2025-11-08¶
Fixed¶
- fix: Fix tagging commit when signed commits are enabled? (f1f0950 by Timothée Mazzucotelli).
- fix: Always force docs deployment (c41b8fe by Timothée Mazzucotelli).
1.11.0 - 2025-10-24¶
Fixed¶
- fix: Use specific version of artifact (91b5c99 by Timothée Mazzucotelli).
1.10.2 - 2025-10-09¶
Fixed¶
- fix: Fix CI workflow (4f874da by Timothée Mazzucotelli).
1.10.1 - 2025-10-09¶
Fixed¶
- fix: Fix typo in PR template (b270abc by Timothée Mazzucotelli).
1.10.0 - 2025-10-07¶
1.9.0 - 2025-09-01¶
1.8.9 - 2025-08-15¶
1.8.8 - 2025-08-15¶
1.8.7 - 2025-08-15¶
1.8.6 - 2025-07-15¶
1.8.5 - 2025-07-02¶
1.8.4 - 2025-04-08¶
1.8.3 - 2025-04-08¶
1.8.2 - 2025-03-24¶
Fixed¶
- fix: Exclude mypy cache folders from sdists (16011cc by Timothée Mazzucotelli).
1.8.1 - 2025-03-13¶
1.8.0 - 2025-03-11¶
1.7.1 - 2025-03-02¶
Fixed¶
- fix: Output llms-full.txt, not llms.txt (2c8b4f8 by Timothée Mazzucotelli).
1.7.0 - 2025-03-01¶
1.6.4 - 2025-02-24¶
1.6.3 - 2025-02-24¶
Fixed¶
- fix: Ensure test jobs wait for quality one (for objects inventory artifact to be ready) (885f204 by Timothée Mazzucotelli).
1.6.2 - 2025-02-24¶
1.6.1 - 2025-02-19¶
Fixed¶
- fix: Fix license choices in template configuration (f26c221 by Timothée Mazzucotelli).
1.6.0 - 2025-02-19¶
Fixed¶
- fix: Prevent extension crash with key error (1d27caf by Timothée Mazzucotelli).
1.5.7 - 2025-01-23¶
Fixed¶
- fix: Preserve symlinks (make -> make.py) (dab1219 by Timothée Mazzucotelli).
1.5.6 - 2024-12-24¶
1.5.5 - 2024-12-23¶
Fixed¶
- fix: Ignore constraints on main package (from dependencies), to allow resolving deps in forks/CI (d644679 by Timothée Mazzucotelli).
1.5.4 - 2024-11-21¶
1.5.3 - 2024-11-11¶
Fixed¶
- fix: Don't pass
--python pythonto uv, which requires apythonexec in the PATH (331db66 by Timothée Mazzucotelli). - fix: Make it so that linters see the make script (4989d1e by Timothée Mazzucotelli).
1.5.2 - 2024-10-17¶
Fixed¶
- fix: Also remove Gitpod badge since we removed configuration (65cc91a by Timothée Mazzucotelli).
- fix: Only add
forceparameter to docs-deploy duty when insiders is enabled (8df12ae by Timothée Mazzucotelli).
1.5.1 - 2024-10-12¶
Fixed¶
- fix: Always fetch the whole Git history, needed to build the current project in non-editable mode with an up-to-date version (f52522e by Timothée Mazzucotelli).
1.5.0 - 2024-10-12¶
1.4.8 - 2024-10-11¶
1.4.7 - 2024-10-11¶
1.4.6 - 2024-10-07¶
Fixed¶
- fix: Use uv to fix pip installs breaking system Python in GHA (b86d3e9 by Timothée Mazzucotelli).
1.4.5 - 2024-09-27¶
Fixed¶
- fix: Fix make help message indentation (addb51e by Timothée Mazzucotelli).
- fix: Invalidate uv cache based on pyproject.toml (b78ce88 by Timothée Mazzucotelli).
1.4.4 - 2024-09-27¶
1.4.3 - 2024-09-27¶
1.4.2 - 2024-09-27¶
Fixed¶
- fix: Better flush help message for make script (fb2d373 by Timothée Mazzucotelli).
- fix: Better handle
ghcommand error (when fetching "Documentation" category ID for discussions) (896dfb3 by Timothée Mazzucotelli).
1.4.1 - 2024-09-05¶
Fixed¶
- fix: Disallow overrides when getting Git remote in docs-deploy duty (cb0135b by Timothée Mazzucotelli).
1.4.0 - 2024-07-04¶
1.3.0 - 2024-06-26¶
Fixed¶
- fix: Fix make script to be compatible with Python < 3.10 (795f39f by Timothée Mazzucotelli).
- fix: Update contributing docs (mention
makescript instead of Makefile) (7e76e47 by Timothée Mazzucotelli).
1.2.11 - 2024-06-26¶
Fixed¶
- fix: Make sure to print errors in case of failure of
makecommand (54696f3 by Timothée Mazzucotelli). - fix: Make sure
setupreturns non-0 exit code when uv fails to resolve dependencies (ba5c4dc by Timothée Mazzucotelli). - fix: Fix Twine dependency (5.1 has been yanked) (e022917 by Timothée Mazzucotelli).
1.2.10 - 2024-06-18¶
1.2.9 - 2024-06-14¶
Fixed¶
- fix: Re-include tests folder in source distributions (3d9a7e1 by Timothée Mazzucotelli).
1.2.8 - 2024-05-24¶
Fixed¶
- fix: Fix calling tasks from actual Makefile (30d3bc9 by Timothée Mazzucotelli).
1.2.7 - 2024-05-23¶
1.2.6 - 2024-05-23¶
1.2.5 - 2024-05-23¶
1.2.4 - 2024-04-26¶
Fixed¶
- fix: Super final ultimate fix for publish duty (f888d9f by Timothée Mazzucotelli).
1.2.3 - 2024-04-26¶
Fixed¶
- fix: Further fixes to release/publish duties (263580a by Timothée Mazzucotelli).
1.2.2 - 2024-04-26¶
Fixed¶
- fix: Don't use modern annotations as duty fails evaluating them on Python 3.8 and 3.9 (4cd01f9 by Timothée Mazzucotelli).
1.2.1 - 2024-04-26¶
Fixed¶
- fix: Only print available tasks if venvs are setup (0c65bdf by Timothée Mazzucotelli).
- fix: Fix build and publish duties (27eb549 by Timothée Mazzucotelli).
1.2.0 - 2024-04-26¶
Fixed¶
- fix: Don't include current project in credits (77ae955 by Timothée Mazzucotelli).
- fix: Fix parsing options in make scripts (4dbb47c by Timothée Mazzucotelli).
1.1.0 - 2024-03-19¶
Fixed¶
- fix: Fix issues with credits generation (7384022 by Timothée Mazzucotelli).
- fix: Correctly exclude fixtures from Ruff (2dcda18 by Timothée Mazzucotelli).
1.0.8 - 2024-03-13¶
Fixed¶
- fix: Remove prefix from completed goals HTML ids (3e1d865 by Timothée Mazzucotelli).
1.0.7 - 2024-03-13¶
1.0.6 - 2024-03-02¶
1.0.5 - 2024-02-29¶
Fixed¶
- fix: Fix view/edit URIs in docs (8fdf5dd by Timothée Mazzucotelli).
1.0.4 - 2024-02-28¶
Fixed¶
- fix: I AM SO ANNOYED BY THIS OS (2c5beb4 by Timothée Mazzucotelli).
- fix: Fix dependencies installation in CI (af33aab by Timothée Mazzucotelli).
1.0.3 - 2024-02-28¶
Fixed¶
- fix: Fix parsing options now that the script exits on errors (c800738 by Timothée Mazzucotelli).
1.0.2 - 2024-02-28¶
Fixed¶
- fix: Fix uv install and credits again (7ce4e3b by Timothée Mazzucotelli).
1.0.1 - 2024-02-28¶
Fixed¶
- fix: Fix credits generation, preventing dev-deps to appear as runtime ones (dfa6ed4 by Timothée Mazzucotelli).
- fix: Fix re-installation of deps (ace356a by Timothée Mazzucotelli).
1.0.0 - 2024-02-19¶
Added¶
- Add Gitter badge to README (f3694ea by Timothée Mazzucotelli).
- Add Python 3.9, use Poetry version in CI cache key (08542d0 by Timothée Mazzucotelli).
- Add note about Poetry and Invoke requirements (3e76b39 by Timothée Mazzucotelli).
- Add markdown extensions (6e49531 by Timothée Mazzucotelli).
- Add funding file (d3c00aa by Timothée Mazzucotelli).
- Add TODO comments (0a861f9 by Timothée Mazzucotelli).
- Add recipe to update dependencies (7c02eb8 by Timothée Mazzucotelli).
- Add missing pytest-randomly optional dependency (3fe5f43 by Timothée Mazzucotelli).
- Add MacOS and Windows to test matrix (309bc30 by Timothée Mazzucotelli).
- Add blank lines after headings (98e2824 by Timothée Mazzucotelli).
- Add GitHub CI (21bbae8 by Timothée Mazzucotelli).
Fixed¶
- fix: This OS is so annoying (ddbac0f by Timothée Mazzucotelli).
- fix: Append exe to command names on Windows (279f5c2 by Timothée Mazzucotelli).
- fix: Don't source venv's BAT script on Windows (cf61ecf by Timothée Mazzucotelli).
- fix: Correctly set Python versions to empty string in CI (e8382df by Timothée Mazzucotelli).
- fix: Only set Python versions if unset (a5f5000 by Timothée Mazzucotelli).
- fix: Use insiders repository name in insiders installation page (2308ed4 by Timothée Mazzucotelli).
- fix: Pass funding when loading goals from list of sources (91aed63 by Timothée Mazzucotelli).
- fix: Fix Insiders links in README again (9b220af by Timothée Mazzucotelli).
- fix: Fix links to Insiders in README (5f36ca4 by Timothée Mazzucotelli).
- fix: Fix link in Gitter badge (7130f45 by Timothée Mazzucotelli).
- fix: Fix spacing after sponsors in insiders page (d82c5eb by Timothée Mazzucotelli).
- fix: Fix relative paths (to work with MkDocs
-foption) (eb7d954 by Timothée Mazzucotelli). - fix: Have a dedicated question for insiders repository name (e2bccde by Timothée Mazzucotelli).
- fixup! feat: Add
ssortto code formatting task (12f4fb6 by Timothée Mazzucotelli). - fix: Don't use double-quotes in filenames (6c4749e by Timothée Mazzucotelli).
- fix: Fix external link indicator for Chrome (72c59d9 by Timothée Mazzucotelli).
- fix: Use main branch for edit URIs in docs (ebb9ddf by Timothée Mazzucotelli).
- fix: Re-enable CI on branch push (8c30425 by Timothée Mazzucotelli).
- fix: Allow Python prerelease through setup-pdm action (b2c91e4 by Timothée Mazzucotelli).
- fix: Fix quality (abd744f by Timothée Mazzucotelli).
- fix: Only show unreleased insiders features, not implemented ones (5a46c98 by Timothée Mazzucotelli).
- fix: Fix symbol type in nav (cc6eb69 by Timothée Mazzucotelli).
- fix: Fix edit URI for docs pages (90ba486 by Timothée Mazzucotelli).
- fix: Build insiders dists with full Git history (2bfa741 by Timothée Mazzucotelli).
- fix: Fix Gitter badge URL (105715b by Timothée Mazzucotelli).
- fix: Fix project URLs (Gitter/Funding) (4d90e98 by Timothée Mazzucotelli).
- fix: Fix mdash position in announcement bar (812dc1d by Timothée Mazzucotelli).
- fix: Lock with cross-platform locally (takes Python version into account otherwise) (f6d5e1f by Timothée Mazzucotelli).
- fix: Improve style for autorefs external links (315e385 by Timothée Mazzucotelli).
- fix: Fix credits generation again (87cbd91 by Timothée Mazzucotelli).
- fix: Prevent error when generating credits (747c3dd by Timothée Mazzucotelli).
- fix: Only run dists workflow in insiders repo (24200e9 by Timothée Mazzucotelli).
- fix: Improve insiders script (f99dbbf by Timothée Mazzucotelli).
- fix: Add write permissions to dists job (7bcde71 by Timothée Mazzucotelli).
- fix: Fix conversion to date (25d9c13 by Timothée Mazzucotelli).
- fix: Replace XML entity with actual char in generated heading (buggy in Markdown Exec) (cc55595 by Timothée Mazzucotelli).
- fix: Set DEPLOY to "true" (loaded as YAML) (9e4b8cd by Timothée Mazzucotelli).
- fix: Don't hardcode ISC license (43f1dc7 by Timothée Mazzucotelli).
- fix: Support empty command line name (c55faba by Timothée Mazzucotelli).
- fix: Remove test code for printing sponsors (22262f8 by Timothée Mazzucotelli).
- fix: Remove unused dependency (5e771a7 by Timothée Mazzucotelli).
- fix: Fix check-api duty (check all packages in src) (20154ab by Timothée Mazzucotelli).
- fix: Add black to docs dependencies, to format signatures (9fa3f8d by Timothée Mazzucotelli).
- fix: Fix format in duties.py (0f843b8 by Timothée Mazzucotelli).
- fix: Rename summary file to prevent breaking sitemap (e9c788d by Timothée Mazzucotelli).
- fix: Fix credits for PDM 2.3.0 (and hide ToC) (adc8fd5 by Timothée Mazzucotelli).
- fix: Use Python 3.11 now that it was released (6ff9511 by Timothée Mazzucotelli).
- fix: Another patch for flake8/importlib-metadata conflicts (cc97999 by Timothée Mazzucotelli).
- fix: Use checkout action v3 (be43336 by Timothée Mazzucotelli).
- fix: Use
licensefield again (instead oflicense-expression) (d65665a by Timothée Mazzucotelli). - fix: Fix safety duty never failing (3a4bdc8 by Timothée Mazzucotelli).
- fix: Fix PDM configuration for dynamic version (86bde7c by Timothée Mazzucotelli).
- fix: Fix import error on Python 3.7 when generating credits (0f12894 by Timothée Mazzucotelli).
- fix: Fix setup script for first time use (7ab9adc by Timothée Mazzucotelli).
- fix: Fix (really) PyPI badge (d7dc73f by Timothée Mazzucotelli).
- fix: Fix docs tabs and PyPI badge (d7b0f3a by Timothée Mazzucotelli).
- fix: Fix Jinja "undefined" error when user is not "pawamoy" (01dcf3b by Francisco Perez-Sorrosal).
- fix: Add missing section-index plugin in mkdocs.yml (611e99b by Timothée Mazzucotelli).
- fixup! refactor: Run dependencies check only once (bd07ad3 by Timothée Mazzucotelli).
- fixup! feat: Add make lock recipe (cc2239f by Timothée Mazzucotelli).
- fix: Fix credits building (bb9eacc by Timothée Mazzucotelli).
- fix: Add migration to remove old files (ee48c18 by Timothée Mazzucotelli).
- fix: Fix generated code reference navigation (61be4e3 by Timothée Mazzucotelli).
- fix: Append missing trailing new lines (f382682 by Timothée Mazzucotelli).
- fix: Fix combining coverage on shells without globbing (a2d7e17 by Timothée Mazzucotelli).
- fix: Fix mypy warnings in docs/macros.py (517b0ba by Timothée Mazzucotelli).
- fix: Install a working PDM version (23f9c6a by Timothée Mazzucotelli).
- fix: Fix caches names in CI (a1e9bed by Timothée Mazzucotelli).
- fix: Stop including README and pyproject.toml in package (54ea35b by Timothée Mazzucotelli).
- fix: Fix parameter expansion not to override empty PYTHON_VERSIONS (0837d9c by Timothée Mazzucotelli).
- fix: Fix LICENSE file being generated empty (b5f0fb3 by Timothée Mazzucotelli).
- fix: Use repository provider in MkDocs
site_urlandrepo_url(24f57a4 by WhatTheServer). - fix: Don't autoescape when updating changelog (2b63c22 by Timothée Mazzucotelli).
- fix: Fix path in coverage config (e195a5b by Timothée Mazzucotelli).
- fix: Fix CI cache key names (a22266c by Timothée Mazzucotelli).
- fix: Fix CI detection and PTY usage (20512fe by Timothée Mazzucotelli).
- Fix Makefile arguments when they contain spaces (18afcb1 by Timothée Mazzucotelli).
- Fix typo (5183a17 by Timothée Mazzucotelli).
- Fix errors when rendering some licenses (3822364 by Timothée Mazzucotelli).
- Fix quality stuff (0278a81 by Timothée Mazzucotelli).
- Fix style (bcb1936 by Timothée Mazzucotelli).
- Fix credits again (d17b06b by Timothée Mazzucotelli).
- Fix duplicated entries in credits (ea24848 by Timothée Mazzucotelli).
- Fix mkdocs palette (2593a60 by Timothée Mazzucotelli).
- Fix quality for tasks (3c5b8cc by Timothée Mazzucotelli).
- Fix coverage combining for multiple runs (37396dd by Timothée Mazzucotelli).
- Fix constant type (generator -> tuple) (2233509 by Timothée Mazzucotelli).
- Fix missing new line when updating changelog (5fbfbfa by Timothée Mazzucotelli).
- Fix pipxproject URL (a3c6464 by Timothée Mazzucotelli).
- Fix makefile, badges, and update versions (959ba2f by Timothée Mazzucotelli).
- Fix git not setup in CI (2200b55 by Timothée Mazzucotelli).
- Fix licenses for Windows (6b1ba5e by Timothée Mazzucotelli).
- Fix symlinking (82efdff by Timothée Mazzucotelli).
- Fix docs / building wheel (b4755e1 by Timothée Mazzucotelli).
- Fix check-dependencies (5f8bbb6 by Timothée Mazzucotelli).
Removed¶
- Remove duties from coverage ignores (cc780b3 by Timothée Mazzucotelli).
- Remove unused combine duty (b165eb1 by Timothée Mazzucotelli).
- Remove 'v' prefix from versions (3c95d34 by Timothée Mazzucotelli).
- Remove useless noqa (5725fc3 by Timothée Mazzucotelli).
- Remove flake8.ini, now using flakehell (36f7630 by Timothée Mazzucotelli).