mediawiki-docker-dev, a history
MediaWiki-Docker-Dev (or MWDD) is a development environment for MediaWiki, based on Docker and docker-compose. It was created back in 2017 at the Wikimedia Hackathon in Vienna where it had a slightly difference feature set and focus. (Original Slides).
Since inception the git repo now has 180 commits from 20 authors over the course of 4 years, of which 7 have been WMF employees and 11 have been WMDE employees, though the project has had no “official” support from either organization. Counting forks we have 12 WMF employees and 16 WMDE employees.
Due to the nature of the project (being setup from a git clone), it is quite hard to figure out how many users it has. We can infer that in the last year, thanks to a custom image that has been required, it has been set up roughly 1200 times, by checking the pull stats of silvanwmde/nginx-proxy
.
Evolution of main
The main
branch is the current release of mwdd, and has seen the most use and development.
- May 2017 – Initial creation, focused on being able to test multiple setups all at once
- Commands: up, down, install, uninstall
- Service Matrix: Proxy, MySql, MariaDB, PHPMyAdmin, php5, php7, hhvm, nginx, apache, statsd
- 15 June 2017 – Lightweight iteration, reduces the containers running
- Services: Proxy, Web, DB, PHPMyAdmin, Graphite-Statsd
- 23 June 2017 – More commands, ease user interactions
- Commands: up, down, start, stop, addsite, addhost, removehosts, phpunit, bash
- December 2017 – MySQL Replication added, Composer cache utilized
- January 2018 – Introduced phpunit-file and logs-tail
- February 2019 – Command names changed to: create, destroy, resume, suspend,
setup
script added - March 2019 –
help
command added - December 2019 –
script
command added - March 2020 – DNS service added
Creation of v1 (unreleased)
In May 2020 after 3 years of continued evolution in its original form I experimented with a second iteration creating the v1 branch, which is unreleased, but I have been using as a daily driver for the past year.
Details of the v1 branch can be found in this blog post which includes a full overview. A quick summary of changes would be:
- Actual CLI interface, instead of bash script
- Fewer startup services (to 4 from 9), for a faster experience, and control over individual services
- More services available: adminer, fresh, quibble, composer
This v1 prototype really showed the potential power of a usable CLI, with included help texts etc instead of the previous pile of bash.
MediaWiki CLI (unreleased)
Shortly after creating the v1 branch in May 2020, and seeing the value in the CLI tool, I created a rough port (see on gerrit) of the CLI interface to golang and the mwcli tool that the WMF Release Engineering team have been working toward.
Over the past year and discussing with multiple stakeholders along the way this initial port has evolved into the new and future version of mwdd.
If you’re interested in giving it a go in it’s unreleased state, take a look at this page.
Otherwise, keep your ear to the ground for a future release!
Thanks to everyone that has participated in this journey so far.
[…] already written a brief history of the tool in a previous post so now I’ll focus on what mediawiki-docker-dev looks like in the mwcli environment for the […]