Files
nodeMap/docs/standards/versioning.md

71 lines
2.0 KiB
Markdown
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 📦 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)
---
[Zurück zur Übersicht](../README.md)