Joomla! Patches testen
From Joomla! Documentation
In jeder Software gibt es Fehler die behoben werden müssen. Das ist auch bei Open-Source-Software wie Joomla! der Fall. Der Quellcode von Joomla ist frei für jedermann im Internet zugänglich. Jeder der einen Fehler oder Problem in Joomla! entdeckt, kann dies melden. Eine Anleitung wie Fehler und Probleme gemeldet werden können findest du hier: Fehler und Probleme melden Gemeldete Bugs werden gefixt und schließlich müssen diese dann getestet werden. Diese Seite erklärt dir wie Du dazu beitragen kannst, das Joomla! Projekt durch die Prüfung von vorgeschlagenen Lösungen zu unterstützen. Dazu benötigst Du keine Programmierkenntnisse. Du benötigst nur eine Joomla-Installation zum Testen. Eine Kurzanleitung für die Tests ist verfügbar unter: Schnelleinstieg Joomla! Patches testen
Der Joomla! 'Staging' Code
Der Joomla! 'Staging' Code ist der aktuelle Code an dem gearbeitet wird. Alle Fehlerbereinigungen und neue Features werden diesem Code hinzugefügt.
Zu finden ist der 'Staging' Code unter https://github.com/joomla/joomla-cms, das ist der Code der installiert werden muss. Wie das geht ist etwas weiter unten unter Den Test vorbereiten erklärt.
Der Issue Tracker
Der Issue Tracker für Joomla! befindet sich hier: https://issues.joomla.org
Die Liste zeigt die Tracker Elemente geordnet von neu nach alt. Die Reihenfolge kann mit Hilfe des Filters bei den Suchwerkzeugen geändert werden. Alle Elemente im Tracker für die ein Patch existiert, haben eine Versionsnummer neben dem Titel.
- PR-staging: Das ist Joomla 3.8.x
- PR-4.0.dev: Das ist Joomla 4.0
Diese Labels werden sich in Zukunft ändern, wenn neue Versionen kommen und alte gehen.
Der Status ist wichtig und wird hier erklärt:
Neu - Unmittelbar nachdem ein Problem gemeldet wurde erhält es diesen Status. Wenn Du also einen Bug findest, erstelle eine Beschreibung wie er reproduziert werden kann. Dann wissen diejenigen, die das Problem testen wollen, wie sie den Patch testen können.
Bestätigt - Das Tracker-Team war in der Lage das Problem nachzuvollziehen. Das Coding-Team wird nun nach einer Lösung suchen.
Wartend - Eine Lösung für das Problem wurde gefunden. Ein Patch wurde erstellt und kann getestet werden. Das Problem muss nun getestet werden. Achte auf das Label neben dem Titel. Das verrät Dir für welche Joomla! Version der Patch erstellt wurde.
Fertig zum Anwenden - Der Patch wurde erfolgreich getestet und der Code kann übergeben werden.
Geschlossen - Der Status gilt für alle Probleme die nicht weiter bearbeitet werden müssen.
Die Filterung im Issue Tracker ist nützlich. Eine Überwachung kann sinnvoll sein um Meldungen zu erhalten, wenn ein Problem aktualisiert wurde.
Im Grunde kannst Du mit den Problemen beginnen, die den Status Wartend haben.
Den Test vorbereiten
Als Erstes muss der 'master' Code aus dem Joomla GitHub Repository geholt werden. Obwohl es verschiedene Wege gibt um den Joomla 'master' Code herunterzuladen behandeln wir hier lediglich die Download-Option.
Ordner erstellen
Zunächst müssen wir einen Ordner entweder auf dem lokalen Webserver oder auf einem Hosting-Account erstellen, auf den man mit Hilfe des Browsers zugreifen kann. Erstelle den Ordner bugtesting und navigiere zu diesem Ordner mit Hilfe des Explorers oder Suchfunktion.
Joomla! herunterladen
Gehe zur Joomla GitHub Repository und klicke auf Download ZIP.
Du erhältst eine Kopie des Joomla 'master' Codes als ZIP-Datei. Wenn du die Datei an einem temporären Ort entpackst erscheint ein Ordner mit dem Namen joomla-cms-staging. In diesem Ordner befindet sich der Joomla 'master' Code. Geh in diesen joomla-cms-staging Ordner und kopiere den kompletten Inhalt in das Verzeichnis bugtesting welches du im vorangegangenen Schritt erstellt hast.
Jetzt kannst du Joomla installieren indem du zu http://localhost/bugtesting navigierst, falls du einen lokalen Webserver benutzt. Nutzt du einen Webhoster navigiere zur entsprechenden URL des Webhosters. Es folgt die normale Joomla Installations-Routine.
Für Beispieldaten wähle: Test English (GB) sample data
Das ist wichtig, denn so nutzt jeder die gleichen Daten zum Testen!
Der Ordner installation muss nicht gelöscht werden, denn so kannst du falls nötig einfach alles neu installieren.
Patch Tester herunterladen
Um dir mit dem Testen von Patches behilflich zu sein wurde die Joomla Erweiterung "Patch Tester" entwickelt. Der Patch Tester kann von der Patch Tester Seite heruntergeladen und anschließend über die Joomla Erweiterungs-Verwaltung installiert werden.
Für die Nutzung des Patch Testers ist ein GitHub Konto erforderlich. Der Grund dafür ist, dass es nur eine begrenzte Anzahl anonymer Anfragen, die über den Patch Tester gemacht werden können, gibt. Du kannst dich auf dieser Seite für ein GitHub Konto registrieren.
Patch Tester einrichten
Die GitHub Logindaten können in den Einstellungen des Patch Testers eingetragen werden. Nach der Installation des Patch Testers klicke unter Komponenten -> Joomla! Patch Tester auf Einstellungen in der Ecke rechts oben. Die Einstellungen-Seite öffnet sich und du hast drei Reiter. Der erste Reiter nennt sich GitHub Quelle. Hier kannst du die Quelle wählen, welche du benutzen möchtest. Standardmäßig ist dies Joomla! CMS.
Im zweiten Reiter, genannt GitHub Authentifizierung kannst du dein GitHub Benutzername und Passwort oder ein Token, sofern du eines verwendest, hinterlegen.
Hinweis: Wenn du die Zwei-Faktor-Authentifizierung für dein GitHub-Konto aktiviert hast, musst du ein persönliches Token für den Zugriff unter https://github.com/settings/applications generieren und dieses in das Feld GitHub Token einfügen.
Nach Eingabe Ihrer Kontodaten klicke auf Speichern & Schließen. Zurück im Patch-Tester klicke in der oberen linken Ecke auf "Daten holen".
Jetzt kannst Du mit dem Testen beginnen.
Nun kannst du nach einem Eintrag im Issue Tracker suchen, welchen du testen möchtest oder einen zufälligen Patch mit dem Button "Auf gut Glück" finden. Als Erstes sollte das Problem nachgestellt werden. Wenn du das Problem reproduzieren konntest kannst du den Patch installieren.
Die Installation von Patches
Im Patch Tester kann man einen Patch über die ID oder dem Titel suchen. Der Tracker Titel kann z.B. so aussehen:
[#4308] - Fixed event dispatching inconsistencies leading to incomplete API
Neben dem # steht die ID und hinter dem - Zeichen steht der Titel.
Nachdem der Patch gefunden wurde, klicken Sie auf die blaue Schaltfläche "Patch anwenden". Überprüfe dann ob der Fehler behoben wurde und keine neuen Fehler auftreten.
Rückmeldung der Testergebnisse
Nach dem Testen teile deine Testergebnisse in der Übersicht mit. Verwende dazu die Schaltfläche "Test this". Jetzt brauchst du nur noch einen Kommentar einzutragen, wenn es zusätzliche Informationen gibt oder falls der Test nicht erfolgreich war.
Wenn möglich bitte in einer mehrsprachigen Umgebung ("mit mindestens 3 veröffentlichten Inhaltssprachen") testen. Möglicherweise werden Probleme nur in solchen Umgebungen ausgelöst.
Patch zurücksetzen
Nachdem der Patch getestet wurde wird dieser nicht mehr benötigt und kann aus deiner Testinstallation entfernt werden. So hat man immer eine saubere Umgebung. Gehe zurück zum Patch Tester und klicke auf den grünen Button "Patch zurücknehmen". Dies entfernt den getesteten Patch und du kannst den nächsten Patch testen.
Testing patches using Git
Since the Patch Tester cannot be used for all patches to test, sometimes we must use another way. The Patch Tester replaces the complete file and does not only apply the changes of the pull request, so you may not be testing an issue in an isolated state.
To truly test a patch with only the changes made in the patch, we must use Git. The reason is that Git can apply a patch with only the changes in that patch. Git does this using a diff file.
The prerequisites to be able to use the below method are:
- Joomla is installed using Git
- cURL is installed
Getting the diff
To get a diff from a pull request is rather easy. Let's say the URL to the pull request is
https://github.com/joomla/joomla-cms/pull/1452
To get the diff, all you need to do is add .diff after the URL, so it becomes
https://github.com/joomla/joomla-cms/pull/1452.diff
Testing the diff
Before you apply the diff, you can first check if the diff can be applied, a sanity check. Go to the root of your Joomla installation and run the following command:
curl https://github.com/joomla/joomla-cms/pull/1452.diff | git apply --check
Applying the diff
After the diff has been tested and there are no errors, the diff can be applied by running the following command:
curl https://github.com/joomla/joomla-cms/pull/1452.diff | git apply
With the diff applied you can run your tests and record your test results as explained above. If needed, you can apply multiple diffs at once as long as they do not overlap each other. In some cases this is needed when there are multiple pull requests that need to be combined to be tested.
Reverting the diff
Once you are done with testing you can cleanup the system by revering the diff with the following command:
curl https://github.com/joomla/joomla-cms/pull/1452.diff | git apply -R
To verify that everything is clean you can run
git status
You should get the notice:
nothing to commit, working directory clean
In case the system is not clean you can get a notice like this:

In case you see changed files but you have not made any changes you can cleanup the system with
git reset --hard HEAD
Now all should be clean
Wenn wir dich begeistern konnten zu testen, probiere es weiter aus. Es kostet ein bisschen Mühe alles einzurichten, aber sobald das erledigt ist wird das Testen einfacher und macht Spaß! Außerdem ist es ein großer Beitrag für Joomla!.
Videos
Lerne wie du einen Patch testest mit der Videoserie How to "Patch Test" Joomla! code (en):
- Teil 1: Einführung
- Teil 2: Neard-Webserver-Einrichtung
- Teil 3: Stichprobentest



