Requests for comment/Distribution and deployment

This page is for organizational purposes of a 2010 Google Summer of Code project with as goal the creation of an extension management platform for MediaWiki. Jeroen De Dauw will be mentored by Brion Vibber on this project.

Project overview
The goal of this project is to create an administration panel from where wiki administrators can update, install and remove extensions. A second goal would be to allow management of the installed extensions.

A panel where wiki administrators can install, update and remove extensions has huge benefits. First of all, people do not have to manually download an extension and put an includes in LocalSettings, neither do they need to worry about compatibility and dependencies. Hitting an update button also takes considerably less time then doing the whole download routine again, and will cause people to run more up to date extensions. Another important advantage is that people will get a list recommended and related extensions, and can easily browse them. This way people can find extensions that do something they wanted but did not know about, and in general will have extensions that better suit their needs. A third advantage is that extension developers do not need to do extreme efforts to let people know there is a new version (and probably still only reach part of the relevant public). The user experience should be as awesome as the Wordpress one, or even better.

The second goal of this project is to add setting management for individual extensions. Currently extension settings are managed via LocalSettings. The aim here is to completely remove the need of editing any file directly by storing the configuration the the MediaWiki database, and creating a GUI to modify these settings. This would involve creating API modules so extensions can add and update their own settings. Another goal is to create a management interface for the wiki's configuration itself. The configure extension does a nice job of this already, so can probably simply be build upon.

Features

 * Automatic checking for extension updates (and updates to MW itself)
 * Download and install option for extension updates
 * Download and install option for extensions that have not yet been installed
 * Removal of installed extensions
 * Dependency and compatibility checking (both for installation, removal and updating)
 * Extension browsing
 * Recommendation of similar extensions
 * Showing a list of most used and most recommended extensions
 * Finding extensions by category or keywords
 * Enabling and disabling of installed extensions (so without removing them)

And possibly...


 * Management of settings specific to each extension.
 * Management of MediaWiki configuration.

TO-DO list



 * Discuss the best way to structure the platform with mentor, and other relevant people.
 * Investigate how similar functionality works with other software, and which aspects of these implementations can be used
 * Extension:Configure
 * Ontoprise deployment framework
 * http://dailywikibuilds.ontoprise.com/repository/
 * http://smwforum.ontoprise.com/websvn/filedetails.php?repname=repos+1&path=/HaloSMWExtension/trunk/deployment/tools/repositories
 * Get the requited knowledge of MW to be able to create the platform in an efficient and modular fashion.
 * Create the panel with the most basic features, then release and document it.
 * Add the other features, possibly spread over several releases.
 * (Start on the extension setting management functionality.)
 * (Start on the MediaWiki configuration management functionality.)
 * (Add other awesome things to the platform.)
 * Take over the worlds and make everyone use this platform.