MediaWiki 1.32

MediaWiki 1.32 is a future release of MediaWiki.

Consult the file for the full list of changes.

It is being deployed on Wikimedia Foundation wikis through incremental "wmf"-branches starting 24 April 2018.

The 1.32.0 stable release is expected to come out on sometime in November 2018.

Download the or checkout the   branch in Git to follow this release.

Configuration changes

 * $wgUseAjax – This setting, deprecated in 1.31, is now ignored.
 * $wgDefaultUserOptions – The default watchlist view time (watchlistdays) has been increased from 3 to 7 days. (T194414)
 * $wgGroupPermissions – The right to edit sitewide Javascript (e.g. MediaWiki:Common.js), CSS or JSON was separated from 'editinterface' and is available under 'editsitejs'/'editsitecss'/'editsitejson'. Having 'editinterface' is still necessary to edit such pages.
 * $wgMultiContentRevisionSchemaMigrationStage now defaults to writing both the old and the new schema, but reading the new schema, so Multi-Content Revisions (MCR) are now functional per default. The new default value of the setting is SCHEMA_COMPAT_WRITE_BOTH | SCHEMA_COMPAT_READ_NEW.

New features

 * (T112474) Generalized the ResourceLoader mechanism for overriding modules using a particular page during edit previews.
 * (T12331) You can now log page creation events by setting $wgPageCreationLog to true.
 * Added 'ApiParseMakeOutputPage' hook.
 * (T174313) Added checkbox on Special:ListUsers to display only users in temporary user groups.
 * (T152462) A cookie can now be set when an IP user is blocked to track that user if they move to a new IP address. This is disabled by default.
 * (T194950) Added 'ApiMaxLagInfo' hook.
 * SpecialPage::checkLoginSecurityLevel will now preserve POST data when reauthenticating.
 * FormSpecialPage::execute will now call checkLoginSecurityLevel if getLoginSecurityLevel returns non-false.
 * The 'ImageBeforeProduceHTML' hook is now passed three new parameters, $parser, &$query and &$widthOption, allowing extensions even finer control over the resulting HTML code.
 * Added new 'ArticleShowPatrolFooter' hook, which allows extensions to determine if the [mark as patrolled] link should be shown at the footer of patrollable pages.
 * The array of hidden options ($opts) passed to the 'SpecialSearchPowerBox' hook is now passed by reference, allowing extensions to modify or even unset it.
 * Added new 'OutputPageAfterGetHeadLinksArray' hook, allowing extensions to modify the return value of OutputPage#getHeadLinksArray in order to add, remove or otherwise alter the elements to be output in the page.
 * (T28934) The 'HistoryPageToolLinks' hook allows extensions to append additional links to the subtitle of a history page.
 * The 'GetLinkColours' hook now receives an additional $title parameter, the Title object of the page being parsed, on which the links will be shown.
 * (T194731) DifferenceEngine supports multiple slots. Added SlotDiffRenderer to render diffs between two Content objects, and DifferenceEngine::setRevisions to render diffs between two custom (potentially multi-content) revisions. Added GetSlotDiffRenderer hook which works like GetDifferenceEngine for slots.
 * Added a temporary action=mcrundo to the web UI, as the normal undo logic can't yet handle MCR and deadlines are forcing is to put off fixing that. This action should be considered deprecated and should not be used directly.
 * Extensions overriding ContentHandler::getUndoContent will need to be updated for the changed method signature.

Action API changes

 * Added templated parameters.
 * A module can define a templated parameter like "{fruit}-quantity", where the actual parameters recognized correspond to the values of a multi-valued parameter. Then clients can make requests like "fruits=apples|bananas&apples-quantity=1&bananas-quantity=5".
 * action=paraminfo will return templated parameter definitions separately from normal parameters. All parameter definitions now include an "index" key to allow clients to maintain parameter ordering when merging normal and templated parameters.
 * It is now an error to submit too many values for a multi-valued parameter. This has generated a warning since MediaWiki 1.14.
 * Assertion failures from the 'assert' and 'assertuser' parameters will no longer use the action module's custom response format, for the few modules that use custom formatters that handle errors.
 * (T198935) User list preferences such as `email-blacklist` and similar extension preferences are no longer represented as arrays when returned by action=query&meta=userinfo&uiprop=options.
 * 'missingparam' errors will now use the prefixed parameter name in the code and error text, e.g. "noxxfoo" and "The 'xxfoo' parameter must be set" rather than "nofoo" and "The 'foo' parameter must be set".
 * action=query&prop=revisions now takes a 'rvslots' parameter to indicate the multi-content revision slots for which content should be returned. It also has a new rvprop, 'roles', to indicate which roles have slots. A deprecation warning will be issued if rvprop=content or rvprop=contentmodel are used without rvslots.
 * The rvcontentformat parameter to action=query&prop=revisions has been deprecated. Clients should be prepared to deal with the default format for relevant models.
 * Use of the deprecated parameters rvexpandtemplates, rvgeneratexml, rvparse, rvdiffto, rvdifftotext, rvdifftotextpst, rvcontentformat, or the deprecated rvprop=parsetree is forbidden with the new 'rvslots' parameter.
 * action=query&prop=deletedrevisions, action=query&list=allrevisions, and action=query&list=alldeletedrevisions are changed similarly to &prop=revisions (see the three previous items).
 * (T174032) action=compare now supports multi-content revisions.
 * It has a 'slots' parameter to select diffing of individual slots. The default behavior is to return one combined diff.
 * The 'fromtext', 'fromsection', 'fromcontentmodel', 'fromcontentformat', 'totext', 'tosection', 'tocontentmodel', and 'tocontentformat' parameters are deprecated. Specify the new 'fromslots' and 'toslots' to identify which slots have text supplied and the corresponding templated parameters for each slot.
 * The behavior of 'fromsection' and 'tosection' of extracting one section's content is not being preserved. 'fromsection-{slot}' and 'tosection-{slot}' instead expand the given text as if for a section edit. This effectively declines T183823 in favor of T185723.
 * (T198214) The 'disabletidy' parameter to action=parse has been deprecated; untidy output will not be supported by future wikitext parsers.

Action API internal changes

 * Added 'ApiParseMakeOutputPage' hook.
 * Parameter names may no longer contain '{' or '}', as these are now used for templated parameters.
 * (T194950) Added 'ApiMaxLagInfo' hook.
 * The following methods now take a RevisionRecord rather than a Revision. No external callers are known.
 * ApiFeedContributions::feedItemAuthor
 * ApiFeedContributions::feedItemDesc
 * ApiQueryRevisionsBase::extractRevisionInfo

Languages updated
MediaWiki supports over 350 languages. Many localisations are updated regularly. Below only new and removed languages are listed, as well as changes to languages because of Phabricator reports.
 * (T193566) Added language support for Ambonese Malay (abs).
 * (T194047) Added language support for Shawiya, Latin script (shy-latn).
 * (T195940) Added language support for Batak Mandailing (btm).
 * (T137491) Added language support for Standard Moroccan Amazigh (zgh).
 * (T198132) Added language support for Manipuri (mni).
 * (T201276) Added language support for Western Armenian (hyw).
 * (T201583) Added language support for Mon (mnw).

Other changes

 * (T198811) The following tables have had their UNIQUE indexes turned into proper PRIMARY KEYs for increased maintainability: interwiki, page_props, protected_titles and site_identifiers.
 * OOUI HTMLForm will now display help text inline after the input field, rather than in a popup. Previous behavior can be restored by using `'help-inline' => false`.
 * The archive table's ar_rev_id field is now unique.
 * Special:BotPasswords now requires reauthentication.
 * (T174023) Multi-Content Revision (MCR) capabilities were introduced into the storage layer and have basic support for display. No user interface exists yet for creating or managing content in slots beides the main slot. See  for more information.