Jump to content

Phabricator/Code/nl

From mediawiki.org
This page is a translated version of the page Phabricator/Code and the translation is 100% complete.

Dit document beschrijft het ontwikkelproces van deze Wikimedia's Phabricator instantie. Phabricator is geschreven in PHP, net als MediaWiki, dat zou het starten met het ontwikkelen moeten helpen. We kijken eerst hoe Wikimedia Phabricator gebruikt en wat we bij de ontwikkeling verwachten. Achteraf maken we dan wat opmerkingen over hoe we beginnen met de actuele ontwikkeling.

Phabricator op de Wikimedia

Wikimedia gebruikt een Phorge (voorheen bekend als Phabricator) instantie met minimale wijzigingen van stroomopwaarts omdat het onderhouden van lokale patches omslachtig is. De uitzonderingen zijn de extensies, die in productie in een [repository] staan en dus niet regelmatig samengevoegd hoeven te worden. Alle andere wijzigingen worden dus via de upstream gedaan. Dit lijkt een beperking, maar in de praktijk reageren de upstream beheerders erg vlot op suggesties.

Wikimedia Phabricator werkschema fouten

Het is belangrijk om de levensduur van een bug te begrijpen voor aan een van de taken te beginnen. Er zijn twee projecten: #phabricator voor WMF-specifieke bugs en #phabricator-upstream voor algemene Phabricator/Phorge bugs. Software bugs en uitbreidingsverzoeken vallen in de tweede categorie.

Het Phabricator-upstream werkbord toont het proces dat door taken wordt doorlopen voordat ze upstream aangemaakt worden:

Backlog
dit is waar standaard de taken komen te staan. Geweigerde (stalled) taken staan daar ook.
Klaar om te gaan
taken die mogelijk in de bug tracker kunnen gaan. Wanneer u dit doet, moet u volgenː
Upstreamed
Taken die upstream zijn gerapporteerd. Voor sommige taken kan dit verwijzen naar de oude upstream (secure.phabricator.com tot 2021), voor sommige taken kan dit verwijzen naar de huidige upstream (we.phorge.it).
Opgelost upstream
De bijbehorende upstream taak is gesloten, waarschijnlijk met een bijbehorende commit. Om deze specifieke verandering in Wikimedia Phabricator te weerspiegelen, kan het nog steeds nodig zijn om een upgrade in Wikimedia te plannen.
Feedback van Upstream
Een discussie is nog steeds nodig of nog steeds in afwachting.

Nadat een taak als 'upstreamed' is gepubliceerd, dan geeft die ontwikkelaar hun beoordeling door met suggesties over hoe de functie moet worden geïmplementeerd. De ontwikkelaar kan nu beginnen met de implementatie.

Een ontwikkelaar kan besluiten dat een functie niet in diens plannen past. De taak in Wikimedia Phabricator wordt dan verplaatst van het #phabricator-upstream project nar het #phabricator project, het eindigt dan in de de discussie fase: is die functie belangrijk genoeg om lokale patches te blijven krijgen? Als er een beslissing valt dat dat zo is, kan er iemand met de implementatie beginnen.

Om de kans te verhogen dat uw code wordt goedgekeurd en om ongemakken te voorkomen, neem contact op met Phorge of de WMF-beheerders om over een mogelijke implementatie te praten.

Contract Phorge (upstream)

Lokale aanpassingen

Zoals eerder aangegeven proberen we de lokale patches tot een minimum te beperken. Er zijn beperkte bronnen beschikbaar om patches te onderhouden en ze samen te voegen met wijzigingen van upstream. Daarom moeten alle lokale patches eerst besproken worden in het project #phabricator. Het onderhouden van een phabricator extensie is veel minder werk,als tenminste het gebruik van nieuwe of onstabiele API's van de Phabricator's core wordt voorkomen. Ook al is er bij extensies geen spraken van het samenvoegen van code en mogelijke code conflicten, er is natuurlijk wel elke keer testen nodig bij wijzigingen in de upstream. Phorge heeft geen 'bevroren' API's waar u dus veilig van afhankelijk kan zijn omdat er geen aanpassingen meer aan worden gedaan.

De huidige code van de Wikimedia Phabricator instantie zelf:

De huidige lokaal onderhouden extensies zijn:

Website configuratie

De meeste configuratie kan via de webinterface worden gedaan. Standaardwaarden (gedeeld tussen https://phabricator.wikimedia.org en bijvoorbeeld https://phabricator.wmcloud.org/) worden ingesteld met behulp van de puppet maniphest of het Scap sjabloon (zie phab:T239355).

Instellen

Zie Phabricator/Local Dev Environment.

Een andere manier om het in te stellen is met gebruik van MediaWiki-Vagrant via de rol 'phabricator'. Volg de stappen op MediaWiki-Vagrant om dat te installeren, schakel daarna die phabricator rol in met

vagrant roles enable phabricator --provision

Cloud VPS VM gebruiken

Als u weet hoe een VM kunt draaien op Cloud VPS en daarvoor de rechten heeft, dan kunt u een instantie met de `phabricator::labs` rol aanmaken. Dan heeft u een basis instelling met dezelfde configuratie als https://phabricator.wmcloud.org/.

Migratie code van Bugzilla, RT, Mingle, Trello naar Phabricator

De scripts die Wikimedia heeft gebruikt voor de migratie van gegevens van Bugzilla en RT naar Phabricator is beschikbaar. Deze migratie code is niet foutenvrij, het is alleen geschreven en gebruikt voor specifieke configuraties van Wikimedia's hulpmiddelen. Er zijn ook andere migratie scripts, bijvoorbeeld het project GStreamer gebruikte in 2015 een phill script van Emanuele Aina om hun gegevens te importeren uit Bugzilla in Phabricator.

Er zijn gegevens gemigreerd uit Mingle naar Phabricator met een script beschikbaar in phab:P129.

Ook de scripts die gegevens uit Trello naar Phabricator overgezet hebben zijn beschikbaar. Zie phab:T821 voor meer informatie.