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
This commit is contained in:
66
docs/standards/versioning.md
Normal file
66
docs/standards/versioning.md
Normal file
@@ -0,0 +1,66 @@
|
||||
# 📦 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.
|
||||
|
||||
---
|
||||
|
||||
📘 Für technische Details siehe auch:
|
||||
[`/docs/config/versioning.md`](../config/versioning.md)
|
||||
Reference in New Issue
Block a user