Hi all
I have written an experimental installer for extensions. It's in SVN,
maintenance/installExtension.php; It would be great if you would try it,
and give some feedback. I hope this will make life much easier for users.
Basically, it fetches the files, places them in the extension dir, and
optionally patches LocalSettings.php (if the user chooses that option
and the extension provides an install.settings patch file). The
CategoryTree extension has such a file, if you want to try the patching
feature.
Extensions can be fetched from local tgz files or directories, from
remote tgz files, or from a SVN path. The installer looks up extensions
in "repositories", which are directories containing tgz files or
subdirectories.
Per default,
http://svn.wikimedia.org/svnroot/mediawiki/trunk/extensions
is used as the repository (in svn mode), unless MediaWiki was checked
out via SVN - in that case, the SVN path given in .svn/entries is used.
For testing, I have set up a tgz based repository at
<http://tools.wikimedia.de/~daniel/repository/extensions/>. It has a tgz
for each subdirectory in the extensions module. Note that extensions
that do not have their own subdirectory are not supported.
Caveats: Custom install scripts (for example to patch the database) are
not yet supported. This needs some more thought I guess. The ability to
uninstall or deactivate extensions could be added - not sure how helpful
that would be. The present script will also not work on Windows, because
it relies on things like tar.
The installer is currently intended for use from the command line. A web
interface would raise security concerns - perhaps it could be made part
of the original installation procedure, though.
I wrote the installer in a manner that does not require changes to
extensions or the way they are loaded. On the long run, it would
probably be nicer to be able to hook up extensions without messing with
LocalSetttings.php - although I'm not sure how to do that in a clean and
at the same time flexible way. We should talk about how to do that, too,
in time, but please keep that separate from talk about the present
installer.
Any input would be appreciated
-- Daniel
--
Homepage:
http://brightbyte.de