From afa3d742485aca8e0fef6cc297c7cea7657c559e Mon Sep 17 00:00:00 2001 From: Florian Wilde Date: Tue, 1 Sep 2026 20:52:52 +0200 Subject: [PATCH] docs: Changelog und Release-Notes fuer 0.6.1 vorbereiten --- CHANGELOG.md | 38 +++++++++++++++++++++++++++++++++++++- Dockerfile | 18 +++++++++++++++--- docker/entrypoint.sh | 2 +- package.json | 2 +- releases/v0.6.1.md | 34 ++++++++++++++++++++++++++++++++++ 5 files changed, 88 insertions(+), 6 deletions(-) create mode 100644 releases/v0.6.1.md diff --git a/CHANGELOG.md b/CHANGELOG.md index 2e78b7a..8a81d39 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,41 @@ die Versionierung [Semantic Versioning](https://semver.org/lang/de/). ## [Unveröffentlicht] +## [0.6.1] — 2026-09-01 + +Nacharbeiten aus der Abnahme: das Docker-Image wurde zum ersten Mal wirklich +gebaut und gestartet — dabei kam ein Fehler ans Licht, den nur der echte +Containerstart zeigt. + +### Behoben + +- **Der Container konnte seine Migrationen nicht einspielen.** Das Laufzeitimage + bekam die Prisma-CLI, indem einzelne Ordner aus `node_modules` kopiert wurden + — dabei fehlten transitive Abhängigkeiten von `@prisma/config` (`effect` und + weitere). Die CLI wird jetzt in einer eigenen Build-Stufe vollständig + installiert und liegt im Laufzeitimage unter `/node_modules`, wo sie den + getracten Abhängigkeitsbaum der Anwendung nicht stört. + +### Hinzugefügt + +- **Erscheinungsmeldung für Watchlist-Filme.** Der Schalter dafür stand schon im + Profil, verschickt wurde bisher nichts. Betrachtet wird ein Zeitfenster der + letzten Tage statt eines Zustandswechsels — TMDB verschiebt Termine + gelegentlich, und ein einmal verpasstes Datum soll die Meldung nicht für + immer verhindern. +- **Gitea-Actions-Workflows**: `ci.yml` prüft bei jedem Push Typen, Tests und + Produktionsbuild gegen eine echte PostgreSQL-Instanz; `release.yml` legt beim + Pushen eines Versions-Tags das Release mit den Notizen aus + `releases/vX.Y.Z.md` an. +- Diagrammfarben und ihre Prüfwerte in `docs/DESIGN.md` festgehalten; das + öffentliche Profil in die Anleitung aufgenommen. + +### Entfernt + +- Die ungenutzte `images`-Konfiguration in `next.config.ts`. `next/image` kommt + nirgends zum Einsatz — damit entfällt auch das sicherheitsrelevant aussehende + `dangerouslyAllowSVG`, das ohnehin wirkungslos war. + ## [0.6.0] — 2026-09-01 Der Rest: Benachrichtigungen, Abgleich, Import und Export, Schnittstelle, PWA @@ -261,7 +296,8 @@ Erste lauffähige Etappe: Gerüst, Marke, Datenmodell und Anmeldung. dass weitere Sprachen als zusätzliche Datei dazukommen können. - **Seed-Skript** mit Demo-Konten sowie README und Design-Dokumentation. -[Unveröffentlicht]: https://git.wilde-server.de/florian.wilde/flimmer/compare/v0.6.0...HEAD +[Unveröffentlicht]: https://git.wilde-server.de/florian.wilde/flimmer/compare/v0.6.1...HEAD +[0.6.1]: https://git.wilde-server.de/florian.wilde/flimmer/releases/tag/v0.6.1 [0.6.0]: https://git.wilde-server.de/florian.wilde/flimmer/releases/tag/v0.6.0 [0.5.0]: https://git.wilde-server.de/florian.wilde/flimmer/releases/tag/v0.5.0 [0.4.0]: https://git.wilde-server.de/florian.wilde/flimmer/releases/tag/v0.4.0 diff --git a/Dockerfile b/Dockerfile index ee84087..8ba26f9 100644 --- a/Dockerfile +++ b/Dockerfile @@ -32,6 +32,14 @@ ENV NODE_ENV=production RUN npx prisma generate && npx next build +# --- Prisma-CLI -------------------------------------------------------------- +# Eigene Stufe, damit die CLI samt ihrer transitiven Abhängigkeiten vollständig +# ins Laufzeitimage kommt. Einzelne Pakete aus node_modules herauszupicken ging +# schief: @prisma/config braucht weitere Module, die dabei fehlten. +FROM base AS prisma-cli +WORKDIR /cli +RUN npm init -y > /dev/null && npm install --omit=dev --no-audit --no-fund prisma@7.10.0 + # --- Laufzeit ---------------------------------------------------------------- FROM base AS runner WORKDIR /app @@ -48,12 +56,16 @@ COPY --from=builder /app/public ./public COPY --from=builder --chown=flimmer:nodejs /app/.next/standalone ./ COPY --from=builder --chown=flimmer:nodejs /app/.next/static ./.next/static -# Prisma-CLI und Schema bleiben im Image, damit der Container beim Start seine +# Schema und Migrationen bleiben im Image, damit der Container beim Start seine # eigenen Migrationen ausspielen kann (`prisma migrate deploy`). COPY --from=builder /app/prisma ./prisma COPY --from=builder /app/prisma.config.mjs ./prisma.config.mjs -COPY --from=builder /app/node_modules/prisma ./node_modules/prisma -COPY --from=builder /app/node_modules/@prisma ./node_modules/@prisma + +# Die CLI liegt bewusst unter /node_modules statt in /app/node_modules: dort +# stört sie den getracten Abhängigkeitsbaum der Anwendung nicht, und Node +# findet sie beim Auflösen von "prisma/config" trotzdem — die Suche wandert +# von /app aus nach oben. +COPY --from=prisma-cli /cli/node_modules /node_modules COPY docker/entrypoint.sh /usr/local/bin/entrypoint.sh RUN chmod +x /usr/local/bin/entrypoint.sh \ diff --git a/docker/entrypoint.sh b/docker/entrypoint.sh index 83d3516..bc40d20 100644 --- a/docker/entrypoint.sh +++ b/docker/entrypoint.sh @@ -40,7 +40,7 @@ attempt(); ' echo "Flimmer: spiele Migrationen ein ..." -node node_modules/prisma/build/index.js migrate deploy +node /node_modules/prisma/build/index.js migrate deploy echo "Flimmer: starte Anwendung." exec "$@" diff --git a/package.json b/package.json index 181ca1a..d772ebc 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "flimmer", - "version": "0.6.0", + "version": "0.6.1", "private": true, "description": "Flimmer — selbst hostbarer Serien- und Film-Tracker", "license": "MIT", diff --git a/releases/v0.6.1.md b/releases/v0.6.1.md new file mode 100644 index 0000000..ae107f4 --- /dev/null +++ b/releases/v0.6.1.md @@ -0,0 +1,34 @@ +# Flimmer 0.6.1 + +Nacharbeiten aus der Abnahme: das Docker-Image wurde zum ersten Mal wirklich +gebaut und gestartet — dabei kam ein Fehler ans Licht, den nur der echte +Containerstart zeigt. + +### Behoben + +- **Der Container konnte seine Migrationen nicht einspielen.** Das Laufzeitimage + bekam die Prisma-CLI, indem einzelne Ordner aus `node_modules` kopiert wurden + — dabei fehlten transitive Abhängigkeiten von `@prisma/config` (`effect` und + weitere). Die CLI wird jetzt in einer eigenen Build-Stufe vollständig + installiert und liegt im Laufzeitimage unter `/node_modules`, wo sie den + getracten Abhängigkeitsbaum der Anwendung nicht stört. + +### Hinzugefügt + +- **Erscheinungsmeldung für Watchlist-Filme.** Der Schalter dafür stand schon im + Profil, verschickt wurde bisher nichts. Betrachtet wird ein Zeitfenster der + letzten Tage statt eines Zustandswechsels — TMDB verschiebt Termine + gelegentlich, und ein einmal verpasstes Datum soll die Meldung nicht für + immer verhindern. +- **Gitea-Actions-Workflows**: `ci.yml` prüft bei jedem Push Typen, Tests und + Produktionsbuild gegen eine echte PostgreSQL-Instanz; `release.yml` legt beim + Pushen eines Versions-Tags das Release mit den Notizen aus + `releases/vX.Y.Z.md` an. +- Diagrammfarben und ihre Prüfwerte in `docs/DESIGN.md` festgehalten; das + öffentliche Profil in die Anleitung aufgenommen. + +### Entfernt + +- Die ungenutzte `images`-Konfiguration in `next.config.ts`. `next/image` kommt + nirgends zum Einsatz — damit entfällt auch das sicherheitsrelevant aussehende + `dangerouslyAllowSVG`, das ohnehin wirkungslos war.