=== Configuration changes for system administrators in 1.34 ===
==== New configuration ====
-* …
+* $wgAllowExternalReqID (T201409) - This configuration setting controls whether
+ Mediawiki accepts the request ID set by the incoming request via the
+ `X-Request-Id` header. If set to `true`, that value will be used throughout
+ the code as the request identificator. Otherwise, the sent header will be
+ ignored and the request ID will either be taken from Apache's mod_unique
+ module or will be generated by Mediawiki itself (depending on the set-up).
==== Changed configuration ====
+* $wgUseCdn, $wgCdnServers, $wgCdnServersNoPurge, and $wgCdnMaxAge – These four
+ CDN-related config variables have been renamed from being specific to Squid –
+ they were previously $wgUseSquid, $wgSquidServers, $wgSquidServersNoPurge, and
+ $wgSquidMaxage respectively. This aligns them with the related existing
+ variable $wgCdnMaxageLagged. The previous configuration variable names are
+ deprecated, but will be used as the fall back if they are still set.
+ Note that wgSquidPurgeUseHostHeader has not been renamed, as it is deprecated.
* …
==== 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.
=== New user-facing features in 1.34 ===
* …
=== New developer features in 1.34 ===
-* …
+* Language::formatTimePeriod now supports the new 'avoidhours' option to output
+ strings like "5 days ago" instead of "5 days 13 hours ago".
=== 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.31.5.
+* 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 cssjanus/cssjanus from 1.2.1 to 1.3.0.
+* Updated wikimedia/at-ease from 1.2.0 to 2.0.0.
+* Updated wikimedia/remex-html from 2.0.1 to 2.0.3.
* …
==== Removed external libraries ====
+* The jquery.async module, deprecated in 1.33, was removed.
* …
=== Bug fixes in 1.34 ===
-* …
+* (T222529) If a log entry or page revision is recorded in the database with an
+ empty username, attempting to display it will log an error and return a "no
+ username available" to the user instead of silently displaying nothing or
+ invalid links.
=== Action API changes in 1.34 ===
* The 'recenteditcount' response property from action=query list=allusers,
* (T152908) Added language support for N'Ko (nqo).
=== Breaking changes in 1.34 ===
+* The global functions wfSuppressWarnings and wfRestoreWarnings, deprecated in
+ 1.26, have been removed. Use Wikimedia\AtEase\AtEase::suppressWarnings() and
+ Wikimedia\AtEase\AtEase::restoreWarnings() directly.
* Preferences class, deprecated in 1.31, has been removed.
* The following parts of code, deprecated in 1.32, were removed in favor of
built-in PHP functions:
* wfArrayFilter() and wfArrayFilterByKey(), deprecated in 1.32, have been
removed.
* wfMakeUrlIndexes() function, deprecated in 1.33, have been removed.
+* Method signatures in WatchedItemQueryServiceExtension have changed from taking
+ User objects to taking UserIdentity objects. Extensions implementing this
+ interface need to be changed accordingly.
* User::getGroupPage() and ::makeGroupLinkHTML(), deprecated in 1.29, have been
removed. Use UserGroupMembership::getGroupPage and ::getLink instead.
* User::makeGroupLinkWiki(), deprecated in 1.29, has been removed. Use
UserGroupMembership::getLink() instead.
+* SavepointPostgres, deprecated in 1.31, has been removed.
+* Output::sectionEditLinksEnabled(), ParserOutput::getEditSectionTokens,
+ ::getTOCEnabled, ::setEditSectionTokens, ::setTOCEnabled, deprecated in 1.31,
+ have been removed.
+* EditPage::safeUnicodeInput() and ::safeUnicodeOutput(), deprecated in 1.30,
+ have been removed.
+* Four methods in OutputPage, deprecated in 1.32, have been removed. You should
+ use OutputPage::showFatalError or throw a FatalError instead. The methods are
+ ::showFileCopyError(), ::showFileRenameError(), ::showFileDeleteError(), and
+ ::showFileNotFoundError().
+* ApiBase::truncateArray(), deprecated in 1.32, has been removed.
+* IcuCollation::getICUVersion(), deprecated in 1.32, has been removed. Use PHP's
+ INTL_ICU_VERSION constant directly.
+* HTMLForm::setSubmitProgressive(), deprecated in 1.32, has been removed.
+* ResourceLoaderStartUpModules::getStartupModules() and ::getLegacyModules(),
+ both deprecated in 1.32, have been removed.
+* BaseTemplate::msgHtml() and QuickTemplate::msgHtml(), deprecated in 1.32, have
+ been removed. Use ->msg() or ->getMsg() instead.
+* WatchAction::getUnwatchToken(), deprecated in 1.32, has been removed. Instead,
+ use WatchAction::getWatchToken() with action 'unwatch' directly.
+* Language::initEncoding(), ::recodeForEdit(), and recodeInput(), deprecated in
+ 1.28, have been removed.
+* PageArchive::getTextFromRow(), ::listAllPages(), and ::getLastRevisionText(),
+ deprecated in 1.32, have been removed.
+* OutputPage::getModuleScripts(), ParserOutput::getModuleScripts(), deprecated
+ in 1.33, have been removed.
+* User::getPasswordValidity(), deprecated in 1.33, has been removed.
+* ApiQueryBase::prepareUrlQuerySearchString(), deprecated in 1.33, has been
+ removed.
+* ChangeTags::purgeTagUsageCache(), deprecated in 1.33, has been removed.
+* JobQueueGroup::pushLazyJobs(), deprecated in 1.33, has been removed.
+* MediaWikiTestCase::stashMwGlobals(), deprecated in 1.32, has been removed.
+* SearchEngine::transformSearchTerm(), deprecated in 1.32, has been removed.
+* The Block typehint only refers to blocks stored in the database. It should be
+ updated to AbstractBlock in cases where any type of block could be expected.
+* FileRepoStatus, deprecated in 1.25, has been removed.
+* The LegacyHookPreAuthenticationProvider class, deprecated since its creation
+ in 1.27, has been removed.
+* IP::isValidBlock(), deprecated in 1.30, has been removed.
+* WikiPage::prepareContentForEdit now doesn't accept an integer for $revision,
+ was deprecated in 1.25.
+* The jquery.byteLength module, deprecated in 1.31, was removed.
+ Use the mediawiki.String module instead.
* …
=== Deprecations in 1.34 ===
MultiHttpClient directly.
* Http::$httpEngine is deprecated and has no replacement. The default 'guzzle'
engine will eventually be made the only engine for HTTP requests.
+* RepoGroup::singleton(), RepoGroup::destroySingleton(),
+ RepoGroup::setSingleton(), wfFindFile(), and wfLocalFile() are all
+ deprecated. Use MediaWikiServices instead.
+* The getSubjectPage, getTalkPage, and getOtherPage of Title are deprecated.
+ Use NamespaceInfo's getSubjectPage, getTalkPage, and getAssociatedPage.
+* MWMessagePack class, no longer used, has been deprecated in 1.34.
+* The Block class is separated into Block (for blocks stored in the database),
+ and SystemBlock (for temporary blocks created by the system). SystemBlock
+ should be used when creating any temporary blocks.
+* Parser::$mConf is deprecated. It will be removed entirely in a later version.
+ Some context can be found at T224165.
+* Constructing Parser directly is deprecated. Obtain one from ParserFactory.
+* Title::moveSubpages is deprecated. Use MovePage::moveSubpages or
+ MovePage::moveSubpagesIfAllowed.
+* The MWNamespace class is deprecated. Use MediaWikiServices::getNamespaceInfo.
+* (T62260) Hard deprecate Language::getExtraUserToggles() method.
+* …
=== Other changes in 1.34 ===
* …