Files
nodeMap/docs/standards/versioning.md

71 lines
2.0 KiB
Markdown
Raw 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)