How to become a MediaWiki hacker/id

Artikel ini ditulis untuk membantu para pengembang belajar keterampilan dasar untuk berkontribusi dalam pengembangan inti MediaWiki dan ekstensi MediaWiki.

Jalur utama untuk mulai mengikuti pengembangan Wikimedia adalah berkontibusi ke proyek Wikimedia yang menawarkan pendampingan. Cara alternatif tanpa pendampingan adalah dengan memperbaiki sebuah kutu pertama yang baik.

Jika Anda merupakan seorang pengembang berpengalaman yang sudah mengenal MediaWiki, kunjungi .

Untuk langkah lain untuk bergabung dengan komunitas Wikimedia, lihat .

Gambaran umum
MediaWiki adalah perangkat lunak yang menenagai Wikipedia, proyek saudaranya dan ribuan wiki di dunia.

Meskipun MediaWiki ditulis dengan bahasa pemograman PHP, beberapa alat dukungan ditulis dalam bahasa lain, termasuk berkas tumpak, skrip shell, makefile dan Python. MediaWiki menggunakan jQuery sebagai pustaka JavaScript klien.

MediaWiki ditulis utamanya untuk platform LAMP dan dijalankan di kebanyakan sistem operasi. MediaWiki pada umumnya menggunakan peladen basis data MySQL atau MariaDB.

Pengembangan dilakukan dalam gaya sumber terbuka, dikoordinasikan secara daring, dan didukung oleh Yayasan Wikimedia, tetapi komunitas sukarelawan memainkan peran penting juga.

Daftar pengembang utama adalah wikitech-l. Saluran IRC pengembang utama adalah dan.
 * Diskusi pengembangan dilakukan di berbagai milis dan saluran IRC.
 * Kode sumber disimpan di dan dikelola menggunakan sistem kendali revisi Git dan bisa dilihat di sini.
 * Peninjauan kode dilakukan di dan bisa dilihat di sini. Ikuti tutorial ini untuk mengatur Git dan Gerrit agar bisa mengajukan tambalan.
 * Laporan kutu diisi dan proyek dikoordinasikan di dan bisa dilihat di sini.



Mengatur lingkungan pengembangan Anda
You can install and develop MediaWiki on Linux, Windows, or macOS using any of the three solutions below.

Kebanyakan proyek menggunakan Git dan Gerrit. Ikuti tutorial Gerrit untuk mengatur akun pengembang Anda. Kemudian Anda bisa mulai mengunduh kode kami, melakukan pengubahan, dan mengajukan tambalan. Ada dua cara untuk mengatur lingkungan pengembangan Anda: menggunakan mesin virtual yang sudah dikonfigurasi (Docker atau Vagrant), atau melakukan konfigurasi manual.

Lingkungan pengembangan Docker

 * MediaWiki Docker – Menjalankan MediaWiki menggunakan Docker (bisa digunakan di hos Linux, Windows atau macOS).

It can be very slow on Windows if you are using WSL2 based engine, due to the poor performance of its shared directory implementation. You can switch to the Hyper-V backend on the setting of Docker Desktop for better filesystem performance.

You can also try the experimental mwcli tool which provides basic orchestration functionality for MediaWiki Docker containers. With this you can easily add extensions and features to your container.

Mesin Virtual dengan Vagrant

 * MediaWiki Vagrant – Run MediaWiki on a Linux virtual machine using Vagrant.

Vagrant allows you start a MediaWiki instance you can develop as well as allowing you to add and develop any of 250+ extensions - all with a single command. This saves you installation and configuration time compared to manually installing. It runs faster than Docker on Windows however slower than manually installing. You may also experience shared directory performance issues if you are using VirtualBox.



Instalasi manual
MediaWiki can be developed by installing it natively on your system and editing its code. Installing it natively means it will run much faster than Docker or Vagrant, but it will take more time to configure.


 * 1)  — Check hardware requirements and install dependencies
 * 2)  — Unduh kode sumber terbaru dari Git.
 * 3)  — Lanjutkan pemasangan dan konfigurasi awal.
 * 4) * Atur berbagai mode awakutu di lingkungan Anda untuk menampilkan peringatan dan galat sejak awal.



PHP
MediaWiki ditulis dalam bahasa PHP, jadi Anda perlu mengenali PHP sebelum meretas inti MediaWiki.


 * Belajar PHP
 * Tutorial PHP — Tersedia dalam berbagai bahasa. Jika Anda tidak tahu apa-apa tentang PHP tetapi tahu cara memprogram dalam bahasa pemrograman berorientasi objek lainnya, PHP akan mudah untuk dipelajari.
 * PHP Programming at Wikibooks.
 * PHP at Wikiversity.


 * Sumber daya PHP:
 * Manual PHP — Tersedia dalam berbagai bahasa.
 * Konvensi pengodean PHP di dalam komunitas MediaWiki.


 * Hal-hal yang perlu diketahui:
 * Skrip  di MediaWiki menyediakan sebuah interpreter PHP dasar dengan objek dan kelas MediaWiki sudah dimuat.
 * Juga, skrip  di MediaWiki adalah pengganti   berdasarkan PsySH, lihat

Basis data
Kebanyakan fitur memerlukan manipulasi basis data, jadi Anda sering kali perlu mengenali MySQL/MariaDB.


 * Belajar MySQL/MariaDB
 * Tutorial MySQL — Dari manual referensi MySQL.
 * MySQL at Wikibooks.


 * Sumber daya MySQL/MariaDB
 * Manual Referensi MySQL — Tersedia dalam berbagai bahasa.
 * Basis Pengetahuan MariaDB
 * Konvensi pengodean basis data di dalam komunitas MediaWiki.


 * Hal-hal yang perlu diketahui:
 * Uji coba kode Anda dengan MySQL/MariaDB.
 * MediaWiki sekarang sedang menggunakan MySQL dan MariaDB sebagai basis data bagian belakang utama. MediaWiki juga mendukugn DBMS lainnya, seperti PostgreSQL dan SQLite. Akan tetapi, hampir semua pengembang menggunakan MySQL/MariaDB dan tidak menguji DB lainnya sehingga basis data lain kerap mengalami galat. Anda disarankan menggunakan MySQL/MariaDB ketika menguji tambalan, kecuali Anda memang mencoba memperbaiki dukungan untuk DB lainnya. Kalau begitu, berhati-hatilah agar Anda tidak membuat MySQL/MariaDB galat (atau menulis kueri yang tidak efisien dalam mereka), karena MySQL/MariaDB adalah yang digunakan semua orang.



JavaScript dan CSS
JavaScript dan CSS ada di mana-mana di kode bagian depan. Anda tidak harus mengenal JavaScript, jQuery dan CSS untuk mengerjakan MediaWiki, tetapi Anda mungkin perlu, bergantung pada apa yang Anda kerjakan.


 * Belajar JavaScript dan CSS
 * JavaScript and CSS at Wikibooks.
 * Memulai dengan jQuery — Tutorial jQuery.
 * Learning JavaScript — references and sources.


 * Sumber daya JavaScript dan CSS
 * Konvensi pengodean JavaScript di dalam komunitas MediaWiki.
 * Konvensi pengodean CSS di dalam komunitas MediaWiki.

MediaWiki
Basis kode MediaWiki besar dan beberapa bagiannya tidak cantik; jangan terbebani oleh itu. Ketika Anda memulai, bertujuanlah menulis fitur atau memperbaiki kutu yang hanya menyentuk wilayah kode yang kecil.


 * Dasar dan bacaan wajib MediaWiki:
 *  — Gambaran umum tingkat tinggi dari komponen utama MediaWiki dan bagaimana mereka bekerja dengan satu sama lain.
 *  — Gambaran umum mengapa dan bagaimana cara menulis kode yang aman.


 * Sumber daya MediaWiki:
 * — Daftar berkas yang penting dan pranala ke informasi yang lebih rinci.
 * — Daftar hook. Jika Anda mencoba menemukan bagian basis kode yang mana yang melakukan sesuatu, biasanya tempat yang bagus untuk memulai adalah dengan mencari hook yang terkait.
 * — Gambaran umum dari konvensi pengodean di dalam komunitas MediaWiki.


 * Dokumentasi kode (referensi kelas) — Dokumentasi yang dihasilkan secara otomatis dari kode dan komentar kode
 * — Panduan mengawakutu MediaWiki.
 * — Peralatan untuk berinteraksi dengan objek MediaWiki secara langsung.



Ekstensi MediaWiki
Jika Anda memutuskan untuk mengerjakan kode ekstensi MediaWiki, pranala berikut menyediakan informasi lebih lanjut.


 * Dasar ekstensi MediaWiki:
 * Mengembangkan ekstensi — Bagaimana cara menulis ekstensi untuk MediaWiki.
 * Tutorial menulis ekstensi


 * Sumber daya ekstensi MediaWiki:
 * Praktik terbaik untuk ekstensi
 * Pengenalan singkat pengembangan ekstensi MediaWiki — Sebuah presentasi video mengenai cara membuat sebuah ekstensi MediaWiki (salindia).
 * Membuat sebuah ekstensi MediaWiki — Membahas mengenai cara mengembangkan sebuah ekstensi untuk MediaWiki, praktik terbaik, dan bagaimana cara mengikutsertakan komunitas MediaWiki. Dari Februari 2011.
 * Bantuan untuk pengembang ekstensi di Pusat Pengembang



Lihat pula

 * Cari kode di seluruh repositori
 * – Ketika Anda telah membaca seluruh informasi di artikel ini, waktunya Anda pindah ke informasi di pusat pengembang.