Hi all,
while MediaWiki has been and is developed primarily with Wikimedia
Foundation's interests in mind, there are some big third-party users of
MediaWiki out there; while Wikia and wikiHow are the biggest and most
well-known, they certainly aren't the only ones.
What's common to third-party users of MediaWiki is not just custom
extensions, but sadly core changes, or as they're better known, core hacks
-- unsupported changes to the core of the MediaWiki software. I think that
everyone will agree with me when I say that we will want to reduce the
amount of core hacking by third-parties and instead increase collaboration
with us, the upstream developers of MediaWiki.
Reducing the amount of core hacks is generally a good idea for third
parties, because it will allow them to upgrade to the latest stable version
of MediaWiki easily and things like new hooks can and in many cases are
useful to other users of MediaWiki. For example, the
MakeGlobalVariablesScript hook (
http://www.mediawiki.org/wiki/Manual:Hooks/MakeGlobalVariablesScript) was
originally introduced by Wikia (under the name 'ExtendJSGlobalVars'); in
r38397 I added the hook into core under its current name and right now there
are many extensions using the hook, including ones used by Wikimedia
Foundation sites (see
http://www.mediawiki.org/wiki/Category:MakeGlobalVariablesScript_extensions).
This is a fine example of how a third-party core hack became a part of the
MediaWiki core and thus something useful to other users of MediaWiki,
including the Wikimedia Foundation.
Another factor to take into account is security. According to the Version
lifecycle page on
MediaWiki.org (see
http://www.mediawiki.org/wiki/Version_lifecycle), "The release manager has
also issued a strong recommendation that versions not listed above as
current version or legacy version should not be used in a productive
environment. They may contain critical security vulnerabilities and other
major bugs, including the threat of possible data loss and/or corruption".
For example, wikiHow is running MediaWiki 1.12.0, which was released on 21
March 2008 -- over three years ago. While I'm sure that the wikiHow
developers have applied plenty of the more modern security patches, there's
still a possibility that they may have missed one patch -- and even if not,
MediaWiki 1.12.0 doesn't have all the cool new features that MediaWiki
1.17.0 has. :-)
Essentially I'd like to see all major third-party users contributing code to
the upstream version of MediaWiki and everyone keeping their copies of
MediaWiki on the official MediaWiki Subversion repository at
svn.wikimedia.org. Maybe we could have a branch for each third party under
/mediawiki/branches/ or if that's unacceptable, then maybe even a whole new
repository (like how we currently have mediawiki, mysql, pywikipedia and
wikimedia -- see
http://svn.wikimedia.org/viewvc), although I must admit
that it sounds a bit overkill to me.
I know from experience that many third parties have written some awesome
code and that there are many other people interested in third-party code,
but usually getting third-party code to run requires plenty of knowledge
about PHP and MediaWiki as the extensions and core changes have usually been
designed to work with one site or one farm. I want to change that and bring
more extensions available to the general public -- after all, there are many
people out there who run a MediaWiki wiki yet they aren't very PHP-savvy.
The official MediaWiki Subversion repository is also well-known and it can
also act as a "backup" of some kind. I'm sure that most people and
companies
have extensive backup systems in place, but everything is still possible.
For example, the social wiki/blog hybrid site ArmchairGM, where the
SocialProfile extension (
http://www.mediawiki.org/wiki/Extension:SocialProfile) and many other,
equally cool and interesting extensions were developed, had its own
codebase. While the main Wikia codebase has been open source for years, the
ArmchairGM codebase was only recently (1 August 2011) open-sourced with the
kind help of Sean Colombo -- and for a rather long while, it seemed that
ArmchairGM's unique skin and the unique extensions had been lost; now that
would've been a major loss for the open source community. Tens of thousands
of lines of code, dozens of unique features and some pretty skins were
nearly lost; I think that it's in everyone's best interest to prevent such
incidents from happening and that is possible by keeping the code free and
open.
I've CC'd this message to Sean Colombo of Wikia, Jack Herrick and Reuben
Smith of wikiHow, Joachim Bode of Twoonix Software GmbH and Markus Glaser of
Hallo Welt! -- please let me know your thoughts about this idea and how your
company would be able to contribute.
Thanks and regards,
--
Jack Phoenix
MediaWiki developer