版本生命周期
| MediaWiki |
|---|
|
| 所有版本 |
| 版本生命周期 |
MediaWiki以持续集成的开发模式在運作,其中的软件變更会定期推送到维基媒体网站上,例如维基百科。
理论上,新的主要版本每六個月會发佈一次,且这些发佈的分支将会在首次发佈後继续获得安全补丁長達一年。然而,由于时间限制且程式碼庫的快速重構,我們無法無限期支援過時的版本,且安全更新與重大更新將不再套用在已達產品生命結束的版本之上。
发佈管理员强烈建议维基运行者订阅 mediawiki-announce 邮件列表,這可以收到所有版本发佈的通知、然後可能地確保他们的维基儘运行在最新版本的软件。这些公告也会发佈在 mediawiki-l 和 wikitech-l 邮件列表。
版本与对应的產品生命結束(EOL)
| 版本 | 状态 | 发布日 | 產品生命結束 |
|---|---|---|---|
| 1.46.x | 未来的版本 | ||
| 1.45.x | 当前的稳定版本 | ||
| 1.44.x | 旧版稳定版本 | ||
| 1.43.x (LTS) | 旧版稳定版和当前的长期支持的版本 | ||
| 1.42.x | 不再支持的旧版本 | ||
| 1.41.x | 不再支持的旧版本 | ||
| 1.40.x | 不再支持的旧版本 | ||
| 1.39.x (LTS) | 不再支持的长期支持版本 | ||
| 1.38.x | 不再支持的旧版本 |
上表中標記為已廢棄的版本以及從未被列出的版本,將不再獲得任何安全性修補程式。 这也包括了所有比已列出的最旧版本还要旧的版本。 这些版本可能存在严重安全漏洞和重大程序错误,包括潜在的数据丢失风险和/或崩溃。 发佈管理者强烈建议在生产环境中只使用上表列出当前的“stable version”(稳定版本)、“legacy version”(仍受支持的旧版本)、或“LTS”(长期支持版本)。

- 預覽版本(alpha)
- 開發版本(自分支起)
- 穩定版本
- 長期支持版本
发行方针
- 每个小数点版本包含更新的翻译文件和错误修复。 新功能将不会被反向移植到小数点版本,并且支持一般来说不包括捆绑扩展和皮肤。
- 每6个月将发佈一次主要版本。
- 每季度将发佈一次次要版本,其中包括了安全补丁、向后移植的消息翻译、和一般错误修复。
- 每两年发佈一次长期支持版本(LTS)。在LTS支持中将会有一年的交错。例如1.23版曾获支持至2017年5月,而1.27版在那一年之前发佈,这样人们将有一年的时间从旧的LTS版本过渡到新版本。
- 發行說明將繼續作為識別變更的主要來源。由於本專案是由志願者驅動的本質,因此無法確切預知未來6至12個月內『將會』發生的變動。
发行日程
此时间表是在发布新版本之前需要执行的计划。实际发布的日期在这里给出为T(发布的时间)和后缀-#(表示发布前的周数)。
| 相关计划 | 任务 |
|---|---|
| T - 7 | 宣布将在一周内创建发布分支。要求人们确保在此之前合并完成正在进行的功能所需的任何内容。在Phabricator中创建“MW-X.XX-release”。 |
| T - 6 | 在Gerrit中新建核心与所有扩展的分支。 |
| T - 5 | 应用X.XX-rc.0标记并释放初始候选版本。 |
| T - 4 | 收集所有问题报告并在邮件列表中汇总。 |
| T - 3 | 应用X.XX-rc.1标记并释放第二个候选版本。此时,任何建议添加到tarball的新扩展都应该在其中。 在这以后不接受扩展功能更改。 |
| T - 2 | 收集任何新的错误报告,合并修复程序,退出意外包含的新的,不完整的功能,应用X.XX-rc.2标记并发布第三个候选版本。 |
| T - 1 | 重复上一步,使用X.XX-rc.final进行标记和发布。 在这之后不接受任何回退移植。 |
| T | 用X.XX标记这个软件并发布。 |
扩展的生命周期管理
大多数MediaWiki安装包含大量扩展(维基媒体wiki通常有大约140个)。 在HEAD开发版本依赖于稳定或旧稳定的MediaWiki核心中尚未提供的功能的情况下,管理扩展的维护错误修复并选择正确版本的扩展往往是項艱鉅的挑戰。
因此,强烈建议扩展的维护者为每个与MediaWiki版本相对应的扩展版本,都维护一个git分支。
(有关详细信息,请参阅兼容性#MediaWiki扩展和皮肤。)
对于在维基媒体的git仓库中托管的扩展,当新的MediaWiki版本被分支时(始终假设扩展的master分支与之兼容),这些分支(名称如MediaWiki 1.30的REL1_30)将自动从master创建)。
但是,扩展维护者最好不仅修复HEAD中的错误,还修复旧版本和稳定版本中的错误(如果需要,将修复程序反向移植到旧分支)。
这些规则的目标是安装MediaWiki的人或组织可以简单的安装最新版本和与之匹配的扩展。例如,在git中指定REL1_20来拉取1.20.x版本的核心程序。
同时避免了使用不相关且名称不确定的压缩文档。
参见
- MediaWiki的兼容性信息,其中PHP和MySQL最为重要
- 稳定接口方针
- WikiApiary上的Generators页面——关于不同版本MediaWiki的使用统计信息。