=== Configuration changes for system administrators in 1.34 ===
+In an effort to enforce best practices for passwords, MediaWiki will now warn
+users, and suggest that they change their password, if it is in the list of
+100,000 commonly used passwords that are considered bad passwords. If you want
+to disable this for your users, please add the following to your local settings:
+
+$wgPasswordPolicy['policies']['default']['PasswordNotInLargeBlacklist'] = false;
+
==== New configuration ====
* $wgAllowExternalReqID (T201409) - This configuration setting controls whether
Mediawiki accepts the request ID set by the incoming request via the
which was deprecated in 1.30, no longer works. Instead, $wgProxyList should be
an array with IP addresses as the values, or a string path to a file
containing one IP address per line.
+* $wgCookieSetOnAutoblock and $wgCookieSetOnIpBlock are now enabled by default.
* …
==== Removed configuration ====
* $wgWikiDiff2MovedParagraphDetectionCutoff — If you still want a custom change
size threshold, please specify in php.ini, using the configuration variable
wikidiff2.moved_paragraph_detection_cutoff.
+* $wgUseESI - This experimental setting, deprecated in 1.33, is now removed.
* $wgDebugPrintHttpHeaders - The default of including HTTP headers in the
debug log channel is no longer configurable. The debug log itself remains
configurable via $wgDebugLogFile.
* $wgDBOracleDRCP - If you must use persistent connections, set DBO_PERSISTENT
in the 'flags' field for servers in $wgDBServers (or $wgLBFactoryConf).
* $wgMemCachedDebug - Set the cache "debug" field in $wgObjectCaches instead.
+* $wgActorTableSchemaMigrationStage has been removed. Extension code for
+ MediaWiki 1.31+ finding it unset should treat it as being SCHEMA_COMPAT_NEW.
=== New user-facing features in 1.34 ===
* Special:Mute has been added as a quick way for users to block unwanted emails
GetBlockedStatus.
* ObjectFactory is available as a service. When used as a service, the object
specs can now specify needed DI services.
+* (T222388) Special pages can now be specified as an ObjectFactory spec,
+ allowing the construction of special pages that require services to be
+ injected in their constructor.
+* (T222388) API modules can now be specified as an ObjectFactory spec,
+ allowing the construction of modules that require services to be injected
+ in their constructor.
=== External library changes in 1.34 ===
==== Changed external libraries ====
* Updated Mustache from 1.0.0 to v3.0.1.
-* Updated OOUI from v0.31.3 to v0.33.4.
+* Updated OOUI from v0.31.3 to v0.34.0.
+* Updated OOjs from v2.2.2 to v3.0.0.
* Updated composer/semver from 1.4.2 to 1.5.0.
* Updated composer/spdx-licenses from 1.4.0 to 1.5.1 (dev-only).
* Updated mediawiki/codesniffer from 25.0.0 to 26.0.0 (dev-only).
=== Action API changes in 1.34 ===
* The 'recenteditcount' response property from action=query list=allusers,
deprecated in 1.25, has been removed.
+* (T60993) action=query list=filearchive, list=alldeletedrevisions and
+ prop=deletedrevisions no longer require the 'deletedhistory' user right.
+* In the response to queries that use 'prop=imageinfo', entries for
+ non-existing files (indicated by the 'filemissing' field) now omit the
+ following fields, since they are meaningless in this context:
+ 'timestamp', 'userhidden', 'user', 'userid', 'anon', 'size', 'width',
+ 'height', 'pagecount', 'duration', 'commenthidden', 'parsedcomment',
+ 'comment', 'thumburl', 'thumbwidth', 'thumbheight', 'thumbmime',
+ 'thumberror', 'url', 'sha1', 'metadata', 'extmetadata', 'commonmetadata',
+ 'mime', 'mediadtype', 'bitdepth'.
+ Clients that process these fields should first check if 'filemissing' is
+ set. Fields that are supported even if the file is missing include:
+ 'canonicaltitle', ''archivename' (deleted files only), 'descriptionurl',
+ 'descriptionshorturl'.
+* The 'blockexpiry' result property in list=users and list=allusers will now be
+ returned in the same format used by the rest of the API: ISO 8601 for
+ expiring blocks, and "infinite" for non-expiring blocks.
=== Action API internal changes in 1.34 ===
-* …
+* The exception thrown in ApiModuleManager::getModule has been changed
+ from an MWException to an UnexpectedValueException, thrown by ObjectFactory.
+ ApiModuleManager::getModule now also throws InvalidArgumentExceptions when
+ ObjectFactory is presented with an invalid spec or incorrectly constructed
+ objects.
+* Added ApiQueryBlockInfoTrait.
=== Languages updated in 1.34 ===
MediaWiki supports over 350 languages. Many localisations are updated regularly.
* CryptRand class
* CryptRand service
* Functions of the MWCryptRand class: singleton(), wasStrong() and generate().
+* Various Special Page PHP Classes were renamed (mostly casing changes):
+ * SpecialAncientpages => SpecialAncientPages
+ * SpecialConfirmemail => SpecialConfirmEmail
+ * SpecialDeadendpages => SpecialDeadendPages
+ * SpecialFewestrevisions => SpecialFewestRevisions
+ * SpecialListredirects => SpecialListRedirects
+ * SpecialLonelypages => SpecialLonelyPages
+ * SpecialLongpages => SpecialLongPages
+ * SpecialMIMEsearch => SpecialMIMESearch
+ * SpecialMostcategories => SpecialMostCategories
+ * SpecialMostinterwikis => SpecialMostInterwikis
+ * SpecialMostlinked => SpecialMostLinked
+ * SpecialMostlinkedcategories => SpecialMostLinkedCategories
+ * SpecialMostlinkedtemplates => SpecialMostLinkedTemplates
+ * SpecialMostrevisions => SpecialMostRevisions
+ * SpecialNewimages => SpecialNewFiles
+ * SpecialShortpages => SpecialShortPages
+ * SpecialUncategorizedcategories => SpecialUncategorizedCategories
+ * SpecialUncategorizedimages => SpecialUncategorizedImages
+ * SpecialUncategorizedpages => SpecialUncategorizedPages
+ * SpecialUncategorizedtemplates => SpecialUncategorizedTemplates
+ * SpecialUnusedcategories => SpecialUnusedCategories
+ * SpecialUnusedimages => SpecialUnusedImages
+ * SpecialUnusedtemplates => SpecialUnusedTemplates
+ * SpecialUnwatchedpages => SpecialUnwatchedPages
+ * SpecialWantedcategories => SpecialWantedCategories
+ * SpecialWantedtemplates => SpecialWantedTemplates
+ * SpecialWithoutinterwiki => SpecialWithoutInterwiki
* Language::setCode, deprecated in 1.32, was removed. Use Language::factory to
create a new Language object with a different language code.
* MWNamespace::clearCaches() has been removed. So has the $rebuild parameter
Use the mediawiki.String module instead.
* mw.language.specialCharacters, deprecated in 1.33, has been removed.
Use require( 'mediawiki.language.specialCharacters' ) instead.
+* The jquery.colorUtil module was removed. Use jquery.color instead.
+* The jquery.checkboxShiftClick module was removed. The functionality
+ is provided by mediawiki.page.ready instead (T232688).
+* The 'jquery.accessKeyLabel' module has been removed. This jQuery
+ plugin now ships as part of the 'mediawiki.util' module bundle.
* EditPage::submit(), deprecated in 1.29, has been removed. Use $this->edit()
directly.
* HTMLForm::getErrors(), deprecated in 1.28, has been removed. Use
initialized after calling SearchResult::initFromTitle().
* The UserIsBlockedFrom hook is only called if a block is found first, and
should only be used to unblock a blocked user.
-* …
+* Parameters for index.php from PATH_INFO, such as the title, are no longer
+ written to $_GET.
+* The selectFields() methods on classes LocalFile, ArchivedFile, OldLocalFile,
+ DatabaseBlock, and RecentChange, deprecated in 1.31, have been removed. Use
+ the corresponding getQueryInfo() methods instead.
+* The following methods on Revision, deprecated since 1.31, have been removed.
+ Use RevisionStore::getQueryInfo() or RevisionStore::getArchiveQueryInfo()
+ instead.
+ * Revision::userJoinCond()
+ * Revision::pageJoinCond()
+ * Revision::selectFields()
+ * Revision::selectArchiveFields()
+ * Revision::selectTextFields()
+ * Revision::selectPageFields()
+ * Revision::selectUserFields()
+* User::setNewpassword(), deprecated in 1.27 has been removed.
+* The ObjectCache::getMainWANInstance and ObjectCache::getMainStashInstance
+ functions, deprecated since 1.28, have been removed.
=== Deprecations in 1.34 ===
* The MWNamespace class is deprecated. Use NamespaceInfo.
class. If you extend this class please be sure to override all its methods
or extend RevisionSearchResult.
* Skin::getSkinNameMessages() is deprecated and no longer used.
+* The mediawiki.RegExp module is deprecated; use mw.util.escapeRegExp() instead.
+* Specifying a SpecialPage object for the list of special pages (either through
+ the SpecialPage_initList hook or by adding to $wgSpecialPages) is now
+ deprecated.
+* Use of ActorMigration with 'ar_user', 'img_user', 'oi_user', 'fa_user',
+ 'rc_user', 'log_user', and 'ipb_by' is deprecated. Queries should be adjusted
+ to use the corresponding actor fields directly. Note that use with
+ 'rev_user' is *not* deprecated at this time.
+* Specifying both the class and factory parameters for
+ ApiModuleManager::addModule is now deprecated. The ObjectFactory spec should
+ be used instead.
+* The UserIsHidden hook is deprecated. Use GetUserBlock instead, and add a
+ system block that hides the user.
+* The GetBlockedStatus hook is deprecated. Use GetUserBlock instead, to add or
+ remove a block.
+* $wgContentHandlerUseDB is deprecated and should always be true.
+* StreamFile::send404Message() and StreamFile::parseRange() are now deprecated.
+ Use HTTPFileStreamer::send404Message() and HTTPFileStreamer::parseRange()
+ respectively instead.
+* Global variable $wgSysopEmailBans is deprecated; to allow sysops to ban
+ users from sending emails, use
+ $wgGroupPermissions['sysop']['blockemail'] = true;
+* ApiQueryBase::showHiddenUsersAddBlockInfo() is deprecated. Use
+ ApiQueryBlockInfoTrait instead.
=== Other changes in 1.34 ===
* …
== Compatibility ==
-MediaWiki 1.34 requires PHP 7.0.13 or later. Although HHVM 3.18.5 or later is
-supported, it is generally advised to use PHP 7.0.13 or later for long term
+MediaWiki 1.34 requires PHP 7.2.0 or later. Although HHVM 3.18.5 or later is
+supported, it is generally advised to use PHP 7.2.0 or later for long term
support. It also requires the following PHP extensions:
* ctype