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
[edit]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
[edit]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
[edit]How much prior knowledge they should have, and how much the community is wiling to teach them.
PHP
[edit]Point to proper tutorial, plus what all needs to be known (and what all is not necessary).
MySQL
[edit]Point to proper tutorial. Plus make note of compatibility issues.
Javascript
[edit]jQuery.
Installation
[edit](W/L/M)AMP installation instructions. Mediawiki (from trunk/master) installation instructions.
Your First Feature
[edit]Link to coding conventions. Link to Documentation.
Fix a Bug
[edit]Tiny annoying bugs. Bugzilla triaging/advanced search. Ask on IRC. Dogfooding.
Write an Extension
[edit]Is there a place where people can 'request' extensions?
Pointers to simple Extensions to learn from. Types of extensions + uses.
Development Tips
[edit]Running tests. Editor settings to maintain coding conventions.
Common Pitfalls
[edit]XSS/CSRF/SQL Injection issues. PHP default 'stupid' settings and how to change them. Strict PHP error checking.