Project:Development environments

This page coordinates the documentation of MediaWiki development environments on MediaWiki.org.

Cloning MediaWiki core
Requires:
 * git

MediaWiki Docker

 * Docs


 * Setup time
 * ~15 minutes


 * Requires
 * 
 * Docker Desktop (proprietary) or Docker Engine (Linux only)


 * Default stack
 * Apache
 * SQLite
 * jobrunner

mwcli

 * Docs
 * CLI


 * Requires
 * 
 * Docker Desktop (proprietary) or Docker Engine (Linux only)
 * gitlab:releng/cli


 * Default stack
 * Apache
 * Nginx proxy
 * DNS proxy server
 * MySQL

MediaWiki Vagrant

 * Docs
 * MediaWiki-Vagrant


 * Setup time
 * ~20 minutes


 * Requires
 * 
 * VirtualBox
 * Vagrant
 * NFS (Linux)
 * Cloning mediawiki/vagrant


 * Default stack
 * Apache
 * MySQL

Local installation (manual)

 * Docs
 * Manual:Installing MediaWiki


 * Requires
 * 
 * web server
 * PHP
 * database server

[Experimental] Local installation (quickstart)

 * Docs
 * Local development quickstart


 * Requires
 * 
 * PHP
 * Composer


 * Default stack:
 * PHP built-in web server
 * SQLite

Installing a skin
If you clone Vector after installing MediaWiki, you must add  to LocalSettings.php.

If you clone Vector before installing MediaWiki, the install script automatically updates LocalSettings.php.


 * Main off-wiki page for setting up a development environment
 * Only covers MediaWiki-Docker: "an extendable local development environment based on Docker Compose. This environment provides PHP, Apache, Xdebug and a SQLite database"
 * Links to How to become a MediaWiki hacker
 * Not translatable
 * Next steps after setup:
 * Shell into container
 * Run PHPUnit tests
 * Run Selenium tests
 * Run API integration tests
 * Install Vector skin
 * Install EventLogging extension
 * Run Xdebug

How to become a MediaWiki hacker

 * Main on-wiki page for setting up a development environment, via Developer hub
 * Covers how to "learn the basic skills needed to contribute to development"
 * Covers these options:
 * MediaWiki Docker: "setup a MediaWiki installation quickly and are not planning on installing many extensions."
 * mwcli: "sets up Docker with a few simple commands and provides basic orchestration functionality between MediaWiki, MySQL, ElasticSearch, Memcached, and other types of containers"
 * MediaWiki Vagrant: "saves you installation and configuration time compared to manually adding extensions in a Docker or local installation, but it runs a bit slower"
 * Local installation: "will take much more time to set up than Docker or Vagrant"
 * Links to (among others):
 * Manual:How to debug
 * Manual:Unit testing
 * Gerrit/Tutorial

MediaWiki-Docker

 * Subpages
 * Includes extension-specific subpages, such as MediaWiki-Docker/Extension/VisualEditor, which partially duplicates instructions from extension pages, such as Extension:VisualEditor
 * |MediaWiki-Docker/Extension/ContentTranslation|MediaWiki-Docker/Extension/CentralAuth|MediaWiki-Docker/Extension/VisualEditor|MediaWiki-Docker/Extension/WikibaseMediaInfo|MediaWiki-Docker/Extension/Citoid Comparison of pageviews for some extension subpages
 * Instructions for using a database other than SQLite: MediaWiki-Docker/Configuration_recipes/Alternative_databases

Related pages

 * Download
 * Software bundles
 * Manual:System administration
 * Manual:FAQ
 * Comparison of distribution options
 * Template:InstallationNav

Developer Satisfaction Survey/2023/Developer environments

 * "My biggest issue with our dev environments is the fragmentation"
 * Comments about dev environment documentation: negative:6; positive: 0
 * "Ease of use" was the number one priority for dev environments. The most common "other" priority was using a debugger. In contrast, portability was ranked low as a priority.
 * 57 people reported using a Docker-based environment, while 45 people reported using a "self-created environment".