# 📦 Versionierung im Projekt ## 🎯 Ziel Dieses Projekt verwendet eine automatisierte und konsistente Versionsverwaltung, um Klarheit über die aktuelle App-Version zu gewährleisten und manuelle Fehler zu vermeiden. --- ## 🗂️ Wo wird die Version gespeichert? Die App-Version ist in **vier Dateien synchron enthalten**: | Datei | Zweck | | ------------------- | ----------------------------------------- | | `package.json` | Hauptquelle für Version (npm, Git) | | `package-lock.json` | Technischer Zustand des Builds | | `.env.development` | Anzeige in der UI zur Entwicklungszeit | | `.env.production` | Anzeige in der UI auf Produktionssystemen | Beispiel-Eintrag in `.env.*`: ```env NEXT_PUBLIC_APP_VERSION=1.1.265 ``` --- ## ⚙️ Wie wird die Version erhöht? Die Version wird automatisch durch folgendes Skript erhöht: ```bash node scripts/bumpVersion.js ``` ### Dieses Skript erledigt: - Erhöhung der Patch-Version (z. B. `1.1.265` → `1.1.266`) - Aktualisierung von `package.json` - Erstellung eines synchronen `package-lock.json` - Aktualisierung der `.env.development` und `.env.production` mit neuer Version Das Skript wird zusätzlich automatisch beim Git-Commit über Husky (`.husky/pre-commit`) ausgeführt. --- ## 🧠 Warum ist das hilfreich? - Die UI zeigt **immer die aktuelle App-Version**, über `process.env.NEXT_PUBLIC_APP_VERSION` - Git-History, Deployments und ZIP-Versionen sind nachvollziehbar - Keine Inkonsistenzen durch manuelle Pflege - Reproduzierbare Builds dank `package-lock.json` --- ## 🧑‍💻 Hinweis für neue Entwickler - ❌ Niemals die Versionsnummer manuell in nur einer Datei ändern! - ✅ Immer das Skript nutzen oder den Commit-Hook wirken lassen. - 🔁 Nach Konflikten: Stelle sicher, dass `package-lock.json` und `.env.*` konsistent sind. --- 📘 Pfad diese Datei: [`/docs/standards/versioning.md`](/docs/standards/versioning.md)