How to become a MediaWiki hacker/ja

この記事は開発者を対象に、MediaWiki core と MediaWiki 拡張機能の開発に貢献するために欠かせないスキルの習得を支援する目的で執筆されました. MediaWiki で活動中、ほんとうに自信があって責任を持てないなら、ほとんどの場合MediaWiki coreをいじらないように注意してください.

ウィキメディアの開発を始めるなら、まずメンターを付けてくれるウィキメディアで貢献することから入りましょう. メンターなしでする他の開発としては、既存のコードにあるgood first bugの修正があります.

あなたが経験を積んだ開発者である場合は、代わりに  を参照してください.

ウィキメディアのコミュニティに参加するその他の方法は、 を参照してください.

概要
MediaWiki は、ウィキペディアとその姉妹プロジェクト群や世界中の数多くのウィキを支えるソフトウェアです.

MediaWikiはPHPプログラミング言語により書かれています. また、クライアントのJavaScript libraryとしてはjQueryを使用しています.

MediaWikiは主にLAMP platform向けに書かれており 、ほとんどのOSで実行可能です. MediaWikiは主にMySQLとMariaDBデータベースサーバを使用しています

開発オープンソーススタイルで行われており 、大部分のコミュニケーションはオンライン上で行われています. 開発はウィキメディア財団による支援もありますが、ボランティアコミュニティの開発者によるものがかなりの部分を占めています.


 * 開発についての議論がさまざまなメーリング リストや IRC チャンネルで行われています. 主要開発者リストはwikitech-lにてご確認ください.  主要開発者IRCチャンネルはMediaWikiやWikimedia-devにてご確認ください.
 * ソースコードはGitリビジョン管理システムで管理されています.
 * コードレビューは、 で行われます. GitやGerritをセットアップしてパッチを送信するには、こちらのチュートリアルをご確認ください.
 * バグ報告やタスクは、ファブリケーターで管理されています.

このページは、MediaWikiのコントリビュータになる助けになるはずです. これはチュートリアルではありません. 単に必要なことを学べる場所へのポインタを示しているに過ぎません.

開発環境のセットアップ
ほとんどのプロジェクトでは Git と Gerrit を使用します. Gerrit のチュートリアルにしたがって開発者アカウントを登録してください. その後に、コードをダウンロードしたり変更、テスト、パッチの送信が可能になります. 開発環境を準備するには、あらかじめ設定された仮想マシン(VagrantもしくはDocker)を使用する方法とマニュアルで行う設定の2通りがあります.

Vagrantを使用した仮想マシン

 * Vagrantのインストール - ここに書かれた手順に従えば、Linux仮想マシン内で、MediaWikiサーバーとそれに必要なすべてのプログラムのインストールができます. ホストには、Linux、Windows、Macのいずれも使用可能です.

Docker development environment

 * MediaWiki Docker – Run MediaWiki using Docker (can be used on Linux, Windows or macOS hosts).

手動インストール

 * インストール要件 - ハードウェア要件を確認し、LAMP、MAMP、WAMP のいずれかのサーバー (Linux、Mac、Windows のいずれかとApache、MySQL/MariaDB、PHP) をインストールします.


 * — Git から最新のソースコードをダウンロードします.
 * — 引き続きインストールと初期設定をします.
 * 早期に警告やエラーを表示するためにさまざまなデバッグ手段準備します.

MediaWikiの機能開発には、必ずしもウィキペディアのデータベースからダンプをダウンロードする必要はありません. 実際、多くの場合では、いくつかの工夫して作成したテストページを追加したほぼ空のデータベース使用した方が簡単です. しかし、もし何らかの理由でウィキペディアのコピーが必要な場合は、ここからダンプを入手できます.

PHP
MediaWiki is written in PHP, so you'll need to get familiar with PHP to hack MediaWiki's core.


 * Learn PHP
 * PHP のチュートリアル — 様々な言語で利用できます. PHPについて全く知らなくても、他のオブジェクト指向プログラミング言語の経験があれば、PHPを学ぶのは簡単です.
 * PHP Programming at Wikibooks.
 * PHP topic at Wikiversity.


 * PHPに関するリソース:
 * PHPマニュアル — 様々な言語で利用できます.
 * MediaWiki コミュニティ内の PHPコーディング規約


 * 知っておくべきこと:
 * MediaWikiの

が、基本のPHPインタープリタにMediaWikiのオブジェクトとクラスをロードします.
 * Also, the script  in MediaWiki is a replacement of   based on PsySH, see Manual:Shell.php.

データベース
Many features require some amount of database manipulation, so you'll often need to be familiar with MySQL/MariaDB.


 * MySQL/MariaDBについて学ぶ
 * MySQL のチュートリアル — From the MySQL 5.0 reference manual.
 * MySQL at Wikibooks.


 * MySQL/MariaDB リソース
 * MySQL のリファレンス マニュアル — 様々な言語で利用できます.
 * MariaDB ナレッジ ベース
 * MediaWiki コミュニティ内のデータベース コーディング規約


 * 知っておくべきこと:
 * Test your code with MySQL/MariaDB.
 * MediaWiki currently uses MySQL and MariaDB as the primary database back-end. It also supports other DBMSes, such as PostgreSQL and SQLite. However, almost all developers use MySQL/MariaDB and don't test other DBs, which consequently break on a regular basis. You're therefore advised to use MySQL/MariaDB when testing patches, unless you're specifically trying to improve support for another DB. In the latter case, make sure you're careful not to break MySQL/MariaDB (or write queries that are horribly inefficient in it), since MySQL/MariaDB is what everybody else uses.

JavaScript と CSS
JavaScriptとCSSは、フロントエンドのコードのいたるところに現れます. You don't have to be familiar with JavaScript, jQuery and CSS to work on MediaWiki, but you might need to, depending on what you choose to work on.


 * JavaScriptとCSSについて学習する
 * JavaScript and CSS at Wikibooks.
 * jQueryをはじめる — jQuery のチュートリアルです.
 * Learning JavaScript — references and sources.


 * JavaScript と CSS のリソース
 * MediaWiki コミュニティ内の JavaScript コーディング規約
 * MediaWiki コミュニティ内の CSS コーディング規約

MediaWiki
The MediaWiki code base is large and some parts are ugly; don't be overwhelmed by it. When you're first starting off, aim to write features or fix bugs which only touch a small region of code.


 * MediaWiki の基本と必読ページ:
 *  — A high-level overview of the main components of MediaWiki and how they work with each other.
 *  — An overview of why and how to write secure code.


 * MediaWiki のリソース:
 * — A list of important files and links to more detailed information.
 * — A list of hooks. If you're trying to find what part of the codebase does something, often a good place to start is by searching for the related hooks.
 * — An overview of general coding conventions within the MediaWiki community.


 * コードの説明文書 ( class reference ) — ソースコードとそれのコメントによって自動生成されています.
 * — MediaWikiデバッグの手引.
 * — A tool to interact with MediaWiki objects live.

MediaWiki 拡張機能
If you choose to work on MediaWiki extensions code, the following links provide more information.


 * MediaWiki extensions basics:
 * Developing extensions — How to write an extension for MediaWiki.
 * 拡張機能の書き方のチュートリアル


 * MediaWiki 拡張機能のリソース:
 * Best practices for extensions
 * A brief introduction to MediaWiki extension development — A video presentation about how to create a MediaWiki extension (slides).
 * Making a MediaWiki extension — Covers how to develop an extension for MediaWiki, best practices, and how to engage the MediaWiki community. 2011年2月からです.
 * Help for extension developers on the Developer Hub

関連項目

 * Search for code across repositories
 * – この記事にかかれていることをを精読したら、今度は開発者ハブの情報に移りましょう.
 * – a collection of related pages