Updates & Migration
Das Guppy Theme folgt einem strukturierten Update-Prozess, um Kompatibilität mit Shopware-Updates zu gewährleisten und gleichzeitig kontinuierliche Verbesserungen zu ermöglichen.
Inhalt dieser Seite:
Versionierungsstrategie
Semantic Versioning (SemVer)
Das Guppy Theme und alle Guppy Plugins folgen strikt dem Semantic Versioning:
MAJOR.MINOR.PATCHMAJOR (Breaking Changes)
Inkompatible Änderungen, die manuelle Anpassungen erfordern:
- Template-Blöcke entfernt oder umbenannt
- Konfigurationsoptionen entfernt
- CSS-Klassen fundamental geändert
- JavaScript-Plugin-APIs geändert
Beispiel: 2.0.0 → 3.0.0
MINOR (Neue Features)
Rückwärts-kompatible Funktionalitäten:
- Neue Template-Blöcke oder Properties
- Neue Konfigurationsoptionen
- Zusätzliche CSS-Klassen
- Neue JavaScript-Plugin-Features
Beispiel: 2.1.0 → 2.2.0
PATCH (Bugfixes)
Rückwärts-kompatible Fehlerbehebungen:
- Styling-Korrekturen
- Performance-Optimierungen
- Dokumentations-Updates
- Nicht-funktionale Verbesserungen
Beispiel: 2.1.1 → 2.1.2
Git-Branch-Strategie
Branch-Übersicht
main ← Aktuelle stabile Version für Produktion
↑
stage ← Testing-Branch für den Playground
↑
next ← Entwicklung für nächste Shopware Major-Versionmain
- Zweck: Produktionsreife, stabile Version
- Releases: Alle MAJOR, MINOR und PATCH Releases
- Testing: Vollständig getestet und freigegeben
- Shopware-Kompatibilität: Aktuelle Shopware LTS-Version
stage
- Zweck: Staging und Testing neuer Features
- Environment: Guppy Playground
- Testing: Beta-Features und Release-Kandidaten
- Feedback: Community-Testing und Feedback-Sammlung
next
- Zweck: Vorbereitung auf nächste Shopware Major-Version
- Development: Anpassungen für kommende Shopware-Updates
- Timeline: Entwicklung beginnt vor Shopware Release
- Migration: Breaking Changes werden hier vorbereitet
Entwicklungs-Workflow
Der folgende Workflow beschreibt den praktischen Entwicklungsprozess von der Feature-Entwicklung bis zum Release.
Feature-Entwicklung Schritt-für-Schritt
1. Feature-Branch erstellen (von main)
git checkout main
git pull
git checkout -b TICKET-123_feature-nameNaming Convention: TICKET-123_beschreibung (Jira-Ticket + kurze Beschreibung)
2. Entwicklung & Commits
git add .
git commit -m "GUPPY-123: Add product slider component"
git push origin GUPPY-123_product-slider-component3. Merge zu stage für Testing
git checkout stage
git pull
git merge GUPPY-123_product-slider-component
git pushTIP
Mehrere Features können parallel in stage getestet werden.
4. Playground-Pipeline triggern
- Öffne
guppy-playgroundProjekt in GitLab - CI/CD → Pipelines → Run Pipeline
- Pipeline pullt automatisch
dev-stageBranches
5. QA-Testing in Jira
- Ticket-Status auf "Testing" setzen
- QA-Person zuweisen
- Testing: Funktionalität, Cross-Browser, Mobile, Accessibility
- Bei Problemen: Zurück zu Schritt 2
- Bei Erfolg: QA-Freigabe
6. Merge Feature-Branch zu main
git checkout main
git pull
git merge GUPPY-123_product-slider-component # Feature-Branch, nicht stage!
git pushWarum Feature-Branch?
Für saubere Git-History wird der Feature-Branch direkt in main gemerged, nicht stage.
7. Version taggen
git tag v2.6.0 # Siehe Semantic Versioning oben
git push --tags8. Projekte aktualisieren
- Express-Demo:
composer update dmf/sw6-guppy-theme - Kundenprojekte: Nach Absprache mit Projekt-Manager
Testing-Umgebungen
| Umgebung | Branch/Version | Zweck | Update |
|---|---|---|---|
| Guppy Playground | dev-stage | QA & Feature-Testing | Pipeline-Trigger |
| Express-Demo | Tagged releases | Showcase | Nach Release |
| Kundenprojekte | Spezifische Tags | Produktion | Projektplan |
Best Practices
Stage-Branch aktualisieren
Regelmäßig (alle paar Monate) main in stage mergen:
git checkout stage
git merge main
git pushParallele Feature-Entwicklung
# Developer A
git checkout -b GUPPY-100_feature-a
# Developer B
git checkout -b GUPPY-101_feature-bBeide Features werden unabhängig getestet und nach QA-Freigabe separat zu main gemerged.
Hotfixes
Für kritische Bugfixes:
- Branch von
main:HOTFIX-123_critical-bug - Fix entwickeln
- Direkt zu
mainmergen (Stage überspringen) - PATCH-Version taggen (z.B.
2.5.8) - Sofort deployen
stageundnextaktualisieren
WARNING
Hotfixes sollten die Ausnahme sein. Wenn möglich, normalen Workflow über stage nutzen.
Workflow-Diagramm
Feature-Branch (von main)
↓
Entwicklung
↓
Merge → stage
↓
Playground Pipeline
↓
QA-Testing ──→ Fehler? ──→ Zurück zu Entwicklung
↓
QA-Freigabe
↓
Merge Feature-Branch → main
↓
Version taggen
↓
Projekte aktualisierenCheckliste: Feature-Release
- [ ] Feature-Branch von
mainerstellt - [ ] Feature entwickelt und lokal getestet
- [ ] Feature-Branch zu
stagegemerged - [ ] Playground-Pipeline getriggert
- [ ] Jira-Ticket QA-Person zugewiesen
- [ ] QA-Testing erfolgreich
- [ ] Feature-Branch zu
maingemerged - [ ] Version-Tag erstellt
- [ ] Express-Demo aktualisiert
- [ ] Kundenprojekte informiert (falls nötig)
Update-Prozess
Shopware-Update-Workflow
1. Analyse der Shopware UPGRADE.md
Shopware stellt zu jedem Release eine UPGRADE.md bereit, die breaking changes und wichtige Änderungen dokumentiert.
# Aktuelle Shopware UPGRADE.md analysieren
curl -s https://raw.githubusercontent.com/shopware/platform/trunk/UPGRADE.md2. Automatisierte Kompatibilitätsprüfung
Das Guppy Theme bietet einen eingebauten Scanner für Update-Kompatibilität:
# Plugins auf Updates prüfen
bin/console guppy:upgrade:scan
# Detaillierte Analyse mit Shopware-Version
bin/console guppy:upgrade:scan --shopware-version=6.5.0Scanner-Features:
- Prüft alle installierten Guppy-Plugins
- Vergleicht mit Shopware UPGRADE.md
- Identifiziert potenzielle Breaking Changes
- Erstellt Kompatibilitätsbericht
3. KI-gestützte Update-Analyse
Nutze Claude AI zur automatisierten Update-Analyse:
Analysiere das Guppy Theme [Quellcode] gegen die aktuelle Shopware UPGRADE.md [URL/Inhalt].
Identifiziere:
1. Breaking Changes die das Theme betreffen
2. Deprecated Features in Verwendung
3. Neue Shopware-Features für Integration
4. Empfohlene Anpassungen
Erstelle einen strukturierten Update-Plan mit Prioritäten.Support
Update-Hilfe
- 📖 Changelog: Detaillierte Änderungshistorie
- 🔧 Migration Guides: Schritt-für-Schritt-Anleitungen
- 🎮 Playground: Testing-Environment
- 🐛 Issues: GitLab Repository
KI-Unterstützung
Nutze Claude AI für:
- Automatisierte Update-Analyse
- Code-Migration-Hilfe
- Kompatibilitätsprüfungen
- Custom Update-Strategien
Das strukturierte Update-Management gewährleistet stabile, vorhersagbare Updates und minimiert Ausfallzeiten bei maximaler Feature-Entwicklung.