MediaWiki 1.33.0 已于7月2日发行

MediaWiki 1.33版本是目前最新的版本,计划将支持到2020年1月。1.33.0已于7月2日发行。

下载地址

https://www.mediawiki.org/wiki/Download

一些升级到1.33需要注意的事项

  • 在运行update.php(或refreshExternallinksIndex.php)之前,某些外部链接的搜索将无法正常工作。包括使用IP地址、域名以及可能的mailto链接来搜索链接。
  • 如果您使用老版本的MediaWiki运行migrateActors.php并想要在您的维基上设置$wgActorTableSchemaMigrationStage = SCHEMA_COMPAT_READ_OLD,需要注意的是根据目标用户查找修订版本删除所需的log_search列被错误地删除。有关详细信息,请参阅T215464
  • 如果您在设置$wgActorTableSchemaMigrationStageSCHEMA_COMPAT_WRITE_BOTH且没有运行migrateActors.php的情况下执行了修订版本删除则log_search表可能会包含“target_author_actor”字段为空的行。这将阻止目标用户查找相关的修订版本删除日志。这可以通过重新运行migrateActors.php来修复这些行。

系统管理员感兴趣的修改

新的配置变量

  • $wgEnablePartialBlocks – 这将启用局部封禁功能,拥有封禁权限的用户可以阻止单个用户、IP、IP段编辑特定页面,同时允许他们编辑维基的其它页面。它是逐步启用的临时配置变量,当前默认为“false”,未来版本里将设置为“true”,然后在初始开发完成后删除。

修改的配置变量

  • $wgChangeTagsSchemaMigrationStage (T193868) – 这是临时配置,于1.32版本引入。现在值为MIGRATION_NEW代替MIGRATION_WRITE_BOTH
  • $wgPasswordPolicy – 有一个新的密码策略来检查帐户的密码是否在大黑名单中。对于内置用户组行政员、管理员、界面管理员和机器人,默认情况下启用此功能。要为其它用户组配置此项,请将“PasswordNotInLargeBlacklist”标志设置为“true”。
  • $wgPasswordDefault – 添加了一个新的密码类型配置,Argon2密码散列(需要PHP 7.2及更高版本)。它旨在防御时间攻击,并且(在PHP 7.3+的系统上)GPU黑客攻击;如果要使用argon2,默认情况下,它将根据您的PHP版本自动选择最佳可用算法。要使用它,你可以设置$wgPasswordDefault = 'argon2';。
  • $wgActorTableSchemaMigrationStage现在默认读取新的数据库模式。update.php由于更改的配置而反向填充新的数据库字段,在大型维基上这可能需要一些时间。您可以按照T188327中描述的流程来避免停机。

移除的配置变量

  • $wgTagStatisticsNewTable (T199334) – 这是一个临时配置变量,于1.32版本引入,在这个版本被移除。当加载[[Special:Tags]]时,MediaWiki将始终使用“change_tag_def”表作为“change_tag”的代替。
  • $wgUseTidy$wgTidyBin$wgTidyConf$wgTidyOpts$wgTidyInternal$wgDebugTidy – 这些配置已经在1.26版本弃用,现在已经全部移除,现在MediaWiki会始终净化用户输入。$wgTidyConfig配置仅用于实验性功能和调试,不应使用。
  • $wgEnableParserCache – 这个配置于1.26版本弃用,现在已经移除。如果您仍希望禁用解析器缓存,作为代替您可以设置$wgParserCacheType = CACHE_NONE;
  • $wgCommentTableSchemaMigrationStage – 这个临时迁移配置现在已经移除。应将其视为“MIGRATION_NEW”。
  • $wgAuth – 这个旧配置于1.27版本弃用,现在已经作为已删除的AuthPlugin的一部分移除。
  • $wgSitesCacheFile – 这个配置在1.25版本引入,旨在允许站点配置缓存SiteStore数据库表的文件,但从未使用过。SiteStore默认使用BagOStuff(例如Memcached或APC)缓存其信息。
  • $wgClockSkewFudge – User.php使用此配置让站点调整当尝试减少user.user_touched字段更新到当前时间戳的数量,因为时间戳已经存在(例如由于不同服务器之间的时间偏差)。现在这不再是一个问题,因为代码现在确保时间戳始终高于前一个。使用CAS逻辑(检查和设置)保护写入,这会阻止重叠的更新。
  • $wgDBmysql5 (T196185) – 这是一个实验性配置,于1.31弃用,现在已经移除。

面向用户的新功能

  • (T96041) 在分类页面上放置__EXPECTUNUSEDCATEGORY__魔术字会在[[Special:UnusedCategories]]隐藏该分类。
  • (T210814) 现在SVG默认在图片页面里显示维基的默认语言。
  • 现在[[Special:CreateAccount]]将会警告用户,如果用户选择了一个不标准化的用户名。
  • (T205040) 现在,多语言图像以当前可用的解析语言显示。
  • [[Special:ActiveUsers]]将不再筛选自上次更新活跃用户查询缓存以来变为非活跃状态的用户。
  • (T215675) RecentChange和ManualLogEntry实现了新的Taggable接口。
  • (T215675) 添加了一个Hook,ManualLogEntryBeforePublish,以允许扩展修改(例如:添加标签)日志条目。

本翻译说明的声明

  1. 本MediaWiki中文发行说明非官方翻译,请以原文为主。
  2. 本发行说明翻译自https://github.com/wikimedia/mediawiki/blob/REL1_33/RELEASE-NOTES-1.33,以GPL 2许可证授权。
  3. 本发行说明并未全部翻译原发行说明,只翻译了对网站运维人员来说有用的章节,其它章节对运维可有可无,它们是面对开发者的。
  4. 如翻译有任何问题,欢迎在留言区提出。

MediaWiki 1.32.0 已于1月11日发行

MediaWiki 1.32版本是目前最新的版本,计划将支持到2020年1月。1.32.0已于1月11日发行。

下载地址

https://www.mediawiki.org/wiki/Download

新的配置选项

  • $wgJpegQuality – 现在可以设置JPEG缩略图的质量。默认值是80,等同ImageMagick生成的缩略图。之前GD生成的缩略图质量为95,但现在由这个配置决定生成的缩略图质量。
  • $wgCookieSetOnIpBlock – 这个配置决定了IP用户在被封禁的时候是否设置Cookie,此举意味着被封禁的用户移动到新的IP时,仍然保持封禁
  • $wgRawHtmlMessages – 这个新配置决定了哪些消息可以包含原生HTML。
  • $wgCSPHeader$wgCSPReportOnlyHeader — 您现在可以定义一个适用于您的wiki的“内容安全策略”。这是一个深度防御功能,用于阻止攻击者在发现解析器漏洞的情况下插入恶意属性。默认情况下禁用。(T135963
  • $wgGroupPermissions — 该版本添加了一个新的内建用户组,interface-admin(界面管理员)。该用户组可以编辑全站的JS和CSS并且可以修改其他用户的JS和CSS。默认没有任何其它用户组持有这些权限(editsitecss、editusercss、editsitejs、edituserjs)。
  • $wgGrantPermissions — 新增一个授权组,editsiteconfig,赋予上述权利。
  • $wgDBDefaultGroup — 维护脚本使用的默认数据库组。
  • $wgResourceLoaderEnableJSProfiler — 这个新配置可以让你启用JavaScript模块的客户端分析,它默认是关闭的。
  • (T193868)$wgChangeTagsSchemaMigrationStage — 此临时配置变量允许系统管理员逐步迁移数据库表模式,以了解如何存储更改标记。
  • (T199334)$wgTagStatisticsNewTable — 此临时配置变量允许系统管理员通过新的change_tag_def表缓存Special:Tags。

更改的配置

  • $wgUseAjax — 这个配置变量已于1.31版本中弃用并在本版本中忽略。
  • $wgDefaultUserOptions — 监视列表的默认显示时间从3天增加到7天。(T194414)
  • $wgGroupPermissions — 编辑全站的JS/CSS/JSON所需要的权限已经从“editinterface”拆分到“editsitejs/editsitecss/editsitejson”。但编辑MediaWiki页面仍然需要“editinterface”权限。
  • $wgMultiContentRevisionSchemaMigrationStage — 现在默认同时往旧数据库模式和新数据库模式写入数据,但只从新模式中读数据。所以多内容版本(MCR)默认启用。该配置变量的默认值为“SCHEMA_COMPAT_WRITE_BOTH | SCHEMA_COMPAT_READ_NEW”。
  • $wgActorTableSchemaMigrationStage — 这个配置变量已经不再接受“MIGRATION_WRITE_BOTH or
    MIGRATION_WRITE_NEW
    ”。作为代替,请使用“SCHEMA_COMPAT_WRITE_BOTH | SCHEMA_COMPAT_READ_OLD”和“SCHEMA_COMPAT_WRITE_BOTH | SCHEMA_COMPAT_READ_NEW”。
  • $wgDBTableOptions — 默认表选项现在使用二进制字符集。默认值已在安装程序生成的LocalSettings.php中重写,因此在删除安装程序UI选项后始终设置为二进制字符集。默认值仅在安装程序安装扩展时使用。
  • $wgPopularPasswordFile — 常见密码的存储文件已经移动到非PHP文件用于其它库和类使用。
  • $wgEnableImageWhitelist — 这个配置现在默认被禁用,因为它打开了管理员潜在隐私的泄漏。 您可以在Wiki上查看“MediaWiki:External image whitelist”以查看该功能是否曾被使用过,以及是否需要重新启用该功能。

本版本移除的配置

新的功能

  • (T112474)推广ResourceLoader机制,用于在编辑预览期间使用特定页面覆盖模块。
  • (T12331)您现在可以通过将$wgPageCreationLog设置为true来记录页面创建事件。
  • 新增“ApiParseMakeOutputPage”Hook。
  • (T174313)在Special:ListUsers中添加了“只显示在临时用户组中的用户”的复选框。
  • (T152462)现在可以在阻封禁IP用户时设置一个cookie,以便在用户移动到新IP地址时跟踪该用户。默认情况下禁用此功能
  • (T194950)新增“ApiMaxLagInfo”Hook。
  • SpecialPage::checkLoginSecurityLevel()现在将在重新登录时保留POST数据。
  • FormSpecialPage::execute()现在将在getLoginSecurityLevel()返回非false值时调用checkLoginSecurityLevel()
  • ImageBeforeProduceHTML”Hook现在接受3个参数:$parser&$query&$widthOption,允许扩展可以更好地控制生成的HTML代码。
  • 新增“ArticleShowPatrolFooter”Hook,允许扩展判断是否应在可巡逻页面的页脚显示[标记为已巡逻]链接。
  • 传递给“SpecialSearchPowerBox”Hook的($opts)隐藏选项现在以引用传递,允许扩展修改或者销毁它。
  • 新增“OutputPageAfterGetHeadLinksArray”Hook,允许扩展修改OutputPage::getHeadLinksArray的返回值,以添加、删除或以其他方式更改要在页面中输出的元素。
  • (T28934)“HistoryPageToolLinks”Hook允许扩展将额外的链接附加到历史记录页面的副标题。
  • GetLinkColours”Hook现在接受额外的$title参数。页面的Title对象将会解析为链接显示。
  • DifferenceEngine支持多个插槽。添加SlotDiffRenderer用于在两个Content对象之间呈现差异,并且添加了DifferenceEngine::setRevisions()以在两个自定义(可能是多内容)修订之间呈现差异。添加了“GetSlotDiffRenderer”Hook,其作用类似于“GetDifferenceEngine”的插槽。
  • 现在覆盖了ContentHandler::getUndoContent()的扩展需要更新因为改变了方法签名。
  • 添加了“UserGetRightsRemove”Hook,用于动态删除一个用户所在用户组指定的权限。与“UserGetRights”Hook不同的是,它保证了已被删除的权限不会被重新插入。
  • (T197535)现在扩展可以指定它依赖的PHP版本和PHP扩展。

本翻译说明的声明

  1. 本MediaWiki中文发行说明非官方翻译,请以原文为主。
  2. 本发行说明翻译自https://github.com/wikimedia/mediawiki/blob/REL1_32/RELEASE-NOTES-1.32,以GPL 2许可证授权。
  3. 本发行说明并未全部翻译原发行说明,只翻译了对网站运维人员来说有用的章节,其它章节对运维可有可无,它们是面对开发者的。
  4. 如翻译有任何问题,欢迎在留言区提出。

MediaWiki 1.31已于6月14日发行

MediaWiki 1.31版本是最新的LTS(长期支持版本)版本,计划将支持到2021年6月。1.31已于6月14日发行。

下载地址

https://www.mediawiki.org/wiki/Download

升级至1.31的注意事项

1.31版本包含了很多的兼容性变更,你必须在升级你的MW前检查你的环境已经达到1.31的要求。

PHP 7.0+

从1.31开始,MW要求PHP 7.0以上或者HHVM 3.18.5以上的运行环境。如果你还在用PHP5,则你需要将你的PHP升级到PHP7才可使用1.31。根据从MW使用者上收集的信息,现还有相当大部分的基数使用者PHP5.6。注意您的PHP版本得高于等于7.0。

MySQL 5.5.8+

从1.31开始,MW只支持5.5.8以上的MySQL。如果你运行着之前的版本,则你需要在升级MW前升级MySQL。

升级1.31前需要注意的重要事项

  • 如果您使用的是MySQL、SQLite或MSSQL,并且未使用update.php来应用数据库模式更改,而且没有停机时间来运行migrateArchiveText.php手动应用patch-drop-ar_text.sql。则必须保存一个默认值到archive表的ar_text和ar_flags列,或者在升级到MediaWiki 1.31之前使这些列可以为空。maintenance/archives/patch-nullable-ar_text.sql显示了如何为MySQL执行此操作。

配置变更

  • $wgEnableAPI$wgEnableWriteAPI已于1.31版本弃用并在将来的版本彻底的移除。现在MW的API已经变得很稳定、安全而且必不可少。
  • $wgUsejQueryThree已经被移除,因为已经无须使用jQuery 1。此配置于1.29版本弃用,在迁移到jQuery 3之前,这个配置被作为一个临时变量使用着。
  • $wgLogoHD已经支持svg格式的图片并且有可能使用$wgLogo作为后备图片。
  • 当用户没有权限巡查时,$wgFilterLogTypes将不再忽略“巡查”类型。
  • 如果你的维基包含导入的修订版本或者由CentralAuth扩展提供的全域封禁,则应运行maintenance/cleanupUsersWithNoId.php。
  • $wgResourceLoaderMinifierStatementsOnOwnLine$wgResourceLoaderMinifierMaxLineLength已于1.31版本中被移除(自1.27版本以来弃用)。
  • $wgReferrerPolicy现在支持多个来源地址策略的meta值。
  • $wgFragmentMode现在默认值为[ 'legacy', 'html5' ],这是迁移到人类可读的段落ID的第一步,在未来的版本html5将成为默认值。
  • CACHE_ACCEL现在只支持APC(u)或WinCache。XCache支持已被移除,因为此扩展的开发已不活跃,并且没有计划迁移到PHP 7。
  • CategorizedRecentChanges(包括$wgAllowCategorizedRecentChanges配置变量)已被移除.
  • 由于性能原因,$wgArticleCountMethod的’comma’值不再受支持,并且现在使用此设置将像使用’any’配置一样工作。
  • MediaWiki现在默认使用RemexHtml整理用户输入,而不是默认关闭。如果您希望完全禁用HTML整理,请将$wgTidyConfig设置为null;如果您希望使用已弃用的Tidy外部二进制文件,则将$wgTidyConfig设置为null,将$wgUseTidy设置为true。
  • $wgLogAutopatrol现在默认为false而不是true。
  • $wgValidateAllHtml已经被移除。
  • $wgScriptExtension于1.25版本起被弃用和忽略(见1.25发行说明),现已被移除。
  • $wgUseAjax现在被标记为已弃用,就像它启用已弃用的AJAX框架一样。有些扩展错误地用它来检查是否应该启用任何AJAX功能。
  • 为所有用户添加90次编辑/分钟的默认编辑速率限制。
  • $wgDBmysql5已被弃用,并在未来移除它。这个功能自引入以来就一直标记为实验性功能。

新功能

  • 用户子页面下以.json结尾的页面将会受到和以.js和.css结尾的页面一样的保护。
  • Wikimedia\Rdbms\IDatabase->select()和类似的方法现在支持带括号的分组。
  • 作为标准化MediaWiki产品对话框的第一步,Html类现在为messageBox、successBox、errorBox和warningBox的生成提供了辅助方法。
  • 导入功能现在将未知(和已知)用户名的格式照"iw>Example"显示。
  • 如果wikitext像这样子保存:[[iw:User:Example|iw>Example]],Linker(用于历史页、日志页等等)将会把用户名显示为"iw>Example"作为内部链接。
  • ImportHandleUnknownUser钩子将允许扩展在导入时自动创建用户。
  • 添加一个钩子,ParserOutput::getText(),允许扩展影响ParserOutput::getText()。
  • 添加一个钩子,UploadForm:getInitialPageText,允许扩展改变文件上传的页面。
  • 现在文件信息页的基础信息里显示文件的16进制的SHA-1。
  • 具有’data-mw-deduplicate’属性的样式标签将作为ParserOutput::getText()后缓存转换进行重复数据删除。可以通过把’deduplicateStyles’=> false传递给该方法来禁用此功能。
  • 登录用户或IP“actor”进行记录的操作的身份正在迁移进新的actor表,表中诸如修订和日志的行引用演员的ID而不是将用户ID和名称/IP存储在每一行中。
    • 这当前由$wgActorTableSchemaMigrationStage控制。大多数维基可以将此设置为MIGRATION_NEW,并在更新任何必要的扩展后立即运行maintenance/migrateActors.php。
    • 大多数访问数据库记录动作的代码应使用相关的getQueryInfo()方法来获取构建SQL查询所需的信息。ActorMigration类也可用于获取在迁移期间访问与actor相关的字段所需的功能标记的信息。
  • 添加了Wikimedia\Rdbms\IDatabase::cancelAtomic()方法,可以回滚单个原子节(atomic section),而无需回滚整个事务。
  • Wikimedia\Rdbms\IDatabase::doAtomicSection()、非本地 ::insertSelect()和非MySql的::replace()和::upsert()方法不再在失败的时候回滚整个事务。
  • 向pingback功能添加每月心跳ping。
  • 命令行安装程序(maintenance/install.php)学会检测并包含扩展。通过–with-extensions选项来启用该功能。
  • rc_patrolled现在有三种状态,未巡查的“0”、手动巡查的“1”和自动巡查的“2”
  • 如果扩展提供编辑器或增强编辑体验,现在可以将其扩展类型设置为“编辑器”。
  • 现在扩展可以通过在extension.json中设置“AutoloadNamespaces”属性来使用PSR-4自动加载器。请参阅文档来获取更多信息和实例。
  • 链接到不存在页面的标签(如未创建的讨论页面)现在有一个提示状态的工具提示,而不仅仅是颜色提示。

在1.31修复的Bug

  • 标题ID中的非中断空格会打破定位。
  • CSSMin现在允许url()语法中引用的URL以空格开头。
  • 现在剥离了由分类和语言链接造成的空白,而不是在奇怪的地方留下空白行。
  • 使用UTF-8名称的文件上传现在可以在Windows服务器上的PHP 7.1+环境的上使用。
  • 修复FileRepo::streamFile()ob_end_flush()函数造成的PHP Notice

本翻译说明的声明

  1. 本MediaWiki中文发行说明非官方翻译,请以原文为主。
  2. 本发行说明翻译自https://github.com/wikimedia/mediawiki/blob/REL1_31/RELEASE-NOTES-1.31,以GPL 2许可证授权。
  3. 本发行说明并未全部翻译原发行说明,只翻译了对网站运维人员来说有用的章节,其它章节对运维可有可无,它们是面对开发者的。
  4. 如翻译有任何问题,欢迎在留言区提出。