Skip to content

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.PATCH

MAJOR (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.03.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.02.2.0

PATCH (Bugfixes)

Rückwärts-kompatible Fehlerbehebungen:

  • Styling-Korrekturen
  • Performance-Optimierungen
  • Dokumentations-Updates
  • Nicht-funktionale Verbesserungen

Beispiel: 2.1.12.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-Version

main

  • 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)

bash
git checkout main
git pull
git checkout -b TICKET-123_feature-name

Naming Convention: TICKET-123_beschreibung (Jira-Ticket + kurze Beschreibung)

2. Entwicklung & Commits

bash
git add .
git commit -m "GUPPY-123: Add product slider component"
git push origin GUPPY-123_product-slider-component

3. Merge zu stage für Testing

bash
git checkout stage
git pull
git merge GUPPY-123_product-slider-component
git push

TIP

Mehrere Features können parallel in stage getestet werden.

4. Playground-Pipeline triggern

  • Öffne guppy-playground Projekt in GitLab
  • CI/CD → Pipelines → Run Pipeline
  • Pipeline pullt automatisch dev-stage Branches

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

bash
git checkout main
git pull
git merge GUPPY-123_product-slider-component  # Feature-Branch, nicht stage!
git push

Warum Feature-Branch?

Für saubere Git-History wird der Feature-Branch direkt in main gemerged, nicht stage.

7. Version taggen

bash
git tag v2.6.0  # Siehe Semantic Versioning oben
git push --tags

8. Projekte aktualisieren

  • Express-Demo: composer update dmf/sw6-guppy-theme
  • Kundenprojekte: Nach Absprache mit Projekt-Manager

Testing-Umgebungen

UmgebungBranch/VersionZweckUpdate
Guppy Playgrounddev-stageQA & Feature-TestingPipeline-Trigger
Express-DemoTagged releasesShowcaseNach Release
KundenprojekteSpezifische TagsProduktionProjektplan

Best Practices

Stage-Branch aktualisieren

Regelmäßig (alle paar Monate) main in stage mergen:

bash
git checkout stage
git merge main
git push

Parallele Feature-Entwicklung

bash
# Developer A
git checkout -b GUPPY-100_feature-a

# Developer B
git checkout -b GUPPY-101_feature-b

Beide Features werden unabhängig getestet und nach QA-Freigabe separat zu main gemerged.

Hotfixes

Für kritische Bugfixes:

  1. Branch von main: HOTFIX-123_critical-bug
  2. Fix entwickeln
  3. Direkt zu main mergen (Stage überspringen)
  4. PATCH-Version taggen (z.B. 2.5.8)
  5. Sofort deployen
  6. stage und next aktualisieren

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 aktualisieren

Checkliste: Feature-Release

  • [ ] Feature-Branch von main erstellt
  • [ ] Feature entwickelt und lokal getestet
  • [ ] Feature-Branch zu stage gemerged
  • [ ] Playground-Pipeline getriggert
  • [ ] Jira-Ticket QA-Person zugewiesen
  • [ ] QA-Testing erfolgreich
  • [ ] Feature-Branch zu main gemerged
  • [ ] 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.

bash
# Aktuelle Shopware UPGRADE.md analysieren
curl -s https://raw.githubusercontent.com/shopware/platform/trunk/UPGRADE.md

2. Automatisierte Kompatibilitätsprüfung

Das Guppy Theme bietet einen eingebauten Scanner für Update-Kompatibilität:

bash
# Plugins auf Updates prüfen
bin/console guppy:upgrade:scan

# Detaillierte Analyse mit Shopware-Version
bin/console guppy:upgrade:scan --shopware-version=6.5.0

Scanner-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:

text
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.