...
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 | ||
---|---|---|
| ||
"extra": { "patches-file": "patches.json", "enable-patching": true } |
/patches.json
Codeblock | theme | RDark
---|
{ "patches": { "example/something": { "Bug #1234: Something is wrong": "plugin/patches/1234.patch" } } } |
/plugin/patches/1234.patch
Codeblock | ||||
---|---|---|---|---|
| ||||
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 |
|
Der Pfad zu den Dateien in den Patches stimmt nicht | Siehe Beispiel oben. Pfade immer beginnend mit |
Es sollte nicht mit camelCase gearbeitet werden | Es sollte nicht mit camelCase in patches.json. Beispiel: |
Patch-Level des Systems beachten. | Nur wenn das System auf dem aktuellen Stand ist, kann es funktionieren. |
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. |