Versionen im Vergleich

Schlüssel

  • Diese Zeile wurde hinzugefügt.
  • Diese Zeile wurde entfernt.
  • Formatierung wurde geändert.

...

Worauf ist zu achten?

Allgemein

  • Brandbox patched immer bezogen auf ein Package und besitzt selbst eine Abhängigkeit zum Paket "component/patch".

  • Damit die Abhängigkeiten korrekt aufgelöst werden, müssen patches in einem lokalen Patch-Plugin untergebracht werden.

  • Patches in der "patches.json" müssen einem Package zugewiesen werden (siehe Beispiel)

  • Paket-übergreifendes patchen erspart einem mehrere Patch-Dateien

  • Pfade in den Patches beginnen mit dem Package-Root.

  • Bei der Wahl des Pfades zur Patch-Datei ist entscheidend, ob es sich um Hotfix, Feature oder Backport handelt.

Hotfixes

Hotfixes werden in der Regel vom Customer Service erstellt und korrigieren Fehler in brandbox. Sofern man nicht bis zum nächsten Hotfix-Release warten kann, wird der Fehler mittels Patch-File korrigiert.

...

Beispiel

/composer.json

Codeblock
themeRDark
"extra": {
  "patches-file": "patches.json",
  "enable-patching": true
}

/patches.json

RDark
Codeblock
theme
{
  "patches": {
    "example/something": {
      "Bug #1234: Something is wrong": "plugin/patches/1234.patch"
    }
  }
}

 /plugin/patches/1234.patch

Codeblock
languagediffthemeRDark
Index: plugin/remote/brandbox/brandbox/manager/guiAdmin.php
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- plugin/remote/brandbox/brandbox/manager/guiAdmin.php	(date 1554458181000)
+++ plugin/remote/brandbox/brandbox/manager/guiAdmin.php	(date 1554458497123)
@@ -12,7 +12,7 @@
     use brandbox\component\session;
 
     /**
-     * @author Dirk Münker <muenker@konmedia.com>
+     * @author Dirk Münker <muenker@konmedia.com> -- change
      */
     class guiAdmin extends gui implements guiInterface {
 

Fehlerbehandlung

Problem

Beschreibung

Der Pfad zu PATCH-Datei stimmt nicht

  • patch.json liegt im www-root

  • Die Patch-Dateien liegen in plugin/patches

Der Pfad zu den Dateien in den Patches stimmt nicht

Siehe Beispiel oben. Pfade immer beginnend mit plugin/remote

Es sollte nicht mit camelCase gearbeitet werden

Es sollte nicht mit camelCase in patches.json.

Beispiel:
"shop/viewresult": {"Ticket-123": "plugin/patches/Ticket-123.patch"}

Nicht:
"shop/viewResult": {"Ticket-123": "plugin/patches/Ticket-123.patch"}

Patch-Level des Systems beachten.

Nur wenn das System auf dem aktuellen Stand ist, kann es funktionieren.
Es wurden nach und nach Fehler beseitigt.

Eine Patch-Datei für für viele Plugins

Es ist darauf zu achten, dass alle Plugins installiert sind, bevor das PATCH angewendet wird. Es muss daher das letzte Plugin in der Dependency-Kette gefunden werden. Das Plugin wird in der patches.json eingetragen und referenziert.