Dieses Dokument beschreibt den automatisierten Release-Prozess für die BAUERGROUP S3 Compatible Backup Integration.
- Python 3.7 oder höher
- Git installiert und konfiguriert
- Schreibrechte auf das GitHub Repository
Das release.py Script automatisiert den gesamten Release-Prozess:
✅ Automatische Versionsaktualisierung in:
custom_components/bauergroup_s3compatiblebackup/manifest.jsonSCHNELLSTART.mdPROJECT_SUMMARY.md(falls vorhanden)README.md(Version Badge, falls vorhanden)
✅ Git-Operationen:
- Prüfung auf uncommittete Änderungen
- Automatischer Commit:
chore: Bump version to v0.x.x - Git Tag erstellen:
v0.x.x - Push zu Remote (GitHub)
- Automatisches GitHub Release erstellen
✅ Validierung:
- Semantic Versioning (z.B. 0.1.0)
- Check für existierende Tags
- Überprüfung des Working Directory Status
python release.py 0.1.1Das Script wird:
- Version auf
0.1.1aktualisieren in allen relevanten Dateien - Änderungen committen
- Tag
v0.1.1erstellen - Nach Bestätigung zu GitHub pushen
- Automatisch GitHub Release erstellen (via
ghCLI)
python release.pyDas Script fragt nach der Versionsnummer.
python release.py 0.1.1 --no-pushErstellt Commit und Tag lokal, pusht aber nicht zu GitHub.
python release.py 0.1.1 --no-github-releasePusht zu GitHub, erstellt aber kein Release (nur Tag).
Stelle sicher, dass alle Änderungen committed sind:
git statusFalls uncommittete Änderungen vorhanden sind:
git add .
git commit -m "fix: Your changes"python release.py 0.1.1Ausgabe wird etwa so aussehen:
ℹ Starting release process for version v0.1.1
✓ No uncommitted changes found
▶ Updating version to 0.1.1 in all files...
✓ Updated custom_components/bauergroup_s3compatiblebackup/manifest.json
✓ Updated SCHNELLSTART.md
✓ Updated PROJECT_SUMMARY.md
✓ Updated README.md
▶ Staging updated files...
✓ Staged 4 files
▶ Committing version bump...
✓ Created commit: chore: Bump version to v0.1.1
▶ Creating git tag v0.1.1...
✓ Created tag v0.1.1
ℹ Ready to push to remote repository
This will push:
- Latest commits to main branch
- Tag v0.1.1
Continue? (y/n): y
▶ Pushing to remote...
✓ Pushed commits to main branch
✓ Pushed tag v0.1.1
✓ Release v0.1.1 completed successfully!
ℹ Next steps:
1. Create a GitHub release at: https://github.com/bauer-group/IP-HomeassistantS3CompatibleBackup/releases/new?tag=v0.1.1
2. Wait for HACS to recognize the new version
3. Test installation via HACS
✓ Done!
Das Script erstellt automatisch ein GitHub Release mit:
- Title:
Release v0.1.1 - Release Notes: Automatisch generiert mit Installationsanleitung
- Tag:
v0.1.1
Voraussetzung: GitHub CLI (gh) muss installiert sein
- Installation: https://cli.github.com/
- Nach Installation:
gh auth login
Falls gh nicht verfügbar ist, wird ein Link zum manuellen Erstellen angezeigt.
- Öffne HACS in Home Assistant
- Gehe zu "Integrationen"
- Suche nach "S3 Compatible Backup"
- Prüfe ob neue Version angezeigt wird
- Teste Installation/Update
Wir verwenden Semantic Versioning (MAJOR.MINOR.PATCH):
- MAJOR (1.0.0): Breaking Changes (nicht rückwärtskompatibel)
- MINOR (0.1.0): Neue Features (rückwärtskompatibel)
- PATCH (0.0.1): Bug Fixes (rückwärtskompatibel)
# Bug Fix
python release.py 0.1.1
# Neues Feature
python release.py 0.2.0
# Breaking Change
python release.py 1.0.0[ERROR] Tag v0.1.1 already exists!
Do you want to delete and recreate it? (y/n):
Optionen:
y: Löscht existierenden Tag und erstellt neun: Bricht ab (wähle andere Version)
[ERROR] You have uncommitted changes. Please commit or stash them first.
Lösung:
# Änderungen committen
git add .
git commit -m "Your changes"
# Oder stashen
git stash[ERROR] Invalid version format: 0.1
[ERROR] Version must follow semantic versioning (e.g., 0.1.0)
Lösung: Verwende korrektes Format: MAJOR.MINOR.PATCH (z.B. 0.1.0)
Falls ein Release rückgängig gemacht werden muss:
# Tag lokal löschen
git tag -d v0.1.1
# Tag von Remote löschen
git push origin --delete v0.1.1
# Letzten Commit rückgängig machen (falls nötig)
git reset --hard HEAD~1
git push origin main --forcepython --version
# oder
python3 --versionFalls Python nicht installiert: https://www.python.org/downloads/
git config --global user.name "Your Name"
git config --global user.email "your.email@example.com"# Git Proxy konfigurieren (falls nötig)
git config --global http.proxy http://proxy.example.com:8080
git config --global https.proxy https://proxy.example.com:8080Bei Problemen:
- Prüfe GitHub Issues
- Erstelle ein neues Issue mit Debug-Ausgabe
- Nutze
--helpfür weitere Optionen:python release.py --help