User:SBassett (WMF)/Explorations/Development Environments

Mediawiki-Vagrant

 * Project page: https://www.mediawiki.org/wiki/MediaWiki-Vagrant
 * Notes
 * Extremely, painfully slow. Can take hours to configure, rebuild, etc.
 * Uses puppet, kind of like Wikimedia production, but isn't configured in the same way as what's under noc.wikimedia.org.
 * I find that when I try to enable maybe 3 or more roles at a time, things often break in a fatal way.
 * Based upon Vagrant and VirtualBox, which have long been showing their age.

Mediawiki-Docker
> Clone MediaWiki core:
 * Project page: https://www.mediawiki.org/wiki/MediaWiki-Docker
 * Notes
 * Newer version of a containerized development environment, ships with MediaWiki Core as of November 2019 or so, so a little after REL1_34.
 * Installation & Usage
 * DEVELOPERS.md has some good step-by-step instructions.
 * There are also additional instructions for setting up additional extensions, skins and other Wikimedia production sorts of things.
 * Installation quick guide (from DEVELOPERS.md):

> Create a  file:

MW_SCRIPT_PATH=/w MW_SERVER=http://localhost:8080 MW_DOCKER_PORT=8080 MEDIAWIKI_USER=Admin MEDIAWIKI_PASSWORD=dockerpass XDEBUG_CONFIG= XDEBUG_ENABLE=true XHPROF_ENABLE=true > Create a  file:

version: '3.7' services: # These lines ensure file ownership is set to your host user/group mediawiki: user: "${MW_DOCKER_UID}:${MW_DOCKER_GID}" # Linux users only: this extra_hosts section is necessary for Xdebug: extra_hosts: - "host.docker.internal:host-gateway" mediawiki-web: user: "${MW_DOCKER_UID}:${MW_DOCKER_GID}" mediawiki-jobrunner: user: "${MW_DOCKER_UID}:${MW_DOCKER_GID}" > Run the following command:

echo "MW_DOCKER_UID=$(id -u) MW_DOCKER_GID=$(id -g)" >> .env > Bring up the containers:

For now, this pulls the following images if you don't already have them: docker-registry.wikimedia.org/dev/stretch-php72-jobrunner:2.0.0 docker-registry.wikimedia.org/dev/stretch-php72-fpm:2.0.0 docker-registry.wikimedia.org/dev/stretch-apache2:1.0.0-s1 > Run composer update:

> Run other commands within the container via cli:

Addshore's Wikidata Docker

 * Project page: https://github.com/addshore/mediawiki-docker-dev
 * Notes
 * A bit more optimized for working with wikidata, Wikibase, WDQS, etc. though I haven't really tried this out extensively.
 * Creates a number of containers including one for the app, dbs (primary & secondary), phpmyadmin, graphite, proxy and redis.
 * Installation & Usage
 * See the README.md

mw-bocker

 * Project page: https://github.com/sbassett29/mw-bocker
 * Notes
 * Some fairly simple  scripts to download and install various MediaWiki releases.
 * Pretty fast, since it's just, and then uses php's internal web server and sqlite for default storage.
 * Good for testing simple changes, with an extension or skin or two. Not good for testing more complex changes, which might be required for Wikimedia production.

patchdemo

 * Project URL: https://patchdemo.wmflabs.org/
 * Project page: https://github.com/MatmaRex/patchdemo
 * Notes
 * Should never be used to test any sensitive or security patches.
 * Requires Wikimedia Oauth login to create patch pulls and test wikis (so you just need a metawiki account and then authorize it)
 * A handy way to test specific gerrit patch sets in a public way.
 * Likely works best to test UI/X-related changes with default settings. Not really optimal for anything where you might need to dig through logs to debug or do more behind-the-scenese things like run maint scripts from the cl, employ specific LS.php configurations, or test more subtle production features.

Wikimedia beta cluster

 * Project URL: metawiki, enwiki, many others...
 * Project page: https://www.mediawiki.org/wiki/Beta_Cluster
 * Notes
 * See: Deploy to Beta Cluster

Wikimedia test production wikipedias

 * Project URL: https://test.wikipedia.org/, https://test2.wikipedia.org/
 * Project page: https://wikitech.wikimedia.org/wiki/Test.wikipedia.org (test2 page linked at bottom)

Other stuff

 * MediaWiki installation guide
 * MediaWiki installation notes
 * Wikimedia Debug