MediaWiki ditulis dalam bahasa pemrograman PHP dan menyimpan semua konten teks ke dalam basis data. Perangkat lunak ini dioptimalkan untuk menangani proyek besar secara efisien, yang dapat memiliki terabita konten dan ratusan ribu tampilan per detik.[6][9] Karena Wikipedia adalah salah satu situs web terbesar di dunia, mencapai skalabilitas melalui beberapa lapisan caching dan replikasi basis data telah menjadi perhatian utama bagi pengembang, aspek utama lain dari MediaWiki adalah dengan internasionalisasinya; dan antarmukanya tersedia dalam lebih dari 300 bahasa.[10] Perangkat lunak ini memiliki lebih dari 1.000 pengaturan konfigurasi[11] dan lebih dari 1.800 ekstensi tersedia untuk memungkinkan berbagai fitur ditambahkan atau diubah.[12]
Selain digunakan di situs Wikimedia, MediaWiki telah digunakan sebagai manajemen pengetahuan dan sistem manajemen konten di ribuan situs web, publik dan pribadi, termasuk situs web Fandom, WikiHow, dan instalasi internal utama seperti Intellipedia dan Diplopedia.
Lisensi
MediaWiki merupakan perangkat lunak bebas dan sumber terbuka dan didistribusikan di bawah persyaratan GNU General Public License versi 2 atau versi yang lebih baru. Dokumentasinya, terletak di www.mediawiki.org, dirilis di bawah lisensi Creative Commons BY-SA 3.0 dan sebagian berada di domain publik.[13] Secara khusus, konten di MediaWiki.org berlisensi Creative Commons, sedangkan kumpulan halaman bantuan yang dimaksudkan untuk disalin secara bebas ke dalam instalasi wiki baru dan/atau didistribusikan dengan perangkat lunak MediaWiki adalah domain publik. Hal ini dilakukan untuk menghilangkan masalah hukum yang timbul dari halaman bantuan yang diimpor ke wiki dengan lisensi yang tidak sesuai dengan lisensi Creative Commons.[14] Pengembangan MediaWiki sendiri umumnya lebih menyukai penggunaan format media sumber terbuka.[15]
Perkembangan
MediaWiki memiliki komunitas sukarelawan yang aktif untuk pengembangan dan pemeliharaan. Pengguna yang telah memberikan kontribusi berarti mengirimkan tambalan pada proyek (umumnya), atas permintaan, diberikan akses untuk melakukan revisi pada repositori Git/Gerrit.[16]
Ada juga pemrogram berbayar yang bertujuan terutama mengembangkan proyek untuk Wikimedia Foundation. Pengembang MediaWiki berpartisipasi dalam Google Summer of Code dengan memfasilitasi penugasan mentor kepada murid yang ingin mengerjakan proyek inti dan ekstensi MediaWiki.[17]
Selama bertahun-tahun sebelum November 2012, ada sekitar dua ratus pengembang yang telah melakukan perubahan pada inti atau ekstensi MediaWiki.[18]
Rilis utama MediaWiki dihasilkan kira-kira setiap 6 bulan dengan mengambil snapshot dari cabang pengembangan, yang disimpan terus menerus dalam keadaan dapat dijalankan;[19] seperti memperbaiki bug (terutama untuk masalah keamanan).
MediaWiki dikembangkan pada model pengembangan integrasi berkelanjutan, di mana perubahan perangkat lunak didorong langsung ke situs Wikimedia secara teratur.[19]
MediaWiki juga memiliki pelacak bug publik, seperti phabricator.wikimedia.org, yang menjalankan Phabricator. Situs ini juga digunakan untuk permintaan fitur dan peningkatan.
Sejarah
Ketika Wikipedia diluncurkan pada Januari2001, Wikipedia berjalan pada sistem perangkat lunak wiki yang ada, UseModWiki. UseModWiki ditulis dalam bahasa pemrograman Perl, dan menyimpan semua halaman wiki dalam berkas teks (.txt). Perangkat lunak ini segera terbukti membatasi dengan baik dalam fungsi maupun kinerja. Pada pertengahan 2001, Magnus Manske — pengembang dan mahasiswa di Universitas Cologne, serta editor Wikipedia — mulai mengerjakan perangkat lunak baru yang akan menggantikan UseModWiki, yang dirancang khusus untuk digunakan oleh Wikipedia. Perangkat lunak ini ditulis dalam bahasa skrip PHP, dan menyimpan semua informasinya dalam basis data mesin MySQL. Perangkat lunak baru sebagian besar dikembangkan pada 24 Agustus 2001, dan wiki uji untuk itu didirikan segera sesudahnya.
Implementasi penuh pertama dari perangkat lunak ini adalah Meta-Wikipedia yang baru pada tanggal 9 November 2001. Ada keinginan untuk menerapkannya segera di Wikipedia bahasa Inggris,[20] namun, Manske khawatir tentang potensi bug yang membahayakan situs web yang baru lahir. Selama masa ujian akhir yang harus ia selesaikan segera sebelum Natal;[21] Hal ini menyebabkan peluncuran Wikipedia bahasa Inggris ditunda hingga 25 Januari 2002. Perangkat lunak itu kemudian, secara bertahap, digunakan di semua situs bahasa Wikipedia pada waktu itu. Perangkat lunak ini disebut sebagai "skrip PHP" dan sebagai "fase II", dengan nama "fase I", secara surut diberikan pada penggunaan UseModWiki.
Peningkatan penggunaan segera menyebabkan masalah muncul lagi, dan segera setelah itu, perbaikan ulang perangkat lunak lainnya dimulai; kali ini dilakukan oleh Lee Daniel Crocker, yang kemudian dikenal sebagai "fase III". Perangkat lunak baru ini juga ditulis dalam PHP, dengan back-end dari MySQL, dan mempertahankan antarmuka dasar perangkat lunak fase II, tetapi dengan fungsionalitas tambahan skalabilitas yang lebih luas. Perangkat lunak "fase III" ditayangkan di Wikipedia pada Juli 2002.
Yayasan Wikimedia diumumkan pada 20 Juni 2003. Pada bulan Juli, kontributor Wikipedia, Daniel Mayer, mengusulkan nama "MediaWiki" untuk perangkat lunak, sebagai plesetan dari "Wikimedia".[22] Nama MediaWiki secara bertahap dihapus, dimulai pada Agustus 2003. Nama tersebut sering menimbulkan kebingungan karena (disengajakan) mirip dengan nama "Wikimedia" (yang mirip dengan "Wikipedia").[23]
logo lama dibuat oleh Erik Möller, menggunakan foto bunga yang diambil oleh Florence Nibart-Devouard, dan awalnya diajukan ke kontes logo untuk logo Wikipedia yang baru, yang diadakan dari 20 Juli hingga 27 Agustus 2003.[24][25] Logo tersebut berada di juara ketiga, dan dipilih untuk mewakili MediaWiki dibandingkan Wikipedia, dengan logo juara kedua digunakan untuk Wikimedia Foundation.[26] Tanda kurung siku ganda ([[ ]]) melambangkan sintaks yang digunakan MediaWiki untuk membuat pranala ke halaman wiki lain; sedangkan bunga matahari mewakili keragaman konten di Wikipedia, dan pertumbuhan konstan.[27]
Kemudian, Brion Vibber, seorang CTO dari Yayasan Wikimedia,[28] mengambil peran sebagai Release Manager, dan yang paling aktif sebagai pemrogram.[5][29]
Tonggak utama dalam pengembangan MediaWiki termasuk: sistem kategorisasi (2004); fungsi pengurai, (2006); penandaan revisi, (2008);[30] "ResourceLoader", sebuah sistem pengiriman untuk CSS dan JavaScript (2011);[31] dan VisualEditor, platform penyuntingan dari "apa yang Anda lihat adalah apa yang Anda dapatkan" (WYSIWYG) (2013)[32]
Kontes mendesain logo baru dimulai pada 22 Juni 2020, karena logo yang lama memiliki gambar bitmap dan memiliki "detail tinggi", yang menyebabkan masalah saat rendering pada resolusi tinggi dan rendah. Setelah dua putaran pemungutan suara, logo MediaWiki baru dan saat ini yang dirancang oleh Serhio Magpie dipilih pada 24 Oktober 2020 dan secara resmi diadopsi pada 1 April 2021.[33]
Penggunaan MediaWiki yang paling terkenal adalah di Wikipedia dan, pada tingkat yang lebih rendah, proyek-proyek Yayasan Wikimedia lainnya. Fandom, ladang wiki yang sebelumnya dikenal sebagai Wikia, berjalan di MediaWiki. Wiki publik lainnya yang berjalan di MediaWiki termasuk wikiHow dan SNPedia. WikiLeaks dimulai sebagai situs berbasis MediaWiki, tetapi bukan lagi sebuah wiki.
MediaWiki dapat menggunakan sistem manajemen basis data relasionalMySQL/MariaDB, PostgreSQL atau SQLite. Dukungan untuk basis data Oracle dan Microsoft SQL Server telah dihentikan sejak MediaWiki 1.34.[38] Basis data MediaWiki berisi beberapa lusin tabel, termasuk tabel halaman, tabel yang berisi judul halaman, id halaman, dan metadata lainnya;[39] dan tabel revisi memegang metadata untuk setiap penyuntingan dilakukan untuk halaman dalam wiki. Setiap penyuntingan halaman membuat baris revisi, yang menyimpan informasi seperti pengguna yang melakukan penyuntingan, dan waktu penyuntingan dilakukan.[40][41]
Dalam periode 4½ tahun, basis sata MediaWiki memiliki 170 versi skema.[42] Mungkin, perubahan skema terbesar dilakukan di MediaWiki 1.5, ketika penyimpanan metadata dipisahkan dari konten, untuk meningkatkan fleksibilitas kinerja. Ketika pemutakhiran ini diterapkan ke Wikipedia, situs itu dikunci untuk disunting, dan skema diubah ke versi baru dalam waktu sekitar 22 jam. Beberapa proposal untuk peningkatan perangkat lunak, seperti proposal yang mengizinkan bagian artikel dilihat melalui daftar pantauan, telah ditolak karena perubahan skema yang diperlukan akan memerlukan waktu henti Wikipedia yang terlalu banyak.[43]
Keamanan
Pengembang MediaWiki telah memberlakukan standar keamanan, baik untuk kode inti maupun ekstensi.[44] SQL dan produksi HTML biasanya dilakukan melalui fungsi pembungkus yang menangani validasi, pelolosan, pemfilteran untuk pencegahan XSS dan injeksi SQL.[45] Banyak masalah keamanan harus ditambal setelah perilisan versi MediaWiki,[46] dan karenanya MediaWiki.org menyatakan, "Langkah keamanan terpenting yang dapat Anda ambil adalah menjaga perangkat lunak Anda tetap mutakhir" dengan berlangganan pengumuman listserv dan menginstal pembaruan keamanan yang diumumkan.[47]
Komunitas pengembang
Pengembang MediaWiki tersebar di seluruh dunia, meskipun dengan mayoritas di Amerika Serikat dan Eropa. Pertemuan tatap muka dan sesi pemrograman untuk pengembang MediaWiki telah diadakan sekali atau beberapa kali dalam setahun sejak 2004.[48]
^"Copyright". mediawiki.org. Diarsipkan dari versi asli tanggal 19 September, 2015. Diakses tanggal 7 September, 2015.Parameter |url-status= yang tidak diketahui akan diabaikan (bantuan); Periksa nilai tanggal di: |access-date=, |archive-date= (bantuan)
^"Names.php · mediawiki". github.com. 8 April 2021. Diakses tanggal 19 Mei 2021.Parameter |url-status= yang tidak diketahui akan diabaikan (bantuan)
^ ab"MediaWiki history". MediaWiki website. Diarsipkan dari versi asli tanggal 17 Oktober, 2020. Diakses tanggal 2013-08-04.Parameter |url-status= yang tidak diketahui akan diabaikan (bantuan); Periksa nilai tanggal di: |archive-date= (bantuan)
^ ab"What is MediaWiki?" (dalam bahasa Inggris). 9 Januari, 2021. Diakses tanggal 27 Maret, 2021.Periksa nilai tanggal di: |access-date=, |date= (bantuan)
^Kesalahan pengutipan: Tag <ref> tidak sah;
tidak ditemukan teks untuk ref bernama translation statistics
^"Category:MediaWiki configuration settings". MediaWiki. 11 September, 2016. Diarsipkan dari versi asli tanggal 10 November, 2014. Diakses tanggal 2016-09-11.Parameter |url-status= yang tidak diketahui akan diabaikan (bantuan); Periksa nilai tanggal di: |date=, |archive-date= (bantuan)
^"Extension Matrix". MediaWiki. Diarsipkan dari versi asli tanggal 11 September, 2016. Diakses tanggal 2017-09-06.Parameter |url-status= yang tidak diketahui akan diabaikan (bantuan); Periksa nilai tanggal di: |archive-date= (bantuan)
^Rafe Needleman (19 November, 2008), Wikipedia gears up for flood of video and photo files, C-Net, diarsipkan dari versi asli tanggal 6 Agustus, 2009, diakses tanggal 23 April, 2010Parameter |url-status= yang tidak diketahui akan diabaikan (bantuan); Periksa nilai tanggal di: |access-date=, |date=, |archive-date= (bantuan)
^"Development policy". MediaWiki. 19 Juli, 2013. Diarsipkan dari versi asli tanggal 10 Mei, 2017. Diakses tanggal 2013-08-04.Parameter |url-status= yang tidak diketahui akan diabaikan (bantuan); Periksa nilai tanggal di: |date=, |archive-date= (bantuan)
^"Summer of Code". MediaWiki. 26 Maret, 2013. Diarsipkan dari versi asli tanggal 10 Mei, 2017. Diakses tanggal 2013-08-04.Parameter |url-status= yang tidak diketahui akan diabaikan (bantuan); Periksa nilai tanggal di: |date=, |archive-date= (bantuan)
^"Wikimedia". Open Hub. Diarsipkan dari versi asli tanggal 14 September, 2017. Diakses tanggal 2012-11-15.Parameter |url-status= yang tidak diketahui akan diabaikan (bantuan); Periksa nilai tanggal di: |archive-date= (bantuan) Approximate counts (not deduplicated) as of 2012-11-04: 139 for core, 155 for extensions supported by WMF, 190 and 42 for extensions only hosted on WMF's Git and SVN repositories respectively.
^ ab"Version lifecycle". MediaWiki. 5 September, 2018. Diarsipkan dari versi asli tanggal 17 Juni, 2020. Diakses tanggal 2018-10-21.Parameter |url-status= yang tidak diketahui akan diabaikan (bantuan); Periksa nilai tanggal di: |date=, |archive-date= (bantuan)
^Bartlett, Manning (14 November, 2001). "Magnus's new script..."Wikimedia Lists. Wikimedia Foundation. Diarsipkan dari versi asli tanggal 2 Oktober, 2019. Diakses tanggal 2 Oktober, 2019.Parameter |url-status= yang tidak diketahui akan diabaikan (bantuan); Periksa nilai tanggal di: |access-date=, |date=, |archive-date= (bantuan)
^Manske, Magnus (14 November, 2001). "Magnus's new script..."Wikimedia Lists. Wikimedia Foundation. Diarsipkan dari versi asli tanggal 2 Oktober, 2019. Diakses tanggal 2 Oktober, 2019.Parameter |url-status= yang tidak diketahui akan diabaikan (bantuan); Periksa nilai tanggal di: |access-date=, |date=, |archive-date= (bantuan)
^"International logo contest - Meta". meta.wikimedia.org (dalam bahasa Inggris). Diarsipkan dari versi asli tanggal 9 Mei, 2020. Diakses tanggal 2020-04-09.Parameter |url-status= yang tidak diketahui akan diabaikan (bantuan); Periksa nilai tanggal di: |archive-date= (bantuan)
^Wikimedia contributors (January 17, 2007). "Historical/Logo history". Meta-wiki. Wikimedia Foundation. Diarsipkan dari versi asli tanggal 4 November, 2015. Diakses tanggal 2007-03-14.Parameter |url-status= yang tidak diketahui akan diabaikan (bantuan); Periksa nilai tanggal di: |archive-date= (bantuan)
^"Wikipedia and MediaWiki". Presentation MediaWiki development (video). 28 April, 2006. Diarsipkan dari versi asli tanggal 14 April, 2011. Diakses tanggal 2009-09-23.Parameter |url-status= yang tidak diketahui akan diabaikan (bantuan); Periksa nilai tanggal di: |date=, |archive-date= (bantuan)
^M Schindler; D Vrandecic (2009), Introducing new features to Wikipedia, Proceedings of WebSci, diarsipkan dari versi asli tanggal 24 Juni, 2018, diakses tanggal 24 Juni, 2018Parameter |url-status= yang tidak diketahui akan diabaikan (bantuan); Periksa nilai tanggal di: |access-date=, |archive-date= (bantuan)
^"MediaWiki ResourceLoader". Mediawiki.org. Diarsipkan dari versi asli tanggal 8 Maret, 2013. Diakses tanggal 2013-07-06.Parameter |url-status= yang tidak diketahui akan diabaikan (bantuan); Periksa nilai tanggal di: |archive-date= (bantuan)
^"VisualEditor – MediaWiki". MediaWiki. Diarsipkan dari versi asli tanggal 27 September, 2013. Diakses tanggal 15 September, 2013.Parameter |url-status= yang tidak diketahui akan diabaikan (bantuan); Periksa nilai tanggal di: |access-date=, |archive-date= (bantuan)
^A. Maron; M. Maron (2007). "A stealth transformation: introducing wikis to the UN". Knowledge Management for Development Journal. Diarsipkan dari versi asli tanggal 4 Mei, 2011. Diakses tanggal 9 Oktober, 2010.Parameter |url-status= yang tidak diketahui akan diabaikan (bantuan); Periksa nilai tanggal di: |access-date=, |archive-date= (bantuan)
^"LibrePlanet Homepage". Diarsipkan dari versi asli tanggal 18 Maret, 2011. Diakses tanggal 10 Desember, 2018.Parameter |url-status= yang tidak diketahui akan diabaikan (bantuan); Periksa nilai tanggal di: |access-date=, |archive-date= (bantuan)
^"Manual:Page table". MediaWiki. 15 Mei, 2010. Diarsipkan dari versi asli tanggal 25 November, 2014. Diakses tanggal 2010-05-30.Parameter |url-status= yang tidak diketahui akan diabaikan (bantuan); Periksa nilai tanggal di: |date=, |archive-date= (bantuan)
^"Manual:Revision table". MediaWiki. Diarsipkan dari versi asli tanggal 24 November, 2014. Diakses tanggal 2010-05-30.Parameter |url-status= yang tidak diketahui akan diabaikan (bantuan); Periksa nilai tanggal di: |archive-date= (bantuan)
^Ortega, Felipe; González-Barahona, Jesus M.; Robles, Gregorio (2007), The Top-Ten Wikipedias: A Quantitative Analysis Using WikiXRay, CiteSeerX10.1.1.107.1424Periksa nilai tanggal di: |year= (bantuan)
^Curino, Carlo A.; Tanca, Letizia; Zaniolo, Carlo (2008), Information Systems Integration and Evolution: Ontologies at Rescue(PDF), Workshop on Semantic, diarsipkan dari versi asli(PDF) tanggal 22 Desember, 2009, diakses tanggal 23 April, 2010Parameter |url-status= yang tidak diketahui akan diabaikan (bantuan); Periksa nilai tanggal di: |access-date=, |archive-date= (bantuan)
^"Security for developers". MediaWiki. Diarsipkan dari versi asli tanggal 25 November, 2014. Diakses tanggal 2010-05-30.Parameter |url-status= yang tidak diketahui akan diabaikan (bantuan); Periksa nilai tanggal di: |archive-date= (bantuan)
^"News". MediaWiki. Diarsipkan dari versi asli tanggal 6 Oktober, 2014. Diakses tanggal 2010-05-30.Parameter |url-status= yang tidak diketahui akan diabaikan (bantuan); Periksa nilai tanggal di: |archive-date= (bantuan)
^"Manual:Security". MediaWiki. 22 Maret, 2010. Diarsipkan dari versi asli tanggal 10 November, 2014. Diakses tanggal 2010-05-30.Parameter |url-status= yang tidak diketahui akan diabaikan (bantuan); Periksa nilai tanggal di: |date=, |archive-date= (bantuan)
^"Events". Mediawiki.org. Diarsipkan dari versi asli tanggal 27 Desember, 2018. Diakses tanggal 27 Desember, 2018.Parameter |url-status= yang tidak diketahui akan diabaikan (bantuan); Periksa nilai tanggal di: |access-date=, |archive-date= (bantuan)
^MediaWiki User Guide, Wikibooks, diarsipkan dari versi asli tanggal 20 Oktober, 2014, diakses tanggal 20 Oktober, 2014Parameter |url-status= yang tidak diketahui akan diabaikan (bantuan); Periksa nilai tanggal di: |access-date=, |archive-date= (bantuan)