Developer FAQ

This FAQ is for questions that developers for MediaWiki might ask. Most of these are culled from IRC. If you have a question related to using MediaWiki, see this faq>Special:MyLanguage/Manual:FAQ|FAQ.

Recommended reading
See our MediaWiki virtual library (MVL) for virtual (PDF) and printable books (you can order printed versions on demand at your own costs).

How do I start
See link>Special:MyLanguage/How to become a MediaWiki hacker|How to become a MediaWiki hacker.

Localization questions
Append "?uselang=qqx" to the end of a MediaWiki URL to see the message keys displayed on the page, not their localised messages.

Can I schedule jobs to run at a later time
Yes, use the job-queue>Special:MyLanguage/Manual:Job queue|Job Queue.

How can I use the Job Queue
See the [https://gerrit.wikimedia.org/r/gitweb?p=mediawiki/core.git;a=blob;f=includes/upload/UploadFromUrl.php;hb=HEAD UploadFromUrl.php] for an example.

How can my extension set up a special page
See manual>Special:MyLanguage/Manual:$wgExtensionAliasesFiles|$wgExtensionAliasesFiles.

My patch failed a Jenkins test; now what?
See Manual:PHP unit testing. Fix the problem and run a test on your end, and when it passes, submit a new patch.

I'm getting this weird "Error: Invalid magic word" message for no reason
Try changing some stuff in your LocalSettings.php (e.g. disable some extensions) and give it another try. It might just randomly start working again. This seems to have something to do with caching. Another cause of this error can be if you have a manual>Special:MyLanguage/Manual:Parser functions|parser functions extension that doesn't put the necessary element in the $magicWords array.

Why am I getting "Notice: Undefined offset" in Database.php?
You probably messed up your join conditions.

How do I get my changes reviewed?
Use   on the file(s) you changed to find out who has contributed to that/those file(s) in the past. Add more than one of those contributors as reviewers; those who are not interested can remove themselves. See also Gerrit/Code review/Getting reviews.