diff --git a/BRANCH_PROTECTION_CONFIG.md b/BRANCH_PROTECTION_CONFIG.md new file mode 100644 index 0000000..62e3347 --- /dev/null +++ b/BRANCH_PROTECTION_CONFIG.md @@ -0,0 +1,62 @@ +# 🛡️ Branch Protection Configuration + +## Empfohlene Einstellungen für main-Branch + +### Basis-Schutz +- ✅ **Require a pull request before merging** + - Required approving reviews: `1` + - Dismiss stale PR approvals when new commits are pushed: `✅` + - Require review from code owners: `❌` (für Solo-Entwicklung) + +### Status Checks +- ✅ **Require status checks to pass before merging** + - Require branches to be up to date before merging: `✅` + - Required status checks: + - `test (3.9)` + - `test (3.10)` + - `test (3.11)` + - `test (3.12)` + +### Erweiterte Einstellungen +- ✅ **Require conversation resolution before merging** +- ❌ **Require signed commits** (optional) +- ❌ **Include administrators** (für Solo-Entwicklung) +- ❌ **Allow force pushes** +- ❌ **Allow deletions** + +## Nach der Aktivierung + +### Neuer Workflow: +```bash +# 1. Feature-Branch erstellen +git checkout -b feature/neue-funktion + +# 2. Änderungen machen und committen +git add . +git commit -m "feat: neue funktion" + +# 3. Branch pushen +git push origin feature/neue-funktion + +# 4. Pull Request über GitHub UI erstellen + +# 5. CI/CD Tests abwarten (automatisch) + +# 6. PR mergen über GitHub UI + +# 7. Feature-Branch wird automatisch gelöscht +``` + +### Vorteile: +- 🛡️ **Schutz vor kaputten Commits** auf main +- 🧪 **Automatische Tests** vor jedem Merge +- 📝 **Dokumentierte Änderungen** durch PR-Beschreibungen +- 🔄 **Einfaches Rollback** bei Problemen +- 👥 **Teamwork-ready** für zukünftige Mitarbeiter + +## Testen der Branch Protection + +Nach der Aktivierung: +1. Versuche direkt auf main zu pushen → sollte blockiert werden +2. Erstelle einen Test-PR → sollte funktionieren +3. Merge den PR → sollte nach erfolgreichen Tests funktionieren diff --git a/GITHUB_RELEASES.md b/GITHUB_RELEASES.md new file mode 100644 index 0000000..989bc8b --- /dev/null +++ b/GITHUB_RELEASES.md @@ -0,0 +1,68 @@ +# 📦 GitHub Releases Guide + +## Übersicht + +Dieses Dokument erklärt, wie GitHub Releases für das Bash-Script-Maker Projekt verwaltet werden. + +## 🎯 Was sind GitHub Releases? + +GitHub Releases sind veröffentlichte Versionen deiner Software, die: +- **Versionsnummern** haben (z.B. v1.8.0) +- **Release Notes** enthalten +- **Assets** (Dateien) bereitstellen können +- **Download-Links** für Benutzer bieten + +## 📋 Aktuelle Release-Strategie + +### Automatische Releases +- ✅ **Trigger**: Jeder Push auf `main` mit Commit-Message-Patterns +- ✅ **Versioning**: Automatisches Semantic Versioning +- ✅ **Assets**: Python Packages (.whl, .tar.gz) +- ✅ **PyPI**: Automatischer Upload zu PyPI +- ✅ **GitHub Packages**: Docker Images in GHCR + +### Release-Patterns +```bash +feat: neue Funktion → Minor Version (1.8.0 → 1.9.0) +fix: Bugfix → Patch Version (1.8.0 → 1.8.1) +BREAKING CHANGE: → Major Version (1.8.0 → 2.0.0) +``` + +## 🚀 Workflow mit Pull Requests + +### 1. Feature-Branch erstellen +```bash +git checkout -b feature/neue-funktion +# Änderungen machen +git commit -m "feat: neue coole Funktion" +git push origin feature/neue-funktion +``` + +### 2. Pull Request erstellen +```bash +gh pr create --title "Feature: Neue Funktion" --body "Beschreibung..." +``` + +### 3. Review & Merge +- CI/CD Tests laufen automatisch +- Code Review (optional für Solo-Entwicklung) +- Merge über GitHub UI +- **Automatisches Release** wird ausgelöst + +## 📊 Release-Historie + +Aktuell haben wir **30+ Tags** erstellt: +- v0.1.0 bis v1.9.0 +- Vollständige Historie auf GitHub verfügbar +- Jede Version mit eigenen Release Notes + +## 🛠️ Nächste Schritte + +1. **Branch Protection** aktivieren +2. **Pull Request Template** erstellen +3. **Issue Templates** hinzufügen +4. **Automatische Changelog** Generation + +--- + +*Erstellt als Teil des Pull-Request-Workflows*