Comparison of distribution options

This is a comparison of different options in distributing MediaWiki, with some pros and cons and notes about extension support for each. There has been some discussion about which distribution strategy we should pick, but I (Legoktm) have come to the conclusion that we should try to support as many as we can do a good job for, and let people use MediaWiki in the way that they prefer.

Pros
Cons
Extension support
  • A set of stable, reviewed, and popular extensions and skins are bundled with the tarball
  • Extensions/skins hosted on Gerrit get individual tarballs via ExtensionDistributor
Pros
  • Officially supported by MediaWiki developers and Wikimedia Release Engineering Team
  • Used by all developers (at least master is)
  • Can cherry-pick bug fixes that don't get backported, or upgrade to changes merged in a release branch but not yet released officially
  • ...
Cons
  • Composer dependencies are not included and must be downloaded separately (via composer or git)
  • Skins are separate and need to be downloaded separately
Extension support
  • Any extension managed in a git repo can be used
  • Tarball bundled extensions are now included as git submodules
Pros
  • Installation command is sudo apt install mediawiki
  • Ensures that all required dependencies are installed properly
  • Present in modern Debian/Ubuntu releases already
  • More likely that users will install optional but recommended PHP extensions/software (e.g. APC, memcache)
  • Package configures logging and sets up a cache directory with correct permissions automatically
Cons
  • Only works on a Debian (or derivative) system
  • Requires root access to install
  • Differs from the normal MediaWiki filesystem layout
Extension support
Pros
  • Used by many developers.
  • Setup on Linux, Mac, or Windows with Docker Compose which is included with Docker.
  • Does not require any additional software or configuration.
Cons
  • Requires some understanding of how Docker works.
  • May need to extend base image or mount the web root to the host machine to be useful.
  • No default configuration for email, so email will not work out of the box.
  • Not always suited for production, as there is currently little visibility/auditability of the content inside the container, making trust of upstream processes of paramount importance
Extension support
Pros
  • Used by many developers
  • Uses puppet for automation, automatically sets up developer environment
  • Supports multiversion, aims to come close to Wikimedia production
  • Supported to deploy to Wikimedia Cloud VPS
Cons
  • Intended for developers, not suitable for production
  • Requires a virtual machine or lxc to work
Extension support
  • Extensions need to have their "roles" committed to the MediaWiki-Vagrant git repository to work