as upstream is inactive and has no plans to move to PHP 7.
* The old CategorizedRecentChanges feature, including its related configuration
option $wgAllowCategorizedRecentChanges, has been removed.
+* (T188472) The 'comma' value for $wgArticleCountMethod is no longer supported for
+ performance reasons, and installations with this setting will now work as if it
+ was configured with 'any'.
=== New features in 1.31 ===
+* (T76554) User sub-pages named ….json are now protected in the same way that ….js
+ and ….css pages are, so that configuration options can safely be placed there.
* Wikimedia\Rdbms\IDatabase->select() and similar methods now support
joins with parentheses for grouping.
* As a first pass in standardizing dialog boxes across the MediaWiki product,
* Style tags with a 'data-mw-deduplicate' attribute will be deduplicated as a
ParserOutput::getText() post-cache transformation. This may be disabled by
passing 'deduplicateStyles' => false to that method.
+* The identity of the logged-in or IP "actor" for logged actions is being moved
+ into a new actor table, with the rows in tables such as revision and logging
+ referring to the actor ID instead of storing the user ID and name/IP in
+ every row.
+ * This is currently gated by $wgActorTableSchemaMigrationStage. Most wikis
+ can set this to MIGRATION_NEW and run maintenance/migrateActors.php as
+ soon as any necessary extensions are updated.
+ * Most code accessing rows for logged actions from the database should use
+ the relevant getQueryInfo() methods to get the information needed to build
+ the SQL query. The ActorMigration class may also be used to get feature-flagged
+ information needed to access actor-related fields during the migration
+ period.
+* Added Wikimedia\Rdbms\IDatabase::cancelAtomic(), to roll back an atomic
+ section without having to roll back the whole transaction.
+* Wikimedia\Rdbms\IDatabase::doAtomicSection(), non-native ::insertSelect(),
+ and non-MySQL ::replace() and ::upsert() no longer roll back the whole
+ transaction on failure.
+* (T189785) Added a monthly heartbeat ping to the pingback feature.
+* The CLI installer (maintenance/install.php) learned to detect and include
+ extensions. Pass --with-extensions to enable that feature.
=== External library changes in 1.31 ===
* Updated wikimedia/wrappedstring from 2.2.0 to 2.3.0.
* Updated mediawiki/at-ease from 1.1.0 to 1.2.0.
* Updated wikimedia/php-session-serializer from 1.0.4 to 1.0.5.
+* Updated wikimedia/remex-html from 1.0.2 to 1.0.3.
* …
==== New external libraries ====
* (T186635) New language support: Guianan Creole (gcr).
* (T186647) New language support: Kumyk [къумукъ] (kum).
* (T187750) New language support: Spanish formal address (es-formal).
+* (T187824) New language support: Hungarian formal address (hu-formal).
=== Other changes in 1.31 ===
+* Browser support for Internet Explorer 10 was lowered from Grade A to Grade C.
* Introducing multi-content-revision capability into the storage layer. For details,
see <https://www.mediawiki.org/wiki/Requests_for_comment/Multi-Content_Revisions>.
* The Revision class was deprecated in favor of RevisionStore, BlobStore, and
* CommentStore::getCommentLegacy
* CommentStore::insert
* CommentStore::insertWithTemplate
+* The following methods in Title have been renamed, and the old ones are deprecated:
+ * Title::getSkinFromCssJsSubpage – use ::getSkinFromConfigSubpage
+ * Title::isCssOrJsPage – use ::isSiteConfigPage
+ * Title::isCssJsSubpage – use ::isUserConfigPage
+ * Title::isCssSubpage – use ::isUserCssConfigPage
+ * Title::isJsSubpage – use ::isUserJsConfigPage
+* The following variables and methods in EditPage, deprecated in MediaWiki 1.30, were removed:
+ * $isCssJsSubpage — use ::isUserConfigPage()
+ * $isCssSubpage — use ::isUserCssConfigPage()
+ * $isJsSubpage — use ::isUserJsConfigPage()
+ * $isWrongCaseCssJsPage – use ::isWrongCaseUserConfigPage()
+ * ::getSummaryInput() – use ::getSummaryInputWidget()
+ * ::getSummaryInputOOUI() – use ::getSummaryInputWidget()
+ * ::getCheckboxes() – use ::getCheckboxesWidget() or ::getCheckboxesDefinition()
+ * ::getCheckboxesOOUI() – use ::getCheckboxesWidget() or ::getCheckboxesDefinition()
* The method ResourceLoaderModule::getPosition(), deprecated in 1.29, has been removed.
* The DeferredStringifier class is deprecated, use Message::listParam() instead.
+* The type string for the parameter $lang of DateFormatter::getInstance is
+ deprecated.
+* In User, the cookie-related methods which were wrappers for the functions on the response
+ object, and were deprecated in 1.27, have been removed:
+ * ::setCookie()
+ * ::clearCookie()
+ * ::setExtendedLoginCookie()
+ Note that User::setCookies() remains, and is not deprecated.
+* The global functions wfProfileIn and wfProfileOut, deprecated in 1.25, have been removed.
+* The following methods related to caching of half-parsed HTML were deprecated:
+ * Parser::serializeHalfParsedText()
+ * Parser::unserializeHalfParsedText()
+ * Parser::isValidHalfParsedText()
+ * StripState::getSubState()
+ * StripState::merge()
+* The "free" CSS class is now only applied to unbracketed URLs in wikitext. Links
+ written using square brackets will get the class "text" not "free".
+* SpecialPageFactory::getList(), deprecated in 1.24, has been removed. You can
+ use ::getNames() instead.
+* OpenSearch::getOpenSearchTemplate(), deprecated in 1.25, has been removed. You
+ can use ApiOpenSearch::getOpenSearchTemplate() instead.
+* The global function wfBaseConvert, deprecated in 1.27, has been removed. Use
+ Wikimedia\base_convert() directly.
+* RFC 157418: Whitespace is trimmed from wikitext headings, wikitext list items,
+ wikitext table captions, wikitext table headings, wikitext table cells. HTML
+ headings, HTML list items, HTML table captions, HTML table headings, HTML table cells
+ will not have this trimming behavior.
+* Calling Database::begin() explicitly during an implicit transaction or when DBO_TRX
+ is set results in an exception. Calling Database::commit() explicitly for an implicit
+ transaction also results in an exception. Previously these were logged as errors.
+ The startAtomic() and endAtomic() methods, or AtomicSectionUpdate should be used
+ instead.
+* The global function wfOutputHandler() was removed, use the its replacement
+ MediaWiki\OutputHandler::handle() instead. The global function was only sometimes defined.
+ Its replacement is always available via the autoloader.
+* ChangeTags::listExtensionActivatedTags and ::listExtensionDefinedTags, deprecated
+ in 1.28, have been removed. Use ::listSoftwareActivatedTags() and
+ ::listSoftwareDefinedTags() instead.
+* Title::getTitleInvalidRegex(), deprecated in 1.25, has been removed. You
+ can use MediaWikiTitleCodec::getTitleInvalidRegex() instead.
+* HTMLForm & VFormHTMLForm::isVForm(), deprecated in 1.25, have been removed.
+* The ProfileSection class, deprecated in 1.25 and unused, has been removed.
== Compatibility ==
MediaWiki 1.31 requires PHP 5.5.9 or later. Although HHVM 3.18.5 or later is supported,
The supported versions are:
* MySQL 5.0.3 or later
-* PostgreSQL 8.3 or later
+* PostgreSQL 9.2 or later
* SQLite 3.3.7 or later
* Oracle 9.0.1 or later
* Microsoft SQL Server 2005 (9.00.1399)