Files
CPLv4.0/docs/standards/versioning.md
ISA 534b22f325 docs(standards): zentrale Anleitung zur automatisierten Versionierung hinzugefügt
- beschreibt das Versionskonzept für package.json, package-lock.json und .env.*
- erklärt die Verwendung von bumpVersion.js und Husky-Hooks
- hilft neuen und bestehenden Entwicklern, konsistent zu arbeiten
- gilt als Standardrichtlinie für zukünftige Projekte
2025-06-17 15:31:21 +02:00

2.0 KiB
Raw Permalink Blame History

📦 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.*:

NEXT_PUBLIC_APP_VERSION=1.1.265

⚙️ Wie wird die Version erhöht?

Die Version wird automatisch durch folgendes Skript erhöht:

node scripts/bumpVersion.js

Dieses Skript erledigt:

  • Erhöhung der Patch-Version (z.B. 1.1.2651.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