MediaWiki歷史
MediaWiki是最初(自2001到2002年以来)由维基百科社区为维基百科自身(后来是Wikimedia projects|维基媒体项目)编写的自由软件。
第一阶段:UseModWiki
维基百科于2001年1月推出。当时,它主要是一项试验,试图推动Nupedia的内容制作,这是由吉米·威尔士创建的免费内容但同行评审的百科全书。 因为这是一个实验,维基百科最初由[UseMod:UseModWiki UseModWiki]提供支持,这是一个用Perl编写的现有GPL wiki引擎,使用CamelCase并将所有页面存储在单个文本文件中,没有任何更改历史记录。
很快就出现了驼峰并不适合命名百科全书文章。 2001年1月下旬,UseModWiki开发人员和维基百科参与者Clifford Adams为UseModWiki添加了一项新功能:自由链接,例如能够使用特殊语法(双方括号)链接到页面,而不是自动驼峰链接。 几周后,维基百科升级到支持自由链接的新版UseModWiki,并启用了它们。
虽然这个初始阶段不是关于MediaWiki的“本身”,但它提供了一些上下文并表明,即使在MediaWiki创建之前,维基百科也开始塑造支持它的软件的功能。UseModWiki也影响了一些MediaWiki的功能,例如它的标记语言。Nostalgia Wikipedia包含2001年12月维基百科数据库的完整副本,当时维基百科仍在使用UseModWiki。 UseModWiki also influenced some of MediaWiki's features, for example, its markup language. The Nostalgia Wikipedia contains a complete copy of the Wikipedia database from December 2001, when Wikipedia still used UseModWiki.
第二阶段:使用PHP脚本
2001年,维基百科还不是十大网站,这是一个模糊的项目,坐落在Interwebs的黑暗角落,大多数搜索引擎都不知道,并且托管在一台服务器上。尽管如此,性能已经成为一个问题,特别是因为UseModWiki将其内容存储在平面文件数据库中。当时,维基百科在纽约时报、Slashdot或连线的文章后担心“被交通淹没”。
因此,在2001年夏天,维基百科的参与者Magnus Manske(当时的大学生)在空闲时间开始使用专用的维基百科wiki引擎。他的目标是使用数据库驱动的应用程序改善维基百科的性能,并能够开发“通用”维基引擎无法提供的维基百科特有的功能。 用PHP和MySQL支持编写的新引擎简称为PHP脚本、PHP维基、维基百科软件或第二阶段。
PHP脚本于2001年8月上市,9月在SourceForge上共享,并测试到2001年末。由于维基百科由于流量增加而遭遇重复出现的性能问题,英语维基百科最终在1月从UseModWiki切换到PHP脚本2002年创建的其他语言版本也慢慢升级,尽管其中一些版本将由UseModWiki保留,直到2004年。一个名为“User:Conversion script”的自动程序将现有文章的最后版本转换为阶段2格式,Brion Vibber于2002年9月在英语维基百科上部分恢复了之前对UseModWiki历史的修订。
As Wikipedia suffered from recurring performance issues because of increasing traffic, the English language Wikipedia eventually switched from UseModWiki to the PHP script in January 2002. Other language versions also created in 2001 were slowly upgraded, although some of them would stay powered by UseModWiki until 2004. An automated program, called "User:Conversion script", converted the last version of the existing articles to the phase II format; Brooke Vibber partly restored previous revisions of the UseModWiki history on the English Wikipedia in September 2002.
作为使用MySQL数据库的PHP软件,PHP脚本是后来成为MediaWiki的第一次迭代。它还介绍了当今仍在使用的许多关键功能,例如命名空间来组织内容(包括讨论页),皮肤和特殊页面(包括维护报告,贡献列表和用户监视列表)。 It also introduced many critical features still in use today, like namespaces to organize content (including talk pages), skins, and special pages (including maintenance reports, a contributions list, and a user watchlist).
The last version of the Phase II branch is available in SVN (see r1289).
It can also be obtained from the Sourceforge CVS repository using this command:
cvs -z3 -d:pserver:anonymous@a.cvs.sourceforge.net:/cvsroot/wikipedia co -P phpwiki
第三阶段:MediaWiki
尽管PHP脚本和数据库后端有所改进,但增加的流量、昂贵的功能和有限的硬件的组合继续导致维基百科上的性能问题。2002年,Lee Daniel Crocker重新编写代码,称新软件为Phase III。由于该网站经常遇到困难,他认为没有多少时间坐下来正确设计和开发解决方案,所以他只是重新组织了现有的架构以获得更好的性能并且破解了所有代码。添加了性能分析功能以跟踪慢速功能。
In 2002, Lee Daniel Crocker rewrote the code again, calling the new software "Phase III". Because the site was experiencing frequent difficulties, Lee thought there "wasn't much time to sit down and properly architect and develop a solution", so he "just reorganized the existing architecture for better performance and hacked all the code". Profiling features were added to track down slow functions.
Phase III软件保持相同的基本界面,其设计外观和行为尽可能与Phase II软件相同。还添加了一些新功能,例如新文件上传系统,内容更改的并排差异以及跨维基链接。 A few new features were also added, like a new file upload system, side-by-side diffs of content changes, and interwiki links.
它于2002年7月部署到英语维基百科,同时硬件转移到新的(但仍然是单一的)服务器。其他功能是在2002年添加的,如新的维护特殊页面,或“双击编辑”选项。但性能问题很快就会重新出现。例如,在2002年11月,管理员必须暂时禁用“查看计数”和“站点”统计信息,这会导致在每个页面视图上进行两次数据库写入。他们偶尔也会将站点切换到只读模式以维护读者的服务,并在高访问时间期间因桌面锁定问题而禁用昂贵的维护页面。 Other features were added over 2002 like new maintenance special pages or the "edit on double click" option. Performance issues quickly reappeared, though. For example, in November 2002, administrators had to temporarily disable the "view count" and "site" statistics, which were causing two database writes on every page view. They occasionally switched the site to read-only mode to maintain the service for readers and disable expensive maintenance pages during high-access times because of table locking problems.
2003年初,开发人员讨论了他们是否应该在消防无法管理之前从头开始重新设计和重新构建软件,或者继续调整和改进现有的代码库。他们选择后一种解决方案,主要是因为大多数开发人员对代码库非常满意,并且充分相信进一步的迭代改进足以跟上网站的增长。 They chose the latter solution, mostly because most developers were sufficiently happy with the code base and confident that further iterative improvements would be enough to keep up with the site's growth.
大约在同一时间,Brion Vibber有效地接任了该软件的首席开发人员和发布经理。该代码现在由一个庞大且活跃的开发者组维护。 The code is now maintained by a large and active group of 开发人员 .
2003年6月,管理员添加了第二服务器,这是与Web服务器分开的第一个数据库服务器(新机器也是非英语维基百科站点的Web服务器)。两个服务器之间的负载平衡将在那一年晚些时候建立。管理员还启用了一个新的页面缓存系统,该系统使用该文件系统为匿名用户缓存呈现的,可随时输出的页面。 (The new machine was also the web server for non-English Wikipedia sites.) Load-balancing between the two servers would be set up later that year. Admins also enabled a new page caching system that used the filesystem to cache rendered, ready-to-output pages for anonymous users.
2003年6月,吉米威尔士创建了维基媒体基金会,这是一个支持维基百科并管理其基础设施和日常运营的非营利组织。7月,维基百科软件被正式命名为MediaWiki,维基媒体基金会名称为由Daniel Mayer撰写的文字。当时认为聪明的双关语会让几代用户和开发者感到困惑。 The "Wikipedia software" was officially named "MediaWiki" in July, as wordplay by Daniel Mayer on the Wikimedia Foundation's name. What was thought at the time to be a clever pun would confuse generations of users and developers.
7月份添加了新功能,例如自动生成的目录,以及编辑页面部分的功能,两者目前仍在使用。名为MediaWiki的第一个版本发生在2003年8月,结束了一个应用程序的长期起源,其整体结构从那时起将保持相当稳定。 The first release under the name "MediaWiki" happened in August 2003, concluding the long genesis of an application whose overall structure would remain fairly stable from there on.
目前没有关于软件第四阶段的计划。相反,MediaWiki开发现在采用较小的步骤:参见路线图。 MediaWiki development has been happening incrementally and continuously for more than two decades now (see 发行版本说明 ). This is likely to continue long into the future!
實習生和志願者
一旦达到第三阶段,由于许多志愿者开发人员,MediaWiki的成长爆发,这是MediaWiki存在的原因。志愿者开发者所做的一些值得注意的例子如下(包括那些志愿者工作非常有帮助,以后他们被聘请专业从事MediaWiki工作的开发者)。 Here are some notable examples of their work. Some were later hired to work on MediaWiki professionally.
MediaWiki软件
- 原始MediaWiki软件:Magnus Manske和Lee Daniel Crocker
- 维基表:Magnus Manske
- 名字空间:?
- 模板:Tim Starling(MW 1.2)
- 模板和MediaWiki名称空间:Erik Möller和Tim Starling(MW 1.3)
- MonoBook皮肤:Gabriel Wicke,带设计文档和质量用户评论(MW 1.3)
- 分类:? (MW 1.4)
- Wiki tables: Magnus Manske
- Namespaces: ?
- Templates: Tim Starling (MW 1.2)
- Template and MediaWiki namespace: Erik Möller and Tim Starling (MW 1.3)
- MonoBook skin: Gabriel Wicke, with a design document and a mass of user comments (MW 1.3)
- Categories: ? (MW 1.4)
阅读
- 目录:Erik Möller
编辑
- 章节编辑:Erik Möller
- 监视列表:?
參考資料
- translatewiki.net上的日常更新:Nikerabbit、Siebrand和Raymond(2007年起),包括LocalisationUpdate扩展
- 承诺或启用各种l10n:Nikerabbit、Brion Vibber、Rob Church、Ævar Arnfjörð Bjarmason、Rotem Liss和Hashar
- 其他l10n/i18n:Huji、Collinj、JeLuF、Reedy、Simetrical和IAlex
- Committing or enabling all sorts of l10n – Nikerabbit, Brooke Vibber, Rob Church, Ævar Arnfjörð Bjarmason, Rotem Liss, Hashar
- Other l10n/i18n – Huji, Collinj, JeLuF, Reedy, Simetrical, IAlex
多媒體
- MediaWiki核心上传基础设施:Bryan
- VipsScaler:Bryan
维基文库工具
- Wikisource:WSexport:Tpt
- ProofreadPage:ThomasV(创建者)和Tpt(当前维护者)
- ProofreadPage - ThomasV (creator) and Tpt (current maintainer)
其他擴充功能
维基媒体基金会wiki上使用的MediaWiki扩展最初由志愿者创建和/或维护:
- Extension:分类树
- Extension:用户查核
- Extension:Global Usage
- Extension:Interwiki
- 扩展:大量信息
- Extension:大量删除
- Extension:Renameuser
- Extension:SiteMatrix
- Extension:翻译
- Extension:巴別
- 擴展:CharInsert
- Extension:EasyTimeline
- Extension:输入框
- Extension:LabeledSectionTransclusion
- 扩展:Poem
- Extension:RSS feed
- Extension:WikiHiero
- Extension:SpamBlacklist
- Extension:cldr
- Extension:樂譜
And many widely used extensions for non-Wikimedia wikis, like:
- Most of Semantic MediaWiki – many contributors
- ConfirmEdit's most used and useful module, QuestyCaptcha – Emufarmers
- ConfirmAccount
- ...
参见
- Extremely short highlights of recent releases: Manual:Upgrading#Why upgrade?
- 原则 and w:MediaWiki for context