Requests for comment/Distribution and deployment

This page serves as an overview for the effort to create a deployment system for MediaWiki. This started off as a 2010 Google Summer of Code project with as goal the creation of an extension management platform for MediaWiki, where Jeroen De Dauw was mentored by Brion Vibber. The idea's are being implemented in the Deployment and Distribution extensions.

Project goal
The goal of this awesome project is to create a set user friendly administration interfaces via which administrators can manage their wiki and extensions. The user experience should be as awesome as the Wordpress one, or even better. For this a package management system is needed.

I deny having any plans for using the deployment platform to install SEMANTIC MediaWiki on all MediaWiki installations and take over the world.

Planned architecture
A rough draft of how I see the structure of the end product, and where the code is coming from:



Legend:


 * Striped lines: Existing components where code will be copied from, or based upon.
 * Full lines: Components of the complete deployment model.
 * Thick full lines: Core components (of the deployment model) that I definitely want to have completed in GSoC.

Roadmap
I'm now working on creating an extension that will serve as a deployment repository on mediawiki.org, called Distribution. The idea is to first create a very simple version (not much time left in GSoC) that gets info via scripts going through the svn repo. Although this gets us only very basic deployment functionality, this will be a big win in installing extensions, and serve as a proof of concept.

After (and probably during) that, I'll work on the Deployment extension, to use the api provided by Distribution. After that the web interfaces (special pages) can be created, although this will definitely be for after GSoC.

Configuration
I have done some investigating into the deployment part of the project, but have come to realize I won't have time for this if I want to do a good job on the deployment part. I will probably publish a summary of my findings, and how I think things should progress here at the end of my project.