User:DanielRenfro/ExtensionRepo

These are Daniel's notes about implementing a package management system for extensions — ExtensionRepo.

Things I need to review

 * Package management in general
 * The pros and cons of each package management system

Requirements

 * 1) don't break the current extensions
 * 2) incentivize (with features) switching to the new system
 * 3) dependency resolution
 * 4) rigorous security and error-checking
 * 5) Tools:
 * 6) * command-line tools
 * 7) * GUI/web-interface
 * 8) (automated) tests for compatibility
 * 9) logging
 * 10) permissions (possibly a new role, group, etc.)

Ideas

 * one-click installation
 * an extension that turns a mediawiki instance into a repository for extensions
 * one extension to rule them all!
 * hosting extensions
 * a better Special:Version section
 * feedback on extensions in the form of
 * ratings (1-5 stars?!)
 * comments
 * ability to fork w/link to source code (github or tarball or other)
 * keyword search

Parts

 * Code to be added to core (eventually) that will handle extensions
 * An extension that turns a Mediawiki instance into a repository
 * MW does everything else, why not have it host it's own extensions?!

Actions
The commands that a client will request and that the server/repository should handle.

Backend / Server
This code will turn Mediawiki into a repository for other extensions.

Frontend
This will (hopefully) be the godsend extension we are all looking for. It will handle all the extensions for a mediawiki instance.

Each extension should have a registration file of some type.

Extension table
A table for all installed extensions. int          id varchar   name smallint version_major smallint version_minor smallint version_revision smallint version_build varchar  url varchar  repository