How to become a MediaWiki hacker/da


 * ''For andre måder at blive inddraget i MediaWiki-verdenen, se Hvordan kan jeg bidrage?.

Denne artikel er skrevet for at hjælpe nybegyndere at lære de nødvendige færdigheder til at bidrage til MediaWikis udvikling.

Hvis du er en erfaren udvikler, se istedet developer hub/da.

Overblik
MediaWiki er den software, der driver Wikipedia, dens søsterprojekter og tusindvis af wikier over hele verden. Det kører på de fleste operativsystemer, er skrevet i PHP, bruger primært MySQL-database-server og bruger jQuery som klient Javascript biblioteket. Udvikling af MediaWiki støttes primært af Wikimedia-stiftelsen, men frivillige udviklere deltager også i stor stil.

Denne side skal hjælpe dig på vej til at blive en god bidragyder til MediaWiki. Det er ikke en håndbog, men den henviser dig til forskellige steder, hvor du kan gå lære det der er nødvendigt.

PHP
MediaWiki er skrevet i PHP, så du bliver nød til at blive fortrolig med PHP for at komme ind til MediaWiki's kerne.


 * Lær PHP
 * [//php.net/manual/en/tutorial.php PHP tutorial] - tilgængelig på mange forskellige sprog. Hvis du ikke har kendskab til PHP, men ved, hvordan man programmerer i andre objektorienterede programmeringssprog, vil PHP være nemt for dig at lære.
 * PHP Programmering på Wikibooks.


 * PHP kilder:
 * [//php.net/manual/en/ The PHP manual] - tilgængelig på mange forskellige sprog.
 * PHP kode-konventioner indenfor MediaWiki-verdenen.


 * Værd at vide:
 * Scriptet maintenance/eval.php i MediaWiki giver en grundlæggende PHP fortolker med MediaWiki objekter og indlæste klasser.

Database
Mange funktioner kræver en vis mængde database-manipulation, så du bliver ofte nød til at være fortrolig med MySQL.


 * Lær MySQL
 * [//dev.mysql.com/doc/refman/5.0/en/tutorial.html MySQL håndbog] - fra MySQL 5.0 reference manualen.
 * MySQL på Wikibooks.


 * MySQL kilder
 * [//dev.mysql.com/doc/ MySQL reference manualer] - tilgængelig på mange forskellige sprog.
 * Database kode konventioner indenfor MediaWiki-verdenen.


 * Værd at vide:
 * Test din kode med MySQL.
 * MediaWiki bruger MySQL som den primære database rygrad. Den understøtter også andre DBMS'er, såsom PostgreSQL og SQLite. Men næsten alle udviklere bruger MySQL og tester ikke andre databaser, som derfor regelmæssigt bryder sammen. Du anbefales derfor at bruge MySQL ved test-kørsler, medmindre du specifikt prøver at forbedre understøttelse til en anden DB. I sidstnævnte tilfælde, så sørg for at du er omhyggelig med ikke at ødelægge MySQL (eller skrive forespørgsler, der er forfærdeligt ineffektive i det sprog), da det er hvad alle andre bruger.

JavaScript og CSS
JavaScript og CSS er blevet allestedsnærværende i moderne kode. Du behøver ikke være fortrolig med JavaScript, jQuery og CSS for at arbejde med MediaWiki, det afhænger af hvad du vælger at arbejde med.


 * Lær JavaScript og CSS
 * JavaScript og CSS på Wikibooks.
 * [//docs.jquery.com/Tutorials:Getting_Started_with_jQuery Kom igang med jQuery] - jQuery håndbog.


 * JavaScript og CSS kilder
 * JavaScript kode konventioner/da indenfor MediaWiki-verdenen.
 * CSS kode konventioner/da indenfor MediaWiki-verdenen.

MediaWiki
MediaWiki kodebasen er stor og grim, du skal ikke blive overvældet af den. Når du først starter ud, så tag sigte på at skrive funktioner eller rette fejl, begrænset til et lille område af koden.


 * Primær og tvungen MediaWiki læsning:
 * [//aosabook.org/en/mediawiki.html MediaWiki arkitektur] - højniveau overblik over de vigtigste komponenter i MediaWiki og hvordan de arbejder med hinanden.
 * Security for developers/da - oversigt over, hvorfor og hvordan man skriver sikker kode.


 * MediaWiki kilder:
 * Manual:Code/da - liste over vigtige filer og links til mere detaljerede oplysninger.
 * Coding conventions/da - oversigt over generelle kodekonventioner inden for MediaWiki-verdenen.
 * Intro til MediaWiki workshop pensum/da - måder at hacke MediaWiki, fra brugernes præferencer til udvidelser og kernen.
 * [//svn.wikimedia.org/doc/ Fuldstændig dokumentation] (advarsel: siden er stor) - automatisk genereret dokumentation fra koden og kode-kommentarer.
 * How to debug/da - guide til fejlfinding i MediaWiki.
 * eval.php/da - værktøj til at interagere med MediaWiki objekter live.

Opsætning af dit miljø

 * Installation requirements/da - tjek hardwarekrav, og installer en LAMP, MAMP eller WAMP server (Linux, Mac eller Windows, plus Apache, MySQL og PHP).
 * Download from Git/da - download den nyeste kildekode fra Git.
 * Installation guide/da - forsæt installationen og startkonfiguration
 * Opsætning af de forskellige debug modes i dit miljø for at vise advarsler og fejl tidligt.

Det er ikke nødvendigt at hente Wikipedia databasedumps for at udvikle MediaWiki funktioner. I virkeligheden er det i mange tilfælde nemmere at bruge en næsten tom database med et par særligt udformede testsider. Men hvis du af en eller anden grund ønsker at have en kopi af Wikipedia, kan du få et dump.

Kom igang
De to vigtigste veje at komme i gang med MediaWiki udvikling er at ordne en irriterende lille fejl/da i den eksisterende kode, eller at tilføje en ny funktion, som regel gennem en MediaWiki udvidelse.


 * Grundlæggende MediaWiki udvidelser:
 * Developing extensions/da - hvordan man skriver en udvidelse til MediaWiki
 * Writing an extension for deployment/da - hvis du ønsker at få din udvidelse indsat på Wikimedia's websteder (herunder eventuelt Wikipedia), er yderligere kontrol nødvendig med hensyn til ydeevne og sikkerhed.
 * Håndbog for skrivning af udvidelser/da


 * MediaWiki udvidelsers kilder:
 * List of simple extensions/da - simpel måde at blive mere fortrolig med, hvordan udvidelser virker.
 * En kort introduktion til udvikling af MediaWiki udvidelser - video-præsentation om, hvordan en MediaWiki udvidelse oprettes (lysbilleder).
 * Konstruktion af en MediaWiki udvidelse - hvordan man kan udvikle en udvidelse til MediaWiki, bedste øvelser, og hvordan Mediawiki-verdenen engageres. Fra februar 2011.
 * Specialside skabelon - tilføj en specialside til at vise nogle praktiske oplysninger.
 * Extending wiki markup/da - tilføj en parser krog til at ændre indholdet af wikitext.

Gem dine ændringer
Der er to primære muligheder for at sende ændringer til MediaWiki. Du kan enten indsende patches gennem vores fejlsøgnings-system, eller du kan få Developer access/da, så du kan indsende ændringer til Gerrit, vores kodegennemgangs-værktøj. Det er let at får udvikler-adgang.

Pushing for review through Gerrit

 * Get developer access if you do not already have it.
 * Make your changes in a branch in Git (see Git/Workflow).
 * Check your code against the pre-commit checklist. Don't skip this step ; you'll be happy you didn't.
 * Submit your change to Gerrit (see Git/Workflow).
 * Post a link to your Gerrit changeset in the appropriate bug report in Bugzilla with, and mark it with the   and   keywords.
 * Feel free to ping the Bugmeister if you see that your patch hasn't been pushed for review. This can be a slower process than just pushing it yourself, but by doing it once or twice you demonstrate your good faith, and your ability to write reasonably stable code.
 * Ask for your code to be reviewed, watch for email updates, and make requested changes.

Submit a patch to bugzilla

 * Check your code changes against the pre-commit checklist. Don't skip this step ; you'll be happy you didn't.
 * Create a patch of your changes (you can use 'git diff' or 'svn diff' if you're making changes against the code repository; for help, take a look at OpenHatch's diff and patch training mission)
 * Attach your patch to a corresponding bug in Bugzilla - if one does not exist, go ahead and create it
 * Add the  and   keywords to the bug

Discuss and get help
MediaWiki has a very friendly, large and diverse community. There are multiple places to get help. If you already have an idea for a feature you want to implement, it's also a good idea to talk to a senior developer before you start, especially if you're not sure how your feature will affect other parts of the code.


 * IRC — Specifically, the channel. The MediaWiki developer community is distributed around the world, and there most likely is someone awake, no matter what your timezone is. Hop in and start talking.
 * Mailing Lists — Since you are looking to be a developer, wikitech-l is where you should be at. You can also browse through the archives to get a feel of how the community operates.

Se også

 * How to become a MediaWiki hacker/Workshop/da
 * Udvikler-forum - når du har grundigt læst informationen i denne artikel, er det tid til at gå videre til informationen i udvikler-forum.
 * Andre Wikimedia tekniske projekter du kan hjælpe med
 * MediaWiki Virtual Library (MVL) - siden er også en del af MediaWiki Developers Guide.