* The archive table's ar_rev_id field is now unique.
* Special:BotPasswords now requires reauthentication.
* (T194414) The default watchlist view time has been increased from 3 to 7 days.
+* 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.
+* A new user group, 'interface-admin', is added for controlling access to
+ sitewide CSS/JS (and editing other users' CSS/JS). No other group has
+ 'editsitecss', 'editusercss', 'editsitejs' or 'edituserjs' by default.
+* A new grant group, 'editsiteconfig', is added for granting the above rights.
=== New features in 1.32 ===
* (T112474) Generalized the ResourceLoader mechanism for overriding modules
* 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 <head>.
=== External library changes in 1.32 ===
* …
* Updated wikimedia/scoped-callback from 1.0.0 to 2.0.0.
** ScopedCallback objects can no longer be serialized.
* Updated wikimedia/wrappedstring from 2.3.0 to 3.0.1.
+* Updated mediawiki/mediawiki-codesniffer from v20.0.0 to v21.0.0.
+* Updated composer/spdx-licenses from 1.3.0 to 1.4.0.
==== New external libraries ====
* Added wikimedia/xmp-reader 0.5.1
* 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 API internal changes in 1.32 ===
* Added 'ApiParseMakeOutputPage' hook.
CapsuleMultiselectWidget. The following methods may no longer be used:
* setItemsFromData: Use setValue instead
* getItemsData: Use getItems instead and get the data property
-* The hook 'LogEventsListGetExtraInputs' now needs a form descriptor array
- and not plain HTML.
=== Deprecations in 1.32 ===
* Use of a StartProfiler.php file is deprecated in favour of placing
it had unexpected behavior (only marking text if it looked like a URL)
and was only used in a single place in the code. Use
LanguageConverter::markNoConversion() instead.
+* (T197492) Language::truncate() was soft deprecated in 1.31 and is
+ hard deprecated in this release. It has been split into two similar
+ methods, Language::truncateForVisual() and Language::truncateForDatabase(),
+ which measure length in characters and bytes, respectively. Use
+ Language::truncateForVisual() when possible to provide equity to users
+ of multibyte scripts.
* (T176526) EditPage::getContextTitle() falling back to $wgTitle when the
context title is unset is now deprecated; anything creating an EditPage
instance should set the context title via ::setContextTitle().
OutputPage::showFileCopyError() and OutputPage::showUnexpectedValueError().
* The Replacer, DoubleReplacer, HashtableReplacer, and RegexlikeReplacer
classes are now deprecated. Use a Closure instead.
+* (T194263) ContentHandler::makeParserOptions() is deprecated. Use
+ WikiPage::makeParserOptions() or ParserOptions::newCanonical() instead.
+* (T100681) Use of the Parsoid v1 API with the VirtualRESTService, deprecated in
+ MediaWiki 1.26, is now hard-deprecated. All known clients were converted to
+ the Parsoid v3 API in May 2015.
+* $input is deprecated in hook 'LogEventsListGetExtraInputs'. Use
+ $formDescriptor instead.
+* SearchEngine::transformSearchTerm( $term ) should no longer be called prior
+ to running searchText. This method was mainly implemented to support the
+ 'prefix' URI param in SpecialSearch, but there are no reasons to expose this
+ logic as it should be handled internally by SearchEngine implementations
+ supporting this feature. SearchEngine implementations should no longer
+ override this methods.
+* SearchEngine::replacePrefixes( $query ) should no longer be called prior
+ to running searchText/searchTitle.
+* (T199657) Messages for $wgFilterLogTypes labels should be no longer be in the
+ 'log-show-hide-[type]' format. Instead use 'logeventslist-[type]-log'.
+* Global functions wfArrayFilter() and wfArrayFilterByKey() are deprecated.
+ use array_filter() directly.
+* The $wgShowSQLErrors global is deprecated and nonfunctional.
+ Set $wgShowExceptionDetails and/or $wgShowHostnames instead.
+* The $wgShowDBErrorBacktrace global is deprecated and nonfunctional.
+ Set $wgShowExceptionDetails instead.
+* Public access to the DifferenceEngine properties mOldid, mNewid, mOldPage,
+ mNewPage, mOldContent, mNewContent, mRevisionsLoaded, mTextLoaded and
+ mCacheHit is deprecated. Use getOldid() / getNewid() for the first two,
+ do your own lookup for page/content. mNewRev / mOldRev remains public.
+* The $wgExternalDiffEngine value 'wikidiff2' is deprecated. To use wikidiff2
+ just enable the PHP extension, and it will be autodetected.
=== Other changes in 1.32 ===
-* (T198811) The following tables have had their UNIQUE indexes turned into proper
- PRIMARY KEYs for increased maintainability: interwiki, page_props,
+* (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.
* …