User:YuviPanda/How to become a mediawiki hacker

This page is intended to help first time open source contributors get familiar with contributing to MediaWiki.

If you are an experienced open source contributor, head to developer hub instead.

Overview
MediaWiki is the software that powers Wikipedia, its sister projects and thousands of wikis all over the world. It runs on most operating systems, is written in PHP, primarily uses the MySQL database server and uses jQuery as the client Javascript library. Development of MediaWiki is primarily supported by the WikiMedia Foundation, though volunteer community developers play a huge part as well.

This page should help you get started on the path to becoming a contributor to MediaWiki. It is not a tutorial - it just points you to various places where you can go learn whatever is necessary.

There is a certain satisfaction, a 'high' to be achieved from seeing thousands, millions of people benefit from your work. Becoming a contributor is a start on the path to that high.

Getting Help
MediaWiki has a very friendly, large and diverse community. There are multiple places to get help:


 * IRC. Specifically, the #mediawiki 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. Use this link to get started easily, you can switch to a dedicated IRC client later.
 * 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.

Prerequisites
How much prior knowledge they should have, and how much the community is wiling to teach them.

PHP
Point to proper tutorial, plus what all needs to be known (and what all is not necessary).

MySQL
Point to proper tutorial. Plus make note of compatibility issues.

Javascript
jQuery.

Installation
(W/L/M)AMP installation instructions. Mediawiki (from trunk/master) installation instructions.

Your First Feature
Link to coding conventions. Link to Documentation.

Fix a Bug
Tiny annoying bugs. Bugzilla triaging/advanced search. Ask on IRC. Dogfooding.

Write an Extension
Is there a place where people can 'request' extensions?

Pointers to simple Extensions to learn from. Types of extensions + uses.

Development Tips
Running tests. Editor settings to maintain coding conventions.

Common Pitfalls
XSS/CSRF/SQL Injection issues. PHP default 'stupid' settings and how to change them. Strict PHP error checking.