Skip to content

Template-Refresh aus dem Framework-Review (Pins, Prod-Gerüst, ci_host, skip_if_exists, Render-Job) - #14

Merged
rrolf merged 1 commit into
mainfrom
feat/template-refresh
Oct 1, 2026
Merged

rrolf merged 1 commit into
mainfrom
feat/template-refresh

Conversation

@rrolf

@rrolf rrolf commented Oct 1, 2026

Copy link
Copy Markdown
Contributor

Zweiter PR aus dem Framework-Review (nach #13): das Copier-Template holt die Pakete ein, bekommt das Prod-Gerüst der reifen Tools und wird in der CI endlich selbst gerendert.

Was sich ändert

Pins & Code — integrations 0.2.2 / auth 0.1.1 / lti 0.1.4 / ui 0.6.0 (bisher 0.1.0/0.1.0/0.1.2/0.2.1 — das Template generierte Tools ohne den clean_media_url-Sicherheitsfix). api.ts fällt im Prod-Build auf same-origin statt localhost zurück, behandelt 204/FormData und verliert bei eigenen headers nicht mehr den CSRF-Token. Die 90-Zeilen-SettingsMenu-Kopie weicht PreferencesMenu aus @basicbar/ui. Settings werfen ImproperlyConfigured, wenn DJANGO_DEBUG=0 mit dem Dev-SECRET_KEY startet.

Prod-Gerüst (bisher nur in abstimmbar/ausleihbar, nahezu identisch — Rule of Two): Root-Dockerfile (Multi-Stage, SPA gebacken), docker-compose.prod.yml (Pflichtvariablen per :?, migrate+collectstatic beim Start, Caddy serviert aus Volumes), .env.prod.example, .dockerignore für beide Build-Kontexte. Dev-Dockerfile ohne libpq-dev/gcc (alles Wheels, ≈150 MB weniger), gunicorn raus.

Copier — neue Frage ci_host (github/gitlab, bedingt gerenderte .github/workflows/{ci,release}.yml bzw. .gitlab-ci.yml); _skip_if_exists für Identitäts-/Inhaltsdateien (tailwind.config.js, App.tsx, locales, README/CLAUDE.md, Keycloak-Realm, Caddyfile, .env.prod.example) — damit entfallen z. B. erkennbars 11 Hue-Konflikte beim nächsten copier update; _message_after_copy mit den ersten Schritten. Ports/Hue-Defaults rücken hinter erkennbar auf.

Qualität — ruff-Config mit Import-Sortierung, echte Tests in common/tests.py, Kopierreste (Pagination-Docstring, accounts.oidc-Verweis, CMD runserver) bereinigt, manage.py ausführbar. Repo-CI: Job template-probe rendert das Template (mit LTI) und fährt ruff, check, makemigrations --check, Testsuite gegen PostgreSQL und Frontend-Build der generierten App; die drei Paket-Jobs sind jetzt eine Matrix mit pip-/npm-Cache.

Verifiziert (lokal)

Beide ci_host-Varianten gerendert (bedingte CI-Dateien korrekt, keine Jinja-Reste); generiertes Backend im Container: ruff sauber, check OK, makemigrations --check OK, 9 Tests grün; Frontend npm install && npm run build grün (der Chunk-Size-Hinweis ist das TipTap-im-Bundle-Thema des Reviews → ui-PR).

Nicht enthalten

Bestandstools werden nicht automatisch aktualisiert — copier update --vcs-ref HEAD ist ein bewusster Schritt pro Tool (Changelog nennt, wo Konflikte zu erwarten sind).

🤖 Generated with Claude Code

… ci_host, skip_if_exists, Render-Job

- Paket-Pins aktuell (integrations 0.2.2, auth 0.1.1, lti 0.1.4,
  ui 0.6.0 — bisher u. a. integrations 0.1.0 ohne clean_media_url-Fix).
- api.ts: same-origin im Prod-Build statt localhost-Fallback; 204 und
  FormData korrekt; init-Spread überschreibt Header nicht mehr.
- App-Shell: PreferencesMenu aus @basicbar/ui statt 90-Zeilen-Eigenbau.
- settings: ImproperlyConfigured bei DEBUG=0 mit Dev-SECRET_KEY.
- Prod-Gerüst: Root-Dockerfile (SPA gebacken), docker-compose.prod.yml,
  .env.prod.example, .dockerignore; Dev-Dockerfile ohne libpq-dev/gcc,
  CMD uvicorn; gunicorn raus.
- Neue Frage ci_host: GitHub Actions (CI + GHCR-Release) oder GitLab-CI,
  bedingt gerendert.
- _skip_if_exists für Identitäts-/Inhaltsdateien, _message_after_copy.
- ruff-Config (Import-Sortierung), echte Tests in common/tests.py,
  Kopierreste bereinigt, manage.py ausführbar (EXE001).
- Repo-CI: template-probe rendert mit LTI und fährt ruff, check,
  makemigrations --check, Tests gegen PostgreSQL, Frontend-Build;
  Paket-Jobs als Matrix mit Caches.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant