Joomla! Patches testen

From Joomla! Documentation

Revision as of 07:31, 22 October 2021 by Max123kl (talk | contribs)
Other languages:
Bahasa Indonesia • ‎Deutsch • ‎English • ‎Nederlands • ‎Türkçe • ‎español • ‎français • ‎italiano • ‎português do Brasil • ‎Ελληνικά • ‎русский

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 im Internet frei für jedermann 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

Joomla issue tracker-de.png

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.9.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 dem Test von 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.

Joomla github-de.png

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.

After that you have to set up your system. For more information see https://docs.joomla.org/J4.x:Setting_Up_Your_Local_Environment/en.

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

The page you are presented with has the Patch Tester 3.0.0 Release Candidate for use on Joomla 3 Sites and the Patch Tester 4.0.0 Release Candidate for use on Joomla 4 sites. Note that the files to download are hidden in the Assets drop-down which when clicked will review the download file formats and the source code. Once downloaded it can be installed via the Extension Manager in Joomla.

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.


Patchtester repo-en.png

Im zweiten Reiter, genannt GitHub Authentifizierung, kannst du deinen GitHub Benutzernamen und dein persönliches Zugangs-Token als Passwort hinterlegen.

Joomla PatchTester Github credentials.png


Nach Eingabe der 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

Beside the # is the ID and behind the - sign comes the title.

Nachdem der Patch gefunden wurde, klicke 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 Test melde bitte das Testergebnis. Verwende dafür den Button "Test this". Nun kannst du noch einen Kommentar hinzufügen wenn du witere Information hast oder wenn der Test nicht erfolgreich war. Der Tracker fügt nun automatisch einen Kommentar hinzu, dass du den Test durchgefphrt hast. Es muss auch erwähnt werden, dass es viel besser ist, auf mehrsprachigen Seiten (mit mindestens 3 aktiven Sprachen) zu testen, denn manche Fehler treten nur unter diesen Bedingungen auf.

The new Test This button and how to use it

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 (Man kann Patches in Verbindung miteinander testen, um sicherzustellen, dass sie nicht im Konflikt stehen). 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 -L 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 -L 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 -L 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:

There are changed files in the working directory

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

If you have become enthusiastic to test, give it a try. It takes a bit of effort to set everything up but once that is done, it is fun and easy! In addition you are also contributing to Joomla!.

Prebuild packages

For all people who test Pull Requests for J4: At the bottom of each new PR's is now a link to download an update packages containing the changes from this specific PR. Maybe you have to expand the details for the tests first. For this click on Show all checks.

Maybe you have to expand the details for the tests first. Then you see the link to the download. Click on Details.

Then you see the link to download.

The link leads to a download page for that PR where you can download full install packages and update packages.

Then you see the link to download. This will get you a copy of the Joomla 4.-dev code inclusive the patch in a ZIP file. Unzip the file in a temporary location, a folder named Joomla_[Version]+[Number of Path]-Development-Full_Package will appear. For Version 4.0.0-beta1-dev and PR-number 28462 this will be for example Joomla_4.0.0-beta1-dev+pr.28462-Development-Full_Package. Now we need to create a folder on either the local web server or the hosting account that can be accessed via the browser. Create the folder bugtesting and go to this folder via Explorer or Finder. Go into the Joomla_[Version]+[Number of Path]-Development-Full_Package folder and copy the complete contents to the folder bugtesting that you created in the previous step.

Now you can install Joomla by navigating to http://localhost/bugtesting if you are using a local web server, if you use one on a hosting account, navigate to the appropriate URL for the hosting account.

Set up your sytem. For testing a PR, people who don't have a git clone and do not have Composer or Node.js can download and install the full install package. If a PR modifies update SQL scripts or other things related to updating, testers can install a 3.10-dev nightly or 3.10 beta and use the update package of that J4 PR to test updating to J4.

Videos

How to test patch for Joomla 4

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

How to test Prebuild packages for Joomla

Joomla has instigated a new method of testing pr's that will greatly benefit those on shared hosting. Or those who simply want a simple pr testing method.

Link

Brian Teeman: A Dummies Guide to Joomla Bug Testing