Skip to content

Epic: convert cosmic-fastapi into a Copier template #24

Description

@tomasanchez

Goal

Turn this repo from a clone-and-rename template (package literally named template) into a proper scaffolding template.

Tooling decision: Copier (recommended over cookiecutter)

The template's value is its evolving standard (14 ADRs, AGENTS.md, coverage matrix). Copier's native copier update lets generated projects re-pull standard improvements via .copier-answers.yml; it supports Jinja in file contents and paths, conditional inclusion via _exclude, and typed/validated YAML questions — vs cookiecutter's JSON + post-gen-hook deletes and no native update story (needs cruft). This choice must be recorded as an ADR in docs/adr/ (ADR 0015) before conversion work starts.

Target layout

  • copier.yml + author-facing README/CONTRIBUTING + docs/adr/ at template-repo root
  • {{ project_slug }}/ contains the generated project (templated pyproject, src/{{ package_name }}, migrations, CI, etc.)
  • Template-repo CI bakes the template across the feature matrix and runs lint+cover inside baked projects

Phases

Phase 0 — fix before templating

Phase 0.5 — quality hardening (can land in parallel)

Phase 1 — conversion

Key risks

  • Optional user slice vs the 100% coverage gate — bake-and-test matrix is the guardrail
  • uv.lock must be regenerated post-gen, never templated
  • GitHub Actions ${{ }} vs Jinja — use {% raw %}

Metadata

Metadata

Assignees

No one assigned

    Labels

    templateCookiecutter/Copier conversion work

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions