Jij als Joomler kunt de Joomla! Community helpen met testen voor de updates (pacthes). Maar hoe moet je dan testen en hoe maak je een goede testomgeving?
De Joomla! Community kan julie hulp gebruiken om bugs en andere problemen in Joomla! op te lossen. Indien iemand een probleem constateerd en dit vervolgens aangemeld via de Github pagina van Joomla!, dan wordt er naar een oplossing gezocht. Vervolgens gaan vrijwilligers uit de Joomla! Community er een patch voor maken om het probleem op te lossen. Jij kunt meewerken en daarmee de ontwikkeling van Joomla! helpen.
In dit artikel leg ik uit hoe je de Joomla! Community kunt helpen met testen en hoe je een testomgeving bouwt en welke opties er zijn.
In alle software zijn er fouten die opgelost moeten worden, is dit ook het geval is in Open Source software zoals Joomla!. De broncode van Joomla! is centraal beschikbaar gesteld op het internet, waardoor het voor iedereen toegankelijk. Iedereen die een bug of een probleem met Joomla ziet kan dit te melden.
Gerapporteerde bugs en problemen worden opgelost en moeten uiteindelijk getest worden. Via deze pagina leg ik uit hoe jij kunt bijdragen aan het Joomla! project door voorgestelde oplossingen te testen. Je hoeft geen kennis van coderen te hebben, je hebt een Joomla!installatie nodig om op te testen.
Een Quick-Reference-Guide voor het testen is beschikbaar op: Testen van Joomla! patches Quick-Reference-Guide
Alle aspecten komen in onderstaande hoofdstukken aan bod.
Via onderstaande links kun je direct naar een bepaald hoofdstuk navigeren.
Om een bug te melden op de Joomla! bug trackers moet er een tracker item gemaakt worden. Nadat het tracker item is gemaakt zullen de ontwikkelaars onderzoeken of de melding klopt en de nodige handelingen verrichten. Hieronder staan tevens de stappen om een testomgeving in te richten en om de patches te testen.
Je zult je moeten registreren op GitHub; de Joomla! issue tracker gebruikt GitHub accounts als verificatie.
Klik op deze link en op de Joomla! Issue Tracker
Een serie filters geven de tracker items weer, door op de "zoekmiddelen" te klikken worden de filters geopend. Door met de muis over de titel te bewegen kan de inhoud bekeken worden. Wanneer het probleem dat je ondervindt nog niet is gemeld kun je op de knop Nieuw issue klikken in de hoofdnavigatie.
Er wordt een nieuw venster weergegeven, hoe meer informatie je daar geeft, hoe beter het is voor de ontwikkelaars
Vul zoveel mogelijk gegevens in. Je kunt tips voor ieder veld inschakelen door te schakelen tussen Pro en Help voor de Toon modus aan de rechter kant van het venster.
Beschrijf in een paar woorden de problemen die je ondervindt. Het is over het algemeen een goed idee gebruik te maken van bestaande tracker items als voorbeeld, zeker wanneer dit de eerste keer is dat je een probleem meldt.
Voorbeelden:
Opmerking: zorg voor een duidelijke beschrijving van het probleem in de samenvatting, dit is namelijk het eerste wat ontwikkelaars zien wanneer zij de tracker doorzoeken op problemen die opgelost moeten worden.
Om zoveel mogelijk informatie te geven is het veld voor de beschrijving door middel van een template ingedeeld in vijf subsecties:
De algemene opmaak zou iets moeten zijn als:
Hoe meer informatie, hoe beter. Het is ook belangrijk om het probleem te kunnen reproduceren met gebruik van een Joomla! website met testvoorbeelddata, of met gemakkelijke, duidelijke instructies voor het opzetten ervan. Vergeet niet dat anderen geen toegang hebben tot de database van jouw (lokale) website, je moet dus in staat zijn om iemand uit te leggen hoe het probleem gezien kan worden met de data die beschikbaar is -- de voorbeeld website.
Wanneer je een oplossing wilt indienen door de code in Joomla! zelf aan te bieden kun je dat doen door middel van een "pull request" naar Joomla!'s code repository op GitHub.com, die je hier vindt: https://github.com/joomla/joomla-cms
Dit proces vereist enige kennis van Source Control Management systemen en Git in het bijzonder. Indien je weet wat het Git SCM is en hoe het werkt, is het proces eenvoudig:
Schakel over naar de "staging" branch wanneer je een oplossing wilt voorstellen voor de huidige Joomla! 3.x release of naar de "3.x-dev" branch wanneer je een oplossing wilt voorstellen voor de volgende Joomla! 3.x (of 4.x) versie.
Goed geschreven bug rapporten zijn ongelooflijk nuttig. Er is echter sprake van een zekere mate van overhead bij het werk met ieder bug tracking systeem, jouw hulp bij het zo nuttig mogelijk houden van ons ticketsysteem wordt dus gewaardeerd. In het bijzonder:
Gebruik de tracker niet voor het vragen van ondersteuning. Gebruik daarvoor de Joomla! forums, of het #joomla IRC channel op freenode.
Maak geen gebruik van de trackers om grootschalige functionaliteitswensen te uiten. We willen grote veranderingen in Joomla!'s core graag bediscussiëren op de ontwikkelaarsforums voor eraan te gaan werken.
Heropen problemen die zijn gemarkeerd als "geen bug" niet. Deze markering betekent dat besloten is dat we dit specifieke probleem niet willen of zullen oplossen. Vraag, indien je niet zeker weet waarom, het op de ontwikkelaarsforums.
Gebruik de tracker niet voor ellenlange discussies, omdat ze waarschijnlijk verloren gaan. Verplaats, indien een bepaald trackeritem controversieel is, de discussie naar de ontwikkelaarsforums.
Meld veiligheidsproblemen aan security [at] joomla [punt] org. Dit is een besloten lijst waar alleen ontwikkelaars die al lange tijd bijdragen en betrouwbaar zijn toegang toe hebben.
Wanneer de kwetsbaarheid bevestigd wordt in Joomla! zelf, zullen de volgende acties ondernomen worden:
Eerst moet de basiscode opgehaald worden uit de Joomla GitHub repository. Er zijn verschillende manieren om de Joomla mastercode te downloaden, maar we bespreken hier alleen de download optie.
Eerst moeten we een map aanmaken op de lokale webserver OF op een hosting-account dat toegankelijk is via de browser. Maak de map bugtesten aan en ga naar deze map via Verkenner of Finder.
Ga naar de Joomla GitHub locatie en klik op Clone or download klik dan op Download ZIP.
Hiermee download je een kopie van de Joomla mastercode in een ZIP-bestand. Pak het bestand uit op een tijdelijke locatie, een map genaamd joomla-cms-staging verschijnt. Binnen deze map staat de Joomla mastercode. Ga naar de joomla-cms-staging map en kopieer de complete inhoud naar de map bugtesten die u in de vorige stap heeft aangemaakt.
Je kunt nu Joomla! installeren door naar http://localhost/bugtesten te gaan als je een lokale webserver gebruikt. Ga, als je gebruik maakt van een webhoster, naar de juiste URL voor de webhoster. Je doorloopt dan het normale installatieproces van Joomla!. Kies als voorbeelddata: Test English (GB) sample data
Dit is belangrijk zodat iedereen dezelfde gegevens gebruikt om te testen!
De installatie map hoeft niet verwijderd te worden, waardoor je alles, indien gewenst, makkelijk opnieuw kunt installeren.
In dit hoofdstuk leg ik jullie uit hoe je kunt testen.
Om je te helpen met het proces van het testen van patches, is een extensie genaamd "Patch Tester" ontwikkeld. De Patchtester kan gedownload worden van de Patchtester pagina en kan daarna geïnstalleerd worden via Extensiebeheer in Joomla.
Om de Patchtester te kunnen gebruiken is een GitHub account vereist, de reden hiervoor is dat er een limiet is op het aantal anonieme aanvragen die via de Patchtester worden gedaan. Je kunt je aanmelden voor een GitHub account op deze pagina.
De details van het GitHub account kunnen bij de instellingen van de Patchtester worden ingevuld. Ga, nadat de Patchtester geïnstalleerd is, naar Componenten -> Joomla! Patch Tester en klik op Opties rechtsboven. De Opties pagina verschijnt en er zijn drie tabbladen. Op het eerste tabblad genaamd GitHub Repository kunt u kiezen welke repository u wilt gebruiken. Standaard is dit het Joomla! CMS.
Op het tweede tabblad genaamd GitHub Authentication kun je jouw GitHub gebruikersnaam en wachtwoord of token invoeren, als je gebruik maakt van een token.
Opmerking: Indien je Two-Factor Authentication voor je GitHub account hebt geactiveerd, moet je een persoonlijke toegangsteken aanmaken op https://github.com/settings/applications en dit opgeven in het GitHub teken veld.
Klik, na het invoeren van jouw account details, op Opslaan & sluiten. Klik, terug in de Patchtester op Gegevens ophalen in de linker bovenhoek.
Je bent nu klaar om te beginnen met testen.
Vind een probleem in de issue-tracker dat je wilt testen of gebruik de Ik doe een gok knop. Controleer eerst of je het probleem kunt reproduceren. Indien je het probleem kunt reproduceren, dan kun je de patch installeren.
Vind in de Patchtester de items waar je aan werkt door middel van de (gedeeltelijke) titel of het ID. De titel van een tracker-item ziet er altijd zo uit:
[#4308] - Fixed event dispatching inconsistencies leading to incomplete API
Naast de # staat het ID en achter het - teken staat de titel.
Klik, nadat de patch gevonden is, op de blauwe knop Apply Patch. Controleer of de bug is opgelost en controleer ook of er geen nieuwe bugs zijn ontstaan.
Voeg, na het testen, alstublieft jouw testresultaten toe aan het overzicht (gebruik de knop Test dit). Nu hoeft je alleen maar een reactie toe te voegen indien je extra informatie hebt of indien jouw test niet succesvol is. De Tracker voegt nu automatisch een reactie toe dat je getest hebt.
Er moet ook opgemerkt worden dat het beter is als je patches kunt testen in een meertalige omgeving (met minstens 3 content-talen gepubliceerd) aangezien er problemen zijn die alleen optreden in zo'n omgeving.
Nadat een patch is getest, is deze niet meer nodig en kan deze verwijderd worden uit jouw test-installatie, hierdoor test jij altijd op een schoon systeem (je kunt patches in relatie tot elkaar testen om zeker te weten dat ze elkaar niet in de weg zitten). Ga terug naar de Patchtester en klik op de groene knop Revert Patch. Dit verwijdert de patch en kun je het volgende probleem testen.
De Patch Tester kan niet gebruikt worden om alle patches te testen. Soms moeten we een andere methode gebruiken. De Patch Tester vervangt het complete bestand en past dus niet alleen de wijzigingen uit het pull request toe. Het kan dus zijn dat u geen individueel (geïsoleerd) issue test.
Om een patch echt te testen met uitsluitend de wijzigingen die in de patch gemaakt zijn, moeten we Git gebruiken. De reden daarvoor is dat Git een patch kan toepassen met alleen de wijzigingen in die patch. Git doet dit met een diff-bestand.
Voorwaarden om de methode hieronder te gebruiken zijn:
Een diff verkrijgen uit een pull request is vrij eenvoudig. Laten we zeggen dat dit de URL is van het pull request
Om de diff te verkrijgen, hoeft u alleen maar .diff toe te voegen na de URL, die er dan als volgt uitziet
Voor u de diff toepast, kun je voor de zekerheid checken of de diff wel toegepast kan worden. Ga naar de root van je Joomla installatie en voer het volgende commando uit:
curl https://github.com/joomla/joomla-cms/pull/1452.diff | git apply --check
Als de diff getest is en er geen fouten zijn, kan de diff worden toegepast door het uitvoeren van het volgende commando:
curl https://github.com/joomla/joomla-cms/pull/1452.diff | git apply
Als de diff is toegepast, kun je de tests uitvoeren en de testresultaten opslaan zoals hierboven uitgelegd. Indien nodig kun je meerdere diffs in één keer uitvoeren, zolang ze elkaar niet overlappen. Dit kan nodig zijn als er meerdere pull requests moeten worden gecombineerd om de test uit te voeren.
Wanneer je klaar bent met testen, kun je het systeem terugbrengen in de oude staat door de diff terug te draaien, met het volgende commando:
curl https://github.com/joomla/joomla-cms/pull/1452.diff | git apply -R
Om er zeker van te zijn dat alles netjes is, kun je het volgende commando uitvoeren:
git status
Je zou deze melding moeten zien:
nothing to commit, working directory clean
Als het systeem niet opgeruimd is, kun je een melding als deze te zien krijgen:
Wanneer je gewijzigde bestanden ziet, maar zelf geen wijzigingen hebt aangebracht, kun je het systeem resetten met
git reset --hard HEAD
Nu zou alles opgeruimd moeten zijn.
Als je enthousiast bent geworden om te testen, probeer het dan eens. Het kost wat inspanning om alles op te zetten, maar als dat eenmaal gedaan is, is het leuk en makkelijk! Daarnaast draag je nu actief bij aan de verbetering van Joomla!.
Bekijk de volgende 3 Engelstalige YouTube filmpjes voor meer informatie:
Part 1: Introduction, what is patch testing.
Part 2: How to setup a web server to test Joomla! issues.
Joomla! Issue tracker: https://issues.joomla.org/
Joomla! github: https://github.com/joomla/joomla-cms
Joomla! Patch testing documentatie (Nederlands): https://docs.joomla.org/Testing_Joomla!_patches/nl
Joomla! patch tester component: https://github.com/joomla-extensions/patchtester/releases
Joomla! Volunteer Portal : https://volunteers.joomla.org/
Joomla! Bugs en problemen indienen: https://docs.joomla.org/Filing_bugs_and_issues/nl
Locatie bijeenkomsten:
Stationsstraat 100, Beek (Nederland)
maastricht@joomlacommunity.nl
jug043.nl
JoomlaCommunity.nl
Facebookpagina JUG043 Maastricht
LinkedInpagina JUG043 Maastricht