1 Release Merkblatt
ppfeiffer edited this page 2026-06-25 08:39:57 +02:00

📋 ElegantChart - Merkblatt & Übersicht

Projekt: ElegantChart - Home Assistant Frontend Card Plugin
Version: 1.0.1 (HACS Ready)
Status: Production Ready
Rating: 4.3/5


🚀 QUICK START

Neuerung entwickeln

# 1. Feature Branch
git checkout -b feature/my-feature

# 2. Entwickeln & Testen
# ... mache Änderungen ...

# 3. Zu Main mergen
git checkout main
git merge feature/my-feature
git push origin main

# 4. Version updaten (BEIDE!)
manifest.json:  "version": "1.0.1""1.1.0"
package.json:   "version": "1.0.1""1.1.0"

# 5. Commit & Tag
git add manifest.json package.json
git commit -m "Release: v1.1.0 - Feature description"
git tag -a v1.1.0 -m "Release v1.1.0: Feature description"
git push origin --tags

# 6. FERTIG! ✅
# GitHub wird automatisch aktualisiert (2min)
# HACS erkennt neue Version (5-10min)

📊 VERSIONIERUNGSCHEMA

PATCH (Bug Fixes)

1.0.1 → 1.0.2
Zeit: 10 Min
Für: Bug fixes, kleine Improvements
Beispiel: Fix: WebSocket reconnection timeout

MINOR (Neue Features)

1.0.1 → 1.1.0
Zeit: 20 Min
Für: Neue Features, backward compatible
Beispiel: Feature: Add dark mode toggle

MAJOR (Breaking Changes)

1.0.1 → 2.0.0
Zeit: 30 Min
Für: Breaking changes, große Umstrukturierungen
Beispiel: Breaking: New config format

⚠️ KRITISCHE PUNKTE

🔴 FEHLER - NICHT MACHEN!

❌ Nur manifest.json Version updaten (package.json vergessen!)
❌ Nur package.json updaten (manifest.json vergessen!)
❌ Direkt zu GitHub pushen (Forgejo ist primary!)
❌ Tags ohne -a Flag erstellen (braucht Message!)
❌ PATCH für Features verwenden (MINOR ist richtig!)
❌ MINOR für Breaking Changes (MAJOR ist richtig!)

RICHTIG - IMMER SO MACHEN!

✅ BEIDE Dateien updaten:
   - manifest.json
   - package.json
   
✅ Nur zu Forgejo pushen:
   - git push origin main
   
✅ Annotated Tags mit Message:
   - git tag -a v1.1.0 -m "Release notes..."
   
✅ Passende Versionsnummern:
   - PATCH für Fixes
   - MINOR für Features
   - MAJOR für Breaking Changes

🔄 INFRASTRUKTUR

Repositories

PRIMARY - Forgejo:

URL: git.pfeiffer-privat.de/HA-Addons/ElegantChart
Role: Deine Quelle für Entwicklung
Push-Mirror: Aktiv zu GitHub

MIRROR - GitHub:

URL: github.com/ppfeiffer63/ElegantChart
Role: Automatisch synchronisiert
HACS: Installation von hier

Git Remotes

origin        → git.pfeiffer-privat.de/HA-Addons/ElegantChart
github-mirror → github.com/ppfeiffer63/ElegantChart

Workflow

git push origin main --tags
    ↓
Forgejo aktualisiert sich
    ↓
Push-Mirror aktiviert sich
    ↓
GitHub aktualisiert sich (2min später)
    ↓
HACS scannen (5-10min später)
    ↓
Benutzer können updaten

📋 RELEASE CHECKLIST

Vor Release

☐ Code funktioniert lokal
☐ Keine console.errors
☐ README.md aktuell (falls geändert)
☐ manifest.json Version korrekt
☐ package.json Version korrekt
☐ Beide Versionen GLEICH
☐ Git Log sauber

Release

☐ Feature zu main gemergt
☐ Push zu Forgejo: git push origin main
☐ Version Bump Commit erstellt
☐ Version Commit gepusht
☐ Release Tag erstellt: git tag -a v1.X.X -m "..."
☐ Tags gepusht: git push origin --tags

Nach Release

☐ GitHub prüfen (2min warten): github.com/ppfeiffer63/ElegantChart
☐ HACS prüfen (5-10min warten): HACS → Frontend → ElegantChart
☐ Neue Version sichtbar?
☐ Installation testen (optional)
☐ CHANGELOG.md aktualisieren

📝 COMMIT MESSAGES

Format

[Type]: [Description]

Type:
  Feature: für neue Features
  Fix: für Bug Fixes
  Improvement: für Verbesserungen
  Release: für Version Bumps
  Breaking: für Breaking Changes

Beispiele

git commit -m "Feature: Add dark mode toggle"
git commit -m "Fix: WebSocket reconnection edge case"
git commit -m "Improvement: Better error messages"
git commit -m "Release: v1.1.0 - New features"
git commit -m "Breaking: New config format"

🏷️ TAG MESSAGES

Format

git tag -a v1.1.0 -m "Release v1.1.0: Feature Description

Features:
- Item 1
- Item 2

Bugfixes:
- Item 1

Breaking Changes: None

Backward Compatible: Yes"

Vorlage (Kopieren & Anpassen)

git tag -a vX.X.X -m "Release vX.X.X: [Description]

[Features/Bugfixes/Changes]

Breaking Changes: [Yes/No]

Backward Compatible: [Yes/No]

HACS: Will auto-detect this release"

📊 BEWERTUNG (FYI)

Code Quality        ⭐⭐⭐⭐⭐ 9/10
DevOps/Automation   ⭐⭐⭐⭐⭐ 9/10
HACS Compliance     ⭐⭐⭐⭐⭐ 10/10
Performance         ⭐⭐⭐⭐⭐ 10/10
Documentation       ⭐⭐⭐⭐   7/10
Features            ⭐⭐⭐⭐   8/10
User Experience     ⭐⭐⭐⭐   8/10

OVERALL: 4.3/5 ⭐⭐⭐⭐

🗓️ ROADMAP

Phase 1: Stabilization (v1.0.x)

1.0.2 - WebSocket fixes
1.0.3 - Error message improvements
1.0.4 - Performance optimizations

Phase 2: Feature Expansion (v1.1.x - v1.3.x)

1.1.0 - Dark mode toggle
1.2.0 - Data export (CSV, JSON)
1.3.0 - Custom color schemes
1.3.1 - Mobile responsiveness

Phase 3: Major Version (v2.0.0)

2.0.0 - Complete redesign (optional)
       - New config format
       - Expanded sensor limit
       - API improvements

💡 TIPPS & TRICKS

GitHub automatisch synced?

# Überprüfen:
curl -s https://api.github.com/repos/ppfeiffer63/ElegantChart/tags \
  | grep v1.1.0

HACS findet neue Version nicht?

1. 10 Minuten warten (HACS scannt regelmäßig)
2. HACS neu laden (F5)
3. HACS → Settings → Repositories → Reload
4. Repo URL überprüfen (muss GitHub sein!)

Push vergessen?

# Überprüfe lokale Tags:
git tag | grep v1.1.0

# Falls nur lokal vorhanden:
git push origin --tags

Falscher Version gepusht?

# Tag löschen (lokal)
git tag -d v1.1.0

# Tag löschen (remote - wenn nötig)
git push origin --delete v1.1.0

# Dann nochmal pushen:
git tag v1.1.0
git push origin --tags

🔐 WICHTIGE INFOS

Tokens

Forgejo Token: Gespeichert in Remote URL
GitHub Token:  Gespeichert in Remote URL
              (NICHT in Repo commiten!)

Security

✅ Nur zu Forgejo pushen
✅ GitHub wird automatisch aktualisiert
✅ Keine direkten GitHub Pushes
✅ Kein Token in Commits

📁 WICHTIGE DATEIEN

Zu updaten bei Release

manifest.json    ← Version updaten!
package.json     ← Version updaten!
README.md        ← Falls neue Features

NICHT anfassen

.git/           ← Git Internal
src/            ← Code (normal bearbeiten)
examples/       ← Examples (updating OK)

🎯 HÄUFIGE FRAGEN

F: Wie häufig Release?
A: Nach Bedarf. Nur wenn echte Features/Fixes da sind.

F: Muss immer Tag erstellt werden?
A: Ja! Tags = Releases in HACS

F: Kann ich direkt zu GitHub pushen?
A: Nein! Nur zu Forgejo (origin). GitHub folgt automatisch.

F: Was wenn HACS neue Version nicht zeigt?
A: Warten (10min) oder HACS reload

F: Wie lange bis GitHub synchronisiert?
A: Push-Mirror braucht ~2 Minuten

F: Wie lange bis HACS die neue Version sieht?
A: HACS scannt alle 5-10 Minuten


SUMMARY

Das Wichtigste:

  1. Feature entwickeln
  2. BEIDE Dateien updaten (manifest + package)
  3. Zu Forgejo pushen
  4. Tag erstellen & pushen
  5. Warten auf GitHub (2min) & HACS (10min)

Das musst du merken:

PATCH → Bug Fixes (schnell)
MINOR → Features (regelmäßig)
MAJOR → Breaking (selten)

PATCH = 1.0.1 → 1.0.2
MINOR = 1.0.1 → 1.1.0
MAJOR = 1.0.1 → 2.0.0

Das musst du NICHT vergessen:

❌ Nur eine Datei updaten
❌ Zu GitHub statt Forgejo pushen
❌ Tag ohne Message
❌ Falsche Versionsnummer

📞 WEITERE INFOS

Ausführliche Dokumentation:

  • PROJEKT_BEWERTUNG_2026.md - Detaillierte Analyse
  • RELEASE_QUICK_REFERENCE.md - Praktisches Nachschlagewerk

Repositories:

  • Forgejo: git.pfeiffer-privat.de/HA-Addons/ElegantChart
  • GitHub: github.com/ppfeiffer63/ElegantChart

Letzte Aktualisierung: 2026-06-25
Gültig für: v1.0.1 und zukünftige Releases
Status: PRODUCTION READY


Happy Releasing! 🚀