* $wgEnableSpecialMute (T218265) - This configuration controls whether
Special:Mute is available and whether to include a link to it on emails
originating from Special:Email.
+* editmyuserjsredirect user right – users without this right now cannot edit JS
+ redirects in their userspace unless the target of the redirect is also in
+ their userspace. By default, this right is given to everyone.
==== Changed configuration ====
* $wgUseCdn, $wgCdnServers, $wgCdnServersNoPurge, and $wgCdnMaxAge – These four
* Introduced $wgVerifyMimeTypeIE to allow disabling the MSIE 6/7 file type
detection heuristic on upload, which is more conservative than the checks
that were changed above.
+* $wgSkipSkin — Setting this instead of $wgSkipSkins, deprecated in 1.23, is now
+ hard-deprecated.
+* $wgLocalInterwiki — Setting this instead of $wgLocalInterwikis, deprecated in
+ 1.23, is now hard-deprecated.
+* $wgProfileOnly — Setting this, deprecated in 1.23, is now hard-deprecated.
+ Instead, set the log file in $wgDebugLogGroups['profileoutput'].
+* $wgProxyList — Setting this to an array with IP addresses in the array keys,
+ 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.
* …
==== 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.
+* $wgDebugPrintHttpHeaders - The default of including HTTP headers in the
+ debug log channel is no longer configurable. The debug log itself remains
+ configurable via $wgDebugLogFile.
+* $wgPasswordSalt – This setting, used for migrating exceptionally old, insecure
+ password setups and deprecated since 1.24, is now removed.
+* $wgDBOracleDRCP - If you must use persistent connections, set DBO_PERSISTENT
+ in the 'flags' field for servers in $wgDBServers (or $wgLBFactoryConf).
=== New user-facing features in 1.34 ===
* Special:Mute has been added as a quick way for users to block unwanted emails
the target manually.
=== New developer features in 1.34 ===
+* The ImgAuthModifyHeaders hook was added to img_auth.php to allow modification
+ of headers in private wikis.
* Language::formatTimePeriod now supports the new 'avoidhours' option to output
strings like "5 days ago" instead of "5 days 13 hours ago".
+* (T220163) Added SpecialMuteModifyFormFields hook to allow extensions
+ to add fields to Special:Mute.
+* (T100896) Skin authors can define custom OOUI themes using OOUIThemePaths.
+ See <https://www.mediawiki.org/wiki/OOUI/Themes> for details.
=== 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.32.1.
+* Updated OOUI from v0.31.3 to v0.33.4.
* 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).
* Updated wikimedia/at-ease from 1.2.0 to 2.0.0.
* Updated wikimedia/remex-html from 2.0.1 to 2.0.3.
* Updated monolog/monolog from 1.22.1 to 1.24.0 (dev-only).
-* Updated wikimedia/object-factory from 1.0.0 to 2.0.0.
+* Updated wikimedia/object-factory from 1.0.0 to 2.1.0.
* Updated wikimedia/timestamp from 2.2.0 to 3.0.0.
* Updated wikimedia/xmp-reader from 0.6.2 to 0.6.3.
+* Updated mediawiki/mediawiki-phan-config from 0.6.0 to 0.6.1 (dev-only).
* …
==== Removed external libraries ====
specified, deprecated in 1.30, have been removed.
* BufferingStatsdDataFactory::getBuffer(), deprecated in 1.30, has been removed.
* The constant DB_SLAVE, deprecated in 1.28, has been removed. Use DB_REPLICA.
+* The constants NS_IMAGE and NS_IMAGE_TALK, deprecated in 1.14, have been
+ removed. Use NS_FILE and NS_FILE_TALK respectively.
* Replacer, DoubleReplacer, HashtableReplacer and RegexlikeReplacer
(deprecated in 1.32) have been removed. Closures should be used instead.
* OutputPage::addWikiText(), ::addWikiTextWithTitle(), ::addWikiTextTitleTidy(),
Use MediaWiki\Session\SessionManager instead.
* The wfGetLBFactory global function, deprecated in 1.27, has been removed.
Use MediaWikiServices::getInstance()->getDBLoadBalancerFactory().
+* The internal method OutputPage->addScriptFile() will no longer silently drop
+ calls that use an invalid path (i.e., something other than an absolute path,
+ protocol-relative URL, or full scheme URL), and will instead pass them to the
+ client where they will likely 404. This usage was deprecated in 1.24.
+* Database::reportConnectionError, deprecated in 1.32, has been removed.
+* APIEditBeforeSave hook, deprecated in 1.28, has been removed. Please see
+ EditFilterMergedContent hook for an alternative way to use this feature.
+* API module methods getDescription(), getParamDescription(), & getExamples(),
+ all deprecated in 1.25 and ignored, have been removed.
+* The API module method getDescriptionMessage(), deprecated in 1.30, has been
+ removed.
+* The JavaScript global variable wgLoadScript has been removed. Use
+ mw.util.wikiScript( 'load' ) instead.
+* ResourceLoader no longer creates the 'mw.legacy' placeholder object. It has
+ been unused since 1.16 and was deprecated in 1.22. To deprecate a property
+ in JavaScript, use mw.log.deprecate() instead.
+* The 'user.groups' module, deprecated in 1.28, was removed.
+ Use the 'user' module instead.
+* The ResourceLoaderContext::expandModuleNames method, deprecated in 1.33, was
+ removed. Use ResourceLoader::expandModuleNames instead.
+* The ability to override User::$mRights has been removed. Use
+ PermissionManager::addTemporaryUserRights() instead.
+* Previously, when iterating ResultWrapper with foreach() or a similar
+ construct, the range of the index was 1..numRows. This has been fixed to be
+ 0..(numRows-1).
+* The ChangePasswordForm hook, deprecated in 1.27, has been removed. Use the
+ AuthChangeFormFields hook or security levels instead.
+* WikiMap::getWikiIdFromDomain(), deprecated in 1.33, has been removed.
+ Use WikiMap::getWikiIdFromDbDomain() instead.
+* The config variables $wgHtml5, $wgJsMimeType, and $wgXhtmlDefaultNamespace,
+ which were deprecated and ignored by core since 1.22, are no longer set to any
+ value, and SkinTemplate no longer emits a 'jsmimetype' key. Any extensions not
+ updated since 2013 to cope with this deprecation may now break.
+* (T222637) Passing ResourceLoaderModule objects to ResourceLoader::register()
+ or $wgResourceModules is no longer supported.
+ Use the 'class' or 'factory' option of the array format instead.
+* The parameter $lang of the functions generateTOC and tocList in Linker and
+ DummyLinker must be in type Language when present. Other types are
+ deprecated since 1.33.
+* The static properties mw.Api.errors and mw.Api.warnings, deprecated in 1.29,
+ have been removed.
+* ParserOption::getSpeculativeRevIdCallback(), deprecated in 1.28, has been
+ removed.
+* The UploadVerification hook, deprecated in 1.28, has been removed. Instead,
+ use the UploadVerifyFile hook.
+* UploadBase:: and UploadFromChunks::stashFileGetKey() and stashSession(),
+ deprecated in 1.28, have been removed. Instead, please use the getFileKey()
+ method on the response from doStashFile().
+* LBFactory::setDomainPrefix() and LoadBalancer::setDomainPrefix(), deprecated
+ in 1.33, have been removed. Use setLocalDomainPrefix() instead.
+* IDatabase::implicitGroupby(), deprecated in 1.30, has been removed.
+* IDatabase::doneWrites(), deprecated in 1.31, has been removed.
+ Use IDatabase::lastDoneWrites() instead.
+* Database::reportConnectionError(), deprecated in 1.32, has been removed.
+* LoadBalancer::laggedSlaveUsed(), deprecated in 1.28, has been removed.
+ Use LoadBalancer::laggedReplicaUsed() instead.
+* Database::getProperty(), deprecated in 1.28, has been removed.
+* IDatabase::getWikiId(), deprecated in 1.30, has been removed.
+ Use IDatabase::getDomainID() instead.
+* (T191231) Support for using Oracle or MSSQL as database backends has been
+ dropped.
* …
=== Deprecations in 1.34 ===
instead.
* Sanitizer::attributeWhitelist() and Sanitizer::setupAttributeWhitelist()
have been deprecated; they will be made private in the future.
+* SearchResult::termMatches() method is deprecated. It was unreliable because
+ only populated by few search engine implementations. Use
+ SqlSearchResult::getTermMatches() if really needed.
+* SearchResult::getTextSnippet( $terms ) the $terms param is being deprecated
+ and should no longer be passed. Search engine implemenations should be
+ responsible for carrying relevant information needed for highlighting with
+ their own SearchResultSet/SearchResult sub-classes.
+* SearchResultSet::free() method is deprecated.
+* SearchEngine::$searchTerms protected field is deprecated. Moved to
+ SearchDatabase.
+* The use of the $terms param in the ShowSearchHit and ShowSearchHitTitle
+ hooks is highly discouraged as it's only populated by SearchDatabase search
+ engines.
+* Skin::escapeSearchLink() is deprecated. Use Skin::getSearchLink() or the skin
+ template option 'searchaction' instead.
+* LoadBalancer::haveIndex() and LoadBalancer::isNonZeroLoad() have
+ been deprecated.
+* FileBackend::getWikiId() has been deprecated.
+ Use FileBackend::getDomainId() instead.
+* User::getRights() and User::$mRights have been deprecated. Use
+ PermissionManager::getUserPermissions() instead.
+* The LocalisationCacheRecache hook no longer allows purging of message blobs
+ to be prevented. Modifying the $purgeBlobs parameter now has no effect.
+* SVGMetadataExtractor::getMetadata has been deprecated. Instead, you should
+ use SVGReader->getMetadata() directly.
+* The following public properties on AbstractBlock are deprecated: $mReason,
+ $mTimestamp, $mExpiry, $mHideName. Use the getters/setters instead.
+* The following public properties on DatabaseBlock are deprecated: $mAuto,
+ $mParentBlockId. To check for an autoblock use DatabaseBlock::getType; to
+ check for the parent ID, use DatabaseBlock::getParentBlockId.
+* SearchEngine::userHighlightPrefs() is deprecated, simply stop passing
+ $contextlines and $contextchars to the SearchHighlighter methods, they will
+ use proper defaults defined in SearchHighlighter::DEFAULT_CONTEXT_LINES and
+ DEFAULT_CONTEXT_CHARS.
+* SearchUpdate constructor: passing a string as the title param and or a boolean
+ or a string as the content will produce a deprecation warning.
+* SearchEngine::getTextFromContent() is deprecated, use getTextForSearchIndex()
+ directly from the Content object.
+* SearchEngine::textAlreadyUpdatedForIndex() is deprecated, given the
+ deprecation above this method is no longer needed/called and should not be
+ implemented by SearchEngine implementation.
=== Other changes in 1.34 ===
* …