Merge "mediawiki.router: use this"
[mediawiki.git] / RELEASE-NOTES-1.43
blobf63acaed5ff252533c65524974493c9cb97fc0a4
1 = MediaWiki 1.43 =
3 == MediaWiki 1.43.0-PRERELEASE ==
5 THIS IS NOT A RELEASE YET
7 MediaWiki 1.43 is an alpha-quality development branch, and is not recommended
8 for use in production.
10 == Upgrading notes for 1.43 ==
11 Don't forget to always back up your database before upgrading!
13 See the file UPGRADE for more detailed per-version upgrade instructions from the
14 oldest supported upgrading version, MediaWiki 1.35.
16 Some specific notes for MediaWiki 1.43 upgrades are below:
18 * It is now necessary that the OpenSSL PHP extension is installed.
19 * …
21 For notes on 1.42.x and older releases, see HISTORY.
23 === Configuration changes for system administrators in 1.43 ===
25 * $wgBlockTargetMigrationStage, which was introduced in 1.42, is now deprecated
26   and has no effect.
27 * …
29 ==== New configuration ====
31 * (T13555) $wgParserEnableLegacyHeadingDOM - Defaults to `true`, can be set to
32   `false` to enable new, more accessible HTML markup for wikitext headings.
33   Note that each skin must also use the 'supportsMwHeading' option to allow it.
34   More information: https://www.mediawiki.org/wiki/Heading_HTML_changes
35   In a future release the new markup will become the default,
36   and later this option will be removed.
37 * (T12347) $wgEnableProtectionIndicators - Defaults to false, setting it to true
38   shows a lock icon indicator on protected pages.
39 * (T373480) $wgSortedCategories - Defaults to false, setting it to true will
40   sort the categories shown on article pages.  This is an experimental setting;
41   its future will depend on community adoption and feedback on the phab task
42   is welcome.
43 * (T45646) $wgAllowRawHtmlCopyrightMessages - Defaults to true, can be set to
44   false to disable the use of the localisation messages 'copyright' and
45   'history_copyright' and the hook 'SkinCopyrightFooter', which have been
46   deprecated in this release. This helps protect your wiki against attacks by
47   a rogue administrator account and will become the default in the future.
48 * …
50 ==== Changed configuration ====
52 * wgPageLinksSchemaMigrationStage – (T299947) This temporary setting, which
53   controls the database schema migration for the page links table, is now set
54   by default to write to both old and new data and read from the new data.
55 * wgFooterIcons – (T256190) The default "Powered by MediaWiki" button icon has
56   been updated to an SVG icon, and the footer icons are now wrapped as buttons
57   in HTML, rather than faking it within the icons themselves. You should adjust
58   any footer icons you provide or over-ride to match.
59 * The "error-json" channel, configurable via $wgDebugLogGroups, has been
60   removed. For structured logging, use the "error" channel directly instead.
61   Since MediaWiki 1.25, structured logging is supported via Monolog for all
62   channels, including the "error" channel. For silenced errors, you use the
63   "silenced-error" channel added in MediaWiki 1.42. (T193472)
64 * wgResourceLoaderUseObjectCacheForDeps - (T343492) This is now enabled by
65   default. This means ResourceLoader writes information to the MainStash
66   instead of a core database table, which can be set to a separate database
67   via wgMainStash. If you find issues, please drop a comment on T343492.
68   It is now deprecated and will be removed in MediaWiki 1.44.
69 * …
71 ==== Removed configuration ====
73 * wgSessionInsecureSecrets has been removed since OpenSSL is now a required
74   PHP extension.
75 * $wgTemplateLinksSchemaMigrationStage has been removed.
76 * $wgSamplingStatsdClient has been removed. It was introduced in MW 1.28 for
77   use in the Wikibase extension, but never used. The new StatsFactory service
78   should be used for new instrumentations, which already supports sampling.
79   Beware that sampling is generally not needed even at scale, and that sampling
80   does not significantly reduce runtime overhead, thus making it slow to
81   instrument very hot code even with built-in sampling.
82 * (T294397) The 'writeapi' userright, which controlled access to some API
83   modules, has been removed.
84 * …
86 === New user-facing features in 1.43 ===
88 * (T338341) Support reading XMP and EXIF from WebP files
89 * (T365636) Wiki's with wgAllowExternalImages enabled now detect urls
90   with AVIF, SVG and WebP images.
91 * (T242346) Special:TalkPage is a new special page that will redirect to the
92   associated talk namespace page, e.g. [[Special:TalkPage/Foo]] redirects to
93   [[Talk:Foo]]; [[Special:TalkPage/Project:Foo]] goes to [[Project talk:Foo]].
94   This allows for links by templates and tools without having to parse what
95   namespaces are valid and have associated talk pages.
96 * New preference: "Send password reset emails only when both email address
97   and username are provided."
98 * (T4085) Added new magic word {{USERLANGUAGE}} which returns the language code
99   of the interface set by the user.
100 * …
102 === New features for sysadmins in 1.43 ===
104 * …
106 === New developer features in 1.43 ===
108 * StatusValue class gained new method getMessages(): MessageSpecifier[],
109   allowing the errors to be inspected and displayed more easily, for example:
110     foreach ( $status->getMessages() as $msg ) {
111       if ( $msg->getKey() !== 'ignored-message' ) {
112         $this->getOutput()->addWikiMsg( $msg );
113       }
114     }
115 * The REST API framework now supports defining redirects in route definition
116   files. See MediaWiki\Rest\Handler\RedirectHandler for details.
117 * (T13555) Skins can enable the 'supportsMwHeading' option for new, more
118   accessible HTML markup for wikitext headings. MediaWiki's own styles and
119   scripts have been updated to support it, but your skin may also need updates.
120   More information: https://www.mediawiki.org/wiki/Heading_HTML_changes
121   A future release will emit deprecation warnings for skins with
122   'supportsMwHeading' set to false.
123 * The AuthPreserveQueryParams hook was added.
124 * (T219397) New `Language::formatDurationBetweenTimestamps()` function added
125   which takes two timestamps and a precision in order to calculate a more
126   accurate text representation of duration.
127 * Added an interactive mode to the install.php maintenance script.
128 * The ResourceLoaderModifyEmbeddedSourceUrls hook was added.
129 * The AuthManagerFilterProviders hook was added.
130 * The AuthManagerVerifyAuthentication hook was added.
131 * The OutputPageRenderCategoryLink hook was added, as a replacement for the
132   deprecated OutputPageMakeCategoryLinks hook.
133 * PreAuthenticationProvider, PrimaryAuthenticationProvider, and
134   SecondaryAuthenticationProvider now receive a `canAlwaysAutocreate` flag in
135   the options of the `testUserForCreation` invocation. This flag is true when
136   the session provider is exempt from autocreate user permissions checks.
137 * The CentralIdLookup service gained the isOwned() method, which can be used
138   to check if a local username is reserved for a central user, even if a local
139   user account does not exist yet. This can be used by extensions to look
140   up information about the central user.
141 * (T251790) A Jest-based test suite has been introduced for testing front-end
142   code such as Vue components. Tests can be run via `npm run jest`, and test
143   files live in `tests/jest/`. See https://www.mediawiki.org/wiki/Jest
144   for more information.
145 * The SpreadAnyEditBlock hook was added.
146 * …
148 === External library changes in 1.43 ===
150 * The OOjs Router library has been merged into core and will be archived
151   upstream.
153 ==== New external libraries ====
155 * …
157 ===== New development-only external libraries =====
159 * (T251790) Some development-only external libraries have been added for the new
160   testing tools for front-end Vue components:
161  * Added jest and jest-environment-jsdom at v29.7.0.
162  * Added @vue/test-utils v2.4.6.
163  * Added @vue/vue3-jest v29.2.6.
164  * Added @babel/preset-env v7.25.4.
165  * Codex, already available via ResourceLoader, now has the npm versions, i.e.
166    @wikimedia/codex and @wikimedia/codex-icons, also installed for this testing.
167 * …
169 ==== Changed external libraries ====
171 * Updated codex, codex-design-tokens and codex-icons
172   from v1.3.6 to v1.13.1.
173 * Updated composer/semver from 3.4.0 to 3.4.2.
174 * Updated guzzlehttp/guzzle from 7.7.1 to 7.8.1.
175 * Updated jquery.i18n from 1.0.7 to 1.0.10.
176 * Updated pear/net_smtp from 1.11.1 to 1.12.1.
177 * Updated monolog/monolog from 2.9.2 to 2.9.3.
178 * Updated symfony/yaml from 5.4.35 to 5.4.39.
179 * Updated OOUI from v0.49.1 to v0.51.1.
180 * Updated wikimedia/at-ease from 2.1.0 to 3.0.0.
181 * Updated wikimedia/json-codec from 3.0.1 to 3.0.2.
182 * Updated wikimedia/less.php from 4.2.1 to 5.1.1.
183 * Updated wikimedia/minify from 2.7.0 to 2.8.0.
184 * Updated wikimedia/php-session-serializer from 2.0.1 to 3.0.0.
185 * Updated wikimedia/xmp-reader from 0.9.1 to 0.9.2.
186 * Updated vue from 3.3.9 to 3.4.27.
187 * Updated symfony/polyfill-php80 from 1.29.0 to 1.30.0.
188 * Updated symfony/polyfill-php81 from 1.29.0 to 1.30.0.
189 * Updated symfony/polyfill-php82 from 1.29.0 to 1.30.0.
190 * Updated symfony/polyfill-php83 from 1.29.0 to 1.30.0.
191 * …
193 ===== Changed development-only external libraries =====
195 * Updated doctrine/dbal from 3.7.2 to 3.8.4.
196 * Updated eslint-config-wikimedia from 0.26.0 to 0.27.0.
197 * Updated mediawiki/mediawiki-codesniffer from 43.0.0 to 44.0.0.
198 * Updated phpunit/phpunit from 9.6.16 to 9.6.19.
199 * Updated seld/jsonlint from 1.10.1 to 1.10.2.
200 * …
202 ==== Removed external libraries ====
204 * …
206 === Bug fixes in 1.43 ===
208 * When using the 'runMaintenance' method in a LoadExtensionSchemaUpdates hook
209   handler, only the script's class name is required, not its path. (T367918)
210 * QueryPage::recache() (used by the updateSpecialPages.php maintenance script)
211   no longer attempts to ignore database errors. (T278543)
212 * …
214 === Action API changes in 1.43 ===
216 * APIQueryUserInfo now returns null in the field registrationdate for users
217   created before December 2005 (their registration date was not recorded).
218 * …
220 === Action API internal changes in 1.43 ===
222 * …
224 === Languages updated in 1.43 ===
225 MediaWiki supports over 350 languages. Many localisations are updated regularly.
226 Below only new and removed languages are listed, as well as changes to languages
227 because of Phabricator reports.
229 * (T357853) Added unidirectional script conversion for Meitei to Bengali script.
230 * (T367377) Updated the autonym for Tai Nuea (tdd)
231 * (T375947) Updated the autonym for Komering (kge)
232 * (T354937, T362041) Added language support for Minnan (Traditional Han script)
233   (nan-hant).
234 * (T290657) Added language support for Levantine Arabic (apc).
235 * (T364291) Added language support for Musi, also known as Palembang (mui).
236 * (T364737) Added language support for Haryanvi (bgc).
237 * (T365365) Added language support for Chakma (ccp).
238 * (T367991) Added language support for Iban (iba).
239 * (T367688) Added language support for Interslavic (Latin) (isv-latn).
240 * (T375360) Added language support for Interslavic (Cyrillic) (isv-cyrl).
241 * (T370123) Added language support for Nupe (nup).
242 * (T371051) Added language support for Saint Lucian Creole (acf).
243 * (T354937, T370987) Added language support for Minnan (Pe̍h-ōe-jī)
244   (nan-latn-pehoeji).
245 * (T354937, T369899) Added language support for Minnan (Tâi-lô)
246   (nan-latn-tailo).
247 * (T375052) Added language support for Tigre (tig).
248 * (T375999) Added language support for Luba-Lulua (lua).
249 * (T376248) Added language support for Duala (dua).
250 * (T375377) Added language support for Southern Ndebele (nr).
251   This is done experimentally, with only a Names.php entry and
252   namespace translations, before we have actual localized strings.
253   For details, see https://www.mediawiki.org/wiki/Future_of_Language_Incubation.
254 * …
256 === Breaking changes in 1.43 ===
258 * ErrorPageError public properties 'msg' and 'title' may now contain
259   any MessageSpecifier object, not just Message.
260 * Reset button functionality suppressReset() and $mShowReset from HTMLForm
261   was removed without replacement.
262 * UserGroupMembership::getGroupName(), deprecated in 1.38, and
263   UserGroupMembership::getGroupMemberName(), deprecated in 1.40, have
264   been removed.
265 * SerializedValueContainer::isUnified(), deprecated in 1.42, has been
266   removed.
267 * Parser::getFreshParser(), deprecated in 1.39, has been removed.
268 * ParserOutput::getLanguageLinks() no longer returns a reference to the
269   internal array.
270 * ConfigFactory::getDefaultInstance(), deprecated since 1.27, has been
271   removed.
272 * wfGetLangObj(), deprecated since 1.41, has been removed in favor of
273   LanguageFactory::getLanguage().
274 * wfRemoveDotSegments(), deprecated in 1.39, has been removed.
275 * IReadableDatabase::getReplicaPos() has been removed without deprecation
276   as it's not used anywhere.
277 * CommentFormatter::formatStringsAsBlock() has been removed without deprecation
278   as it's not used anywhere.
279 * ILoadBalancer::laggedReplicaUsed() has been moved to ILoadBalancerForOwner::
280   effectively making it internal.
281 * Define DB_MASTER, deprecated since 1.36, has been removed.
282 * ILoadBalancer::DB_MASTER, deprecated since 1.36, has been removed.
283 * Overriding MWException::getHTML(), ::getText(), ::getPageTitle(), and
284   ::reportHTML() in order to display custom exception messages is no
285   longer supported.
286 * In PageHandlerTestTrait, the newRouter() method was renamed to
287   newRouterForPageHandler() to avoid a conflict with a method of the same
288   name in RestTestTrait. Also, PageHandlerTestTrait is no longer marked as
289   "stable to use". It was marked this way by accident, the functionality it
290   provides is specific to certain handlers implemented in MediaWiki core.
291 * MediaWikiIntegrationTestCase::addCoreDBData(), deprecated since 1.41, has
292   been removed.
293 * wfUnpack(), deprecated since 1.42, has been removed in favor of
294   StringUtils::unpack().
295 * UIDGenerator, deprecated since 1.35, has been removed.
296 * TablePager::getBody(), final and deprecated since 1.24, has been removed.
297   Use ::getBodyOutput() or ::getFullOutput() instead.
298 * ImportableUploadRevisionImporter::downloadSource(), deprecated in 1.31, is now
299   private. Its only known external caller was removed in 1.40.
300 * The following methods in the User class have been removed:
301   * Deprecated in 1.33:
302     * User::isBlockedFrom()
303   * Deprecated in 1.34:
304     * User::isBlocked()
305   * Deprecated in 1.35:
306     * User::addGroup()
307     * User::getAllGroups()
308     * User::getGroups()
309     * User::getGroupMemberships()
310     * User::getImplicitGroups()
311     * User::getOption()
312     * User::removeGroup()
313   * Deprecated in 1.37:
314     * User::isBlockedFromCreateAccount()
315 * BotPassword::invalidateAllPasswordsForCentralId() and
316   BotPassword::removeAllPasswordsForCentralId(), deprecated in 1.37,
317   have been removed.
318 * Title::getBrokenLinksFrom(), deprecated in 1.42, has been removed.
319 * The $type parameter to Skin::getCopyright(), deprecated in 1.40, has been
320   removed.
321 * The module `mediawiki.icon`, deprecated in 1.42, has been removed.
322 * The `@vue/composition-api` module, a deprecated alias for `vue` since 1.41,
323   has been removed. Use `vue` directly.
324 * SiteConfiguration::extractVar() and ::extractGlobal(), deprecated in 1.41,
325   have been removed.
326 * Skin::footerLink(), deprecated in 1.40, has been removed.
327 * Skin::getAction(), deprecated in 1.39, has been removed.
328 * Title::getCdnUrls() and Title::purgeSquid(), deprecated in 1.35, have been
329   removed.
330 * The `mediawiki.pager.tablePager` module, deprecated in 1.38, has been
331   removed in favor of the more generic `mediawiki.pager.styles`.
332 * BagOStuff::setNewPreparedValues(), deprecated in 1.40, has been removed.
333 * Constructing MWHttpRequest objects now requires timeout and connectTimeout to
334   be set; this was deprecated in 1.35.
335 * Hooks that were run from SpecialContributions are now run from the parent,
336   ContributionsSpecialPage. The page passed in is a ContributionsSpecialPage
337   type, and documentation and type comparisons may need to be updated. Affected
338   hooks are: ContributionsBeforeMainOutputHook, ContributionsToolLinksHook,
339   SpecialContributions__getForm__filtersHook.
340 * Hooks that were run from ContribsPager are now run from the parent,
341   ContributionsPager. If a pager is passed in, it is a ContributionsPager type,
342   and documentation and type comparisons may need to be updated. Affected
343   hooks are: ContribsPager__reallyDoQueryHook, ContribsPager__getQueryInfoHook,
344   ContributionsLineEndingHook, SpecialContributions__formatRow__flagsHook.
345 * Hooks that were run from DeletedContribsPager are now run from the parent,
346   ContributionsPager. If a pager is passed in, it is a ContributionsPager type,
347   and documentation and type comparisons may need to be updated. Affected
348   hooks are: DeletedContribsPager__reallyDoQueryHook and
349   DeletedContributionsLineEndingHook.
350 * The public method ContributionsSpecialPage::getUserLinks has been made
351   protected. Although not marked @internal, the method was public to be called
352   from SpecialDeletedContributions (call now removed), and was not called from
353   anywhere else.
354 * DatabaseBlock::purgeExpired, deprecated since 1.38, has been removed.
355 * AbstractBlock::getPermissionsError, deprecated since 1.35, has been removed.
356 * IDatabase::namedLocksEnqueue() has been removed without deprecation.
357 * IDatabase::getTopologyRole() has been removed without deprecation.
358 * IDatabase::getTopologyBasedServerId() has been removed without deprecation.
359   Use IDatabase::getServerName() instead.
360 * IReadableDatabase::wasReadOnlyError() has been removed without deprecation.
361   Use IDatabase::isReadOnly() instead.
362 * IReadableDatabase::wasDeadlock() has been removed without deprecation.
363 * ILoadBalancer::getWriterIndex() has been removed without deprecation.
364   Use ServerInfo::WRITER_INDEX constant instead.
365 * MaintainableDBConnRef, deprecated since 1.39, has been removed.
366 * ILoadBalancer::reuseConnection(), deprecated since 1.39, has been removed.
367 * The $domain parameter to ILoadBalancer::getReadOnlyReason(), deprecated in
368   1.40, has been removed.
369 * WikiPage::doDeleteArticleBatched, hard deprecated since 1.37, has been
370   removed.
371 * SpecialEmailUser::submit, deprecated since 1.41, has been removed.
372 * SpecialEmailUser::validateTarget, deprecated since 1.41, has been removed.
373 * SpecialEmailUser::getPermissionsError, deprecated since 1.41 has been
374   removed.
375 * SpecialBlock::getTargetAndType, deprecated since 1.36, has been removed.
376 * ApiQueryBlockInfoTrait::addBlockInfoToQuery(), deprecated since 1.42, has been
377   removed.
378 * Linker::makeExternalLink() has been deprecated in favor of
379   LinkRenderer::makeExternalLink(), which has a improved API to help phan's
380   SecurityCheckPlugin provide more accurate checks for escaping issues.
381 * Linker::makeHeadline(), Linker::generateTOC(), Linker::tocIndent(),
382   Linker::tocUnindent(), Linker::tocLine(), Linker::tocLineEnd(), and
383   Linker::tocList(), deprecated in 1.42, have been removed.
384 * Linker::formatComment(), Linker::formatLinksInComment(),
385   Linker::commentBlock(), and Linker::revComment(), deprecated in 1.38,
386   have been removed.
387 * UserCache::singleton(), deprecated in 1.43, now emits deprecation warnings.
388   Use MediaWikiServices::getInstance()->getUserCache() instead.
389 * DummyLinker has been removed. The former DummyLinker parameter
390   to the 'ImageBeforeProduceHTML' hook is now null.
391 * The following methods of IDatabase have been moved to internal interface
392   IDatabaseForOwner without deprecation. These methods are internal and
393   shouldn't be used outside of rdbms library:
394   - ::pendingWriteCallers()
395   - ::flushSession()
396   - ::lastDoneWrites()
397   - ::setTransactionListener()
398   - ::serverIsReadOnly()
399   - ::getPrimaryPos()
400   - ::pendingWriteQueryDuration()
401   - ::writesOrCallbacksPending()
402   - ::writesPending()
403   - ::primaryPosWait()
404 * IMaintainableDatabase::listViews(), deprecated since 1.42, has been removed.
405 * IMaintainableDatabase::truncate(), deprecated since 1.42, has been removed.
406 * IMaintainableDatabase::textFieldSize() was removed without deprecation.
407 * ReplicatedBagOStuff, deprecated since 1.42, has been removed.
408 * The 'replicaOnly' option to SqlBagOStuff has been removed without deprecation.
409   It existed for internal use by SqlBagOStuff only.
410 * Support for WinCache as local server cache has been removed, because WinCache
411   is not available for supported versions of PHP. The WinCacheBagOStuff class
412   has been removed. Use MediaWikiServices::getLocalServerObjectCache() instead,
413   or the CACHE_ACCEL type instead, which automatically selects APCu when
414   available.
415   The "wincache" cache type (e.g. to ObjectCache::getInstance, and in
416   "wg*CacheType" configuration) remains supported as an alias for CACHE_ACCEL.
417 * LockManager::sha1Base16Absolute(), has been removed without deprecation.
418 * The "options" parameter to User::createNew() and the $data parameter to
419   UserOptionsManager::loadUserOptions() were removed.
420 * `.list-style-image()` mixin from mediawiki.mixins.less, deprecated since 1.38,
421   has been removed.
422 * `.background-image()` mixin from mediawiki.mixins.less, deprecated since 1.38,
423   has been removed.
424 * IDatabase::nextSequenceValue(), deprecated since 1.30, was removed.
425 * $wgAPIRequestLog was removed without deprecation. Use "api" and "api-request"
426   wgDebugLogGroups channels or SPI instead.
427 * The setStats() method in MediaWiki\Rest\Router now expects a StatsFactory
428   rather than a StatsdDataFactoryInterface. The method has been marked @internal
429   and should not be called by extensions.
430 * All `@width-breakpoint-*` Less variables have been removed. Use
431   `@min-width-breakpoint-*`/`@max-width-breakpoint-*` instead.
432 * The MessageContent class, deprecated since 1.38, is now removed. This also
433   means that the Message::content() method is also removed.
434 * The following ParserOption methods, deprecated since 1.35, were removed:
435   - ::setAllowExternalImages()
436   - ::setAllowExternalImagesFrom()
437   - ::setEnableImageWhitelist()
438 * Sanitizer::removeHTMLtags(), deprecated since 1.38, has been removed.
439 * OutputPage::getCSPNonce(), deprecated since 1.35, has been removed.
440 * UserMailer::rfc822Phrase(), deprecated since 1.38, has been removed.
441 * QueryPage::getSQL(), deprecated since 1.39, has been removed. The replacement
442   QueryPage::getQueryInfo() is now abstract.
443 * update-keys.sql was removed. It is not recommended to install MediaWiki by
444   manually sourcing SQL files, but if you are doing this, run
445   `update.php --initial` instead of sourcing update-keys.sql.
446 * MediaWikiVersionFetcher, deprecated since 1.42 has been removed.
447 * …
449 === Deprecations in 1.43 ===
451 * The methods StatusValue::getErrors() and StatusValue::getErrorsByType(),
452   as well as Status::getErrorsArray() and Status::getWarningsArray(), have
453   been deprecated in favor of new method StatusValue::getMessages().
454 * PermissionManager::getPermissionErrors() has been deprecated in favor
455   of getPermissionStatus().
456 * PermissionStatus::toLegacyErrorArray() is deprecated with no replacement.
457 * PermissionsError properties $errors and $permission are deprecated.
458   To display the error, throw it or use ->report().
459 * (T166010) All PHP code in MediaWiki is slowly being moved to be in a class
460   namespace as appropriate, so that we can use PSR-4 auto-loading, which will
461   speed up general code loading of MediaWiki. The old global namespace class
462   names are being left behind as deprecated aliases.
464   In this release of MediaWiki, XYZ classes now have a namespace and XYZ do
465   not yet (XYZ% done, up from 69% in MediaWiki 1.42.0). The following have newly
466   been moved:
467   - MediaWiki\Api:
468     - ApiAMCreateAccount
469     - ApiAcquireTempUserName
470     - ApiAuthManagerHelper
471     - ApiBase
472     - ApiBlock
473     - ApiBlockInfoTrait
474     - ApiCSPReport
475     - ApiChangeAuthenticationData
476     - ApiChangeContentModel
477     - ApiCheckToken
478     - ApiClearHasMsg
479     - ApiClientLogin
480     - ApiComparePages
481     - ApiContinuationManager
482     - ApiCreateTempUserTrait
483     - ApiDelete
484     - ApiDisabled
485     - ApiEditPage
486     - ApiEmailUser
487     - ApiErrorFormatter
488     - ApiErrorFormatter_BackCompat
489     - ApiExpandTemplates
490     - ApiFeedContributions
491     - ApiFeedRecentChanges
492     - ApiFeedWatchlist
493     - ApiFileRevert
494     - ApiFormatBase
495     - ApiFormatFeedWrapper
496     - ApiFormatJson
497     - ApiFormatNone
498     - ApiFormatPhp
499     - ApiFormatRaw
500     - ApiFormatXml
501     - ApiFormatXmlRsd
502     - ApiHelp
503     - ApiHelpParamValueMessage
504     - ApiImageRotate
505     - ApiImport
506     - ApiImportReporter
507     - ApiLinkAccount
508     - ApiLogin
509     - ApiLogout
510     - ApiMain
511     - ApiManageTags
512     - ApiMergeHistory
513     - ApiMessage
514     - ApiMessageTrait
515     - ApiModuleManager
516     - ApiMove
517     - ApiOpenSearch
518     - ApiOpenSearchFormatJson
519     - ApiOptions
520     - ApiOptionsBase
521     - ApiPageSet
522     - ApiParamInfo
523     - ApiParse
524     - ApiPatrol
525     - ApiProtect
526     - ApiPurge
527     - ApiQuery
528     - ApiQueryAllCategories
529     - ApiQueryAllDeletedRevisions
530     - ApiQueryAllImages
531     - ApiQueryAllLinks
532     - ApiQueryAllMessages
533     - ApiQueryAllPages
534     - ApiQueryAllRevisions
535     - ApiQueryAllUsers
536     - ApiQueryAuthManagerInfo
537     - ApiQueryBacklinks
538     - ApiQueryBacklinksprop
539     - ApiQueryBase
540     - ApiQueryBlockInfoTrait
541     - ApiQueryBlocks
542     - ApiQueryCategories
543     - ApiQueryCategoryInfo
544     - ApiQueryCategoryMembers
545     - ApiQueryContributors
546     - ApiQueryDeletedRevisions
547     - ApiQueryDeletedrevs
548     - ApiQueryDisabled
549     - ApiQueryDuplicateFiles
550     - ApiQueryExtLinksUsage
551     - ApiQueryExternalLinks
552     - ApiQueryFileRepoInfo
553     - ApiQueryFilearchive
554     - ApiQueryGeneratorBase
555     - ApiQueryIWBacklinks
556     - ApiQueryIWLinks
557     - ApiQueryImageInfo
558     - ApiQueryImages
559     - ApiQueryInfo
560     - ApiQueryLangBacklinks
561     - ApiQueryLangLinks
562     - ApiQueryLanguageinfo
563     - ApiQueryLinks
564     - ApiQueryLogEvents
565     - ApiQueryMyStashedFiles
566     - ApiQueryPagePropNames
567     - ApiQueryPageProps
568     - ApiQueryPagesWithProp
569     - ApiQueryPrefixSearch
570     - ApiQueryProtectedTitles
571     - ApiQueryQueryPage
572     - ApiQueryRandom
573     - ApiQueryRecentChanges
574     - ApiQueryRevisions
575     - ApiQueryRevisionsBase
576     - ApiQuerySearch
577     - ApiQuerySiteinfo
578     - ApiQueryStashImageInfo
579     - ApiQueryTags
580     - ApiQueryTokens
581     - ApiQueryUserContribs
582     - ApiQueryUserInfo
583     - ApiQueryUsers
584     - ApiQueryWatchlist
585     - ApiQueryWatchlistRaw
586     - ApiRawMessage
587     - ApiRemoveAuthenticationData
588     - ApiResetPassword
589     - ApiResult
590     - ApiRevisionDelete
591     - ApiRollback
592     - ApiRsd
593     - ApiSerializable
594     - ApiSetNotificationTimestamp
595     - ApiSetPageLanguage
596     - ApiStashEdit
597     - ApiTag
598     - ApiUnblock
599     - ApiUndelete
600     - ApiUpload
601     - ApiUsageException
602     - ApiUserrights
603     - ApiValidatePassword
604     - ApiWatch
605     - ApiWatchlistTrait
606     - IApiMessage
607     - SearchApi
608   - MediaWiki\Content:
609     - AbstractContent
610     - CodeContentHandler
611     - Content
612     - ContentHandler
613     - ContentModelChange
614     - CssContent
615     - CssContentHandler
616     - FallbackContent
617     - FallbackContentHandler
618     - FileContentHandler
619     - JavaScriptContent
620     - JavaScriptContentHandler
621     - JsonContent
622     - JsonContentHandler
623     - TextContent
624     - TextContentHandler
625     - WikitextContent
626     - WikitextContentHandler
627     - WikiTextStructure
628   - MediaWiki\Debug:
629     - DeprecationHelper
630     - MWDebug
631   - MediaWiki\Deferred:
632     - RefreshSecondaryDataUpdate
633   - MediaWiki\FileBackend:
634     - FileBackendGroup – FIXME: Should this be in Wikimedia\FileBackend instead?
635   - MediaWiki\Json:
636     - FormatJson
637   - MediaWiki\Language:
638     - Language
639     - LanguageCode
640     - ILanguageConverter
641     - LanguageConverter
642     - ConverterRule
643     - ReplacementArray
644   - MediaWiki\Maintenance:
645     - BackupDumper
646     - Benchmarker
647     - DeleteLocalPasswords
648     - FakeMaintenance
649     - LoggedUpdateMaintenance
650     - MWDoxygenFilter
651     - Maintenance
652     - SchemaMaintenance
653     - SevenZipStream
654     - TextPassDumper
655   - MediaWiki\Parser:
656     - BlockLevelPass
657     - CacheTime
658     - CoreMagicVariables
659     - CoreParserFunctions
660     - CoreTagHooks
661     - DateFormatter
662     - DateFormatterFactory
663     - LinkHolderArray
664     - MWTidy
665     - PPCustomFrame_Hash
666     - PPDPart_Hash
667     - PPDStackElement_Hash
668     - PPDStack_Hash
669     - PPFrame
670     - PPFrame_Hash
671     - PPNode
672     - PPNode_Hash_Array
673     - PPNode_Hash_Attr
674     - PPNode_Hash_Text
675     - PPNode_Hash_Tree
676     - PPTemplateFrame_Hash
677     - ParserCache
678     - ParserFactory
679     - ParserOptions
680     - Preprocessor
681     - Preprocessor_Hash
682     - StripState
683   - MediaWiki\RCFeed:
684     - FormattedRCFeed
685     - IRCColourfulRCFeedFormatter
686     - JSONRCFeedFormatter
687     - MachineReadableRCFeedFormatter
688     - RCFeed
689     - RCFeedFormatter
690     - RedisPubSubFeedEngine
691     - UDPRCFeedEngine
692     - XMLRCFeedFormatter
693   - MediaWiki\RenameUser:
694     - RenameUserJob
695   - MediaWiki\Registration:
696     - ExtensionDependencyError
697     - ExtensionJsonValidationError
698     - ExtensionJsonValidator
699     - ExtensionProcessor
700     - ExtensionRegistry
701     - MissingExtensionException
702     - Processor
703     - VersionChecker
704   - MediaWiki\RevisionList:
705     - RevisionItem
706     - RevisionItemBase
707     - RevisionList
708     - RevisionListBase
709   - MediaWiki\Watchlist:
710     - ActivityUpdateJob
711     - ClearUserWatchlistJob
712     - ClearWatchlistNotificationsJob
713     - NoWriteWatchedItemStore
714     - WatchedItem
715     - WatchedItemQueryService
716     - WatchedItemQueryServiceExtension
717     - WatchedItemStore
718     - WatchedItemStoreInterface
719     - WatchlistExpiryJob
720   - MediaWiki\Xml:
721     - Xml
722     - XmlSelect
723   - Wikimedia\FileBackend:
724     - FSFileBackend
725     - FSFileBackendDirList
726     - FSFileBackendFileList
727     - FSFileBackendList
728     - FileBackend
729     - FileBackendError
730     - FileBackendMultiWrite
731     - FileBackendStore
732     - FileBackendStoreShardDirIterator
733     - FileBackendStoreShardFileIterator
734     - FileBackendStoreShardListIterator
735     - FileOpBatch
736     - HTTPFileStreamer
737     - MemoryFileBackend
738     - SwiftFileBackend
739     - SwiftFileBackendDirList
740     - SwiftFileBackendFileList
741     - SwiftFileBackendList
742     - Wikimedia\FileBackend\FileOps:
743       - CopyFileOp
744       - CreateFileOp
745       - DeleteFileOp
746       - DescribeFileOp
747       - FileOp
748       - FileStatePredicates
749       - MoveFileOp
750       - NullFileOp
751       - StoreFileOp
752     - Wikimedia\FileBackend\FileOpHandle:
753       - FSFileOpHandle
754       - SwiftFileOpHandle
755       - FileBackendStoreOpHandle
756     - Wikimedia\FileBackend\FSFile:
757       - FSFile
758       - TempFSFile
759       - TempFSFileFactory
760   - Wikimedia\Http:
761     - MultiHttpClient
762   - Wikimedia\Message:
763     - MessageSpecifier
764   - Wikimedia\Mime:
765     - MSCompoundFileReader
766     - MimeAnalyzer
767     - XmlTypeCheck
768   - Wikimedia\ObjectCache:
769     - APCUBagOStuff
770     - BagOStuff
771     - CachedBagOStuff
772     - EmptyBagOStuff
773     - HashBagOStuff
774     - IStoreKeyEncoder
775     - MediumSpecificBagOStuff
776     - MemcachedBagOStuff
777     - MemcachedPeclBagOStuff
778     - MemcachedPhpBagOStuff
779     - MultiWriteBagOStuff
780     - RESTBagOStuff
781     - RedisBagOStuff
782     - WANObjectCache
783     - WinCacheBagOStuff
784   - Wikimedia\Rdbms:
785     - DBAccessObjectUtils
786     - IDBAccessObject
787   - Wikimedia\Redis:
788     - RedisConnectionPool
789     - RedisConnRef
790   - Wikimedia\Stats:
791     - BufferingStatsdDataFactory
792     - IBufferingStatsdDataFactory
793     - NullStatsdDataFactory
794     - PrefixingStatsdDataFactoryProxy
795     - SamplingStatsdClient
796     - StatsdAwareInterface
797 * MessageCache::get() with $language other than Language or null is
798   deprecated and emits deprecation warnings. For high-level access,
799   use wfMessage() or RequestContext::msg() instead.
800 * Manually constructing a Language object, deprecated in 1.35, now emits
801   deprecation warnings. Use LanguageFactory instead.
802 * MediaWiki\Languages\Data\Names::$names is deprecated.
803 * SearchEngineConfig::getConfig() has been deprecated, use DI with
804   ServiceOptions to inject the required options.
805 * ObjectCache::isDatabaseId() and ::getLocalClusterInstance() have been
806   deprecated. Use their equivalents in ObjectCacheFactory.
807 * Using the "post" source in parameter declarations returned from
808   Handler::getParamSettings() is deprecated, use "body" instead.
809 * ISQLPlatform::tableNamesN() is now deprecated.
810 * The implementation in SQLPlatform of ISQLPlatform::tableNames(), deprecated in
811   MediaWiki 1.39, now emits deprecation warnings.
812 * Title::getTitleProtection(), deprecated in 1.37, now emits warnings. You can
813   use RestrictionStore::getCreateProtection() instead.
814 * Title::loadRestrictions(), deprecated in 1.37, now emits warnings.
815 * Title::flushRestrictions(), deprecated in 1.37, now emits warnings.
816 * Title::getPageViewLanguage(), deprecated in 1.42, now emits warnings.
817 * wfUrlProtocols(), deprecated in 1.39, now emits warnings.
818 * wfGetServerUrl(), deprecated in 1.39, now emits warnings.
819 * wfExpandIRI(), deprecated in 1.39, now emits warnings.
820 * The following methods, previously deprecated, now emit deprecation warnings:
821   - ContentHandler::getDefaultModelFor(), deprecated since 1.33
822   - ContentHandler::getAllContentFormats(), deprecated since 1.35
823   - ContentHandler::getContentModels(), deprecated since 1.35
824   - ContentHandler::getForContent(), deprecated since 1.35
825   - ContentHandler::getForModelID(), deprecated since 1.35
826   - ContentHandler::getContentText(), deprecated since 1.37
827 * Passing a Message argument to OutputPage::setPageTitle(), which was
828   deprecated in 1.41, now emits warnings.
829 * OutputPage::showFatalError() is deprecated, use showErrorPage() instead.
830 * OutputPage::showPermissionsErrorPage() is deprecated,
831   use showPermissionStatus() instead.
832 * OutputPage::formatPermissionsErrorMessage(), deprecated since 1.36,
833   now emits deprecation warnings. Use formatPermissionStatus() instead.
834 * OutputPage::setCategoryLinks() has been deprecated and emits deprecation
835   warnings.  Use ::addCategoryLinks() instead.
836 * OutputPage::setLanguageLinks() has been deprecated; use ::addLanguageLinks()
837   instead.
838 * (T375975) Language::embedBidi() has been deprecated; use <bdi> HTML tag
839   instead.
840 * (T375975) Language::getDirMark() has been deprecated; use <bdi> HTML tag
841   instead.
842 * (T375975) Language::getDirMarkEntity() has been hard deprecated; use
843   <bdi> HTML tag instead.
844 * (T375975) The unused third parameter of Language::specialList is removed as
845   the method isolates the title unconditionally from the details.
846 * LoadBalancer::getConnectionRef(), deprecated since 1.39, now emits deprecation
847   warnings. Use ::getConnection() instead.
848 * DBAccessObjectUtils::getDBOptions() is deprecated, use
849   SelectQueryBuilder::recency() instead.
850 * IDatabase::lockForUpdate is deprecated, use
851   SelectQueryBuilder::acquireRowLocks instead.
852 * wfGetUrlUtils() is deprecated; instead, get a UrlUtils from services.
853 * DerivedPageDataUpdater::getPreparedEdit(), provided for back-compatibility, is
854   now deprecated; use the getters directly, instead.
855 * AuthManager::forcePrimaryAuthenticationProviders(), provided for back-
856   compatibility, is now deprecated.
857 * WikiPage::hasDifferencesOutsideMainSlot(), provided as a stop-gap before
858   refactoring to support MCR, is now deprecated.
859 * ChangesList::getTimestamp() has been deprecated; use ::revDateLink() instead.
860 * RecentChange::doMarkPatrolled() is deprecated, use
861   RecentChange::markPatrolled() instead.
862 * LogFormatter::newFromRow() and LogFormatter::newFromEntry(), deprecated since
863   1.42, now emit deprecation warnings.
864 * LinksUpdate::getAddedLinks(), ::getRemovedLinks(), deprecated since 1.38, now
865   emit deprecation warnings.
866 * TitleLinksTable::getTitleArray(), deprecated since 1.38, now emits deprecation
867   warnings.
868 * SiteConfig::variants() has been deprecated; use ::variantsFor().
869 * ObjectCache::$instances and ::getInstance() have been deprecated; instead, use
870   ObjectCacheFactory::getInstance().
871 * WANObjectCache::clearLastError() and BagOStuff::clearLastError have been hard
872   deprecated, use ::watchErrors() together with ::getLastErrors() instead.
873 * BagOStuff::getSegmentationSize() and ::getSegmentedValueMaxSize() no longer
874   have any usage. The subclass' method in MediumSpecificBagOStuff overrides also
875   have no usage as well.
876 * ApiBase::errorArrayToStatus() is deprecated with no replacement.
877 * ApiTestCase::setExpectedApiException() has been deprecated; instead, use
878   ::expectApiErrorCode() to test error codes instead of messages.
879 * ApiPageSet::getTitles(), ApiPageSet::getGoodTitles(),
880   ApiPageSet::getMissingTitles(), ApiPageSet::getGoodAndMissingTitles(),
881   ApiPageSet::getRedirectTitles() and ApiPageSet::getSpecialTitles, deprecated
882   since 1.37, now emit deprecation warnings.
883 * QueryPage::setDBLoadBalancer() and ::getDBLoadBalancer() have been deprecated,
884   use QueryPage::setDatabaseProvider() or ::getDatabaseProvider() instead.
885 * User::isBlockedGlobally(), deprecated since 1.40, now emits deprecation
886   warnings.
887 * User::isBlockedFromEmailuser() and User::canSendEmail(), deprecated since
888   1.41, now emit deprecation warnings.
889 * wfMergeErrorArrays() has been deprecated.
890 * User::whoIs() and User::whoIsReal(), have been deprecated.
891 * UserCache class and MediaWikiServices::getUserCache(), have been deprecated.
892 * JsonUnserializable and related classes have been renamed to JsonDeserializable
893   to make it clearer that they're related to converting serialized content back
894   into JSON, rather than stating that things are not representable in JSON. The
895   previous class names have been left behind as deprecated aliases:
896    - JsonUnserializable -> JsonDeserializable
897    - JsonUnserializableTrait -> JsonDeserializableTrait
898    - JsonUnserializer -> JsonDeserializer
899   Additionally, JsonCodec's unserialize() and unserializeArray() methods have
900   also been renamed to deserialize() and deserializeArray(), with the old names
901   deprecated.
902 * In the REST framework, the the BodyValidator interface and all functionality
903   related to it are deprecated. They have been replaced by
904   Handler::getBodyParamSettings() and Handler::parseBodyData(). The following
905   interfaces, classes, and methods are affected:
906   - interface BodyValidator
907   - class JsonBodyValidator
908   - class NullValidator
909   - function Handler::getBodyValidator
910   - function Validator::validateBody
911 * StatusValue will emit deprecation warnings when an error is given as
912   a MessageSpecifier combined with a parameters array, which is usually
913   a mistake, as the parameters have always been ignored.
914 * In StatusValue::replaceMessage(), ::hasMessage() and ::hasMessagesExcept()
915   passing MessageSpecifier or MessageValue as $source has been deprecated.
916 * PageArchive::undeleteAsUser, deprecated since 1.35, now emits deprecation
917   warnings.
918 * DatabaseBlock::getQueryInfo() and DatabaseBlock::getRangeCond() are
919   deprecated and emit deprecation warnings. Use the equivalent methods in
920   DatabaseBlockStore.
921 * DatabaseBlockStore::getReadStage() and ::getWriteStage() are deprecated.
922   Use the new schema unconditionally.
923 * UserOptionsManager::resetOptions(), ::listOptionKinds and ::getOptionKinds are
924   deprecated and will emit deprecation warnings. Use the corresponding methods
925   in PreferencesFactory and UserOptionsManager::resetOptionsByName().
926 * The `i18n-all-lists-margins` and `interface-message-box` module of SkinModule
927   are deprecated. The former has been merged into the `elements` module, the
928   latter has no required replacement. See JavaScript console for instructions.
929 * ParsoidOutputAccess and all of its methods have been deprecated.  Use
930   ParserOutputAccess with ParserOptions::setUseParsoid() instead.
931 * ParserOutput::addJsConfigVars(), deprecated since 1.38, now emits deprecation
932   warnings. Use ParserOutput::setJsConfigVar() instead.
933 * ParserOutput::setLanguageLinks(null) now emits deprecation warnings.  Use
934   an empty array as an argument, not `null`.
935 * ParserOutput::setPageProperty() now emits deprecation warnings when called
936   with non-string values, which has been deprecated since 1.42.
937 * To support a future change allowing serializing of MessageValue objects
938   as JSON, the methods MessageValue::objectParams(), Message::objectParams()
939   and Message::objectParam() are deprecated. The UserGroupMembershipParam
940   class and the ParamType::OBJECT constant are likewise deprecated.
941 * The Less mixin .column-break-after-avoid() is deprecated. Use just the
942   CSS rule `break-after: avoid-column;` instead now.
943 * The Less mixins .horizontal-gradient and .vertical-gradient are deprecated.
944   Use CSS rule linear-gradient directly.
945 * The following method are deprecated; instead call the appropriate
946   constructor method in PageRestHelperFactory with the appropriate
947   initialization arguments:
948   * HtmlOutputRendererHelper::init()
949   * HtmlMessageOutputHelper::init()
950   * HtmlInputTransformHelper::init()
951   Similarly, calling the constructor method in PageRestHelperFactory
952   without the appropriate initialization arguments is now deprecated.
953 * HTMLForm methods getPreText, setPreText, addPreText, getPostText,
954   setPostText, addPostText, getHeaderText, setHeaderText, addHeaderText,
955   getFooterText, setFooterText and addFooterText, deprecated since 1.38, now
956   emit deprecation warnings.
957 * FormSpecialPage methods preText and postText, deprecated since 1.38, now
958   emit deprecation warnings.
959 * EditPage::internalAttemptSave() is deprecated as part of cleaning up how
960   edits are saved, see T157658 for details.
961 * The MessageCache::get hook, deprecated since 1.41, now emits deprecation
962   warnings.
963 * Twelve deprecated properties of OutputPage now will emit warnings; their
964   relevant getters or setters should be used instead:
965   * mCategoryLinks       - getCategoryLinks() and setCategoryLinks()
966   * mCategories          - getCategories()
967   * mIndicators          - getIndicators() and setIndicators()
968   * mHeadItems           - getHeadItemsArray(), hasHeadItem(), addHeadItem(),
969                            and addHeadItems()
970   * mModules             - getModules() and addModules()
971   * mModuleStyles        - getModuleStyles() and addModuleStyles()
972   * mJsConfigVars        - getJsConfigVars() and addJsConfigVars()
973   * mTemplateIds         - getTemplateIds()
974   - mEnableClientCache   - Set with enableClientCache() and disableClientCache()
975   - mNewSectionLink      - Get with showNewSectionLink()
976   - mHideNewSectionLink  - Set with forceHideNewSectionLink()
977   - mNoGallery           - getNoGallery()
978 * mw.cookie.getCrossSite() has been deprecated due to the removal of
979   $wgUseSameSiteLegacyCookies in MW 1.42. Use mw.cookie.get().
980 * The 'help' key in HTMLForm descriptors is deprecated. Use the 'help-raw'
981   key instead.
982 * ImageGalleryBase::setWidths() and ::setHeights() will now emit a deprecation
983   warning if they are called without ImageGalleryBase::setParser() having been
984   called.  Please set the parser appropriately when using the image gallery.
985 * The hook OutputPageMakeCategoryLinks is deprecated. Use the new hook
986   OutputPageRenderCategoryLink instead.
987 * (T45646) The localisation messages 'copyright' and 'history_copyright' are
988   deprecated in favor of 'copyright-footer' and 'copyright-footer-history'.
989   The new messages are parsed as wikitext instead of being treated as raw HTML.
990 * (T45646) The hook 'SkinCopyrightFooter' is deprecated in favor of
991   'SkinCopyrightFooterMessage'. The new hook allows specifying copyright
992   messages that are parsed as wikitext instead of being treated as raw HTML.
993 * (T374314) The 'mw.Uri' module has been deprecated in favour of the browser-
994   native URL interface, which is now provided in all supported user agents. For
995   details, see <https://developer.mozilla.org/en-US/docs/Web/API/URL>.
996 * The parameter $default in WebRequest::getRawVal() is deprecated. Use ??
997   instead.
998 * SpecialBlock::processForm(), SpecialBlock::parseExpiryInput() and
999   SpecialBlock::canBlockEmail(), deprecated since 1.36, and
1000   SpecialBlock::getSuggestedDurations(), deprecated since 1.42, now emit
1001   deprecation warnings.
1002 * …
1004 === Other changes in 1.43 ===
1006 * Class aliases to support the old PHPUnit 4 style un-namespaced `PHPUnit_`
1007   classes (such as PHPUnit_Framework_Error) have been removed.
1008 * [Temporary accounts] If $wgAutoCreateTempUser is enabled, then MediaWiki
1009   will create a temporary account and log the user in for unsuccessful edit
1010   attempts and null edits, in addition to edits that change content. This is
1011   a change from the previous paradigm, where temporary accounts were created
1012   only for successful edits. This change is done to support better logging
1013   support and moderation, to ensure that hooks run in a pre-save context have
1014   a user object to associate log entries and other actions with.
1015 * Several entries have been removed from the default list of interwikis used
1016   when installing new wikis. This does not affect existing wikis.
1017 * User auto-creations are now performed as the target user instead of
1018   anonymous IP user.
1019 * [Temporary accounts] T359043 Temporary accounts for anonymous edits are
1020   enabled in DevelopmentSettings.php. To disable the feature, set
1021   `$wgAutoCreateTempUser['enabled'] = false;` in LocalSettings.php
1022 * Corrected the interpretation of empty arrays in extension configuration when
1023   the default value is null. Previously, an empty array specified by the
1024   administrator would transform into the default null value. It now
1025   appropriately retains its empty array state.
1026 * (T362536) Exempted "deletedhistory", "deletedtext", and "viewsuppressed"
1027   rights from namespace protection ($wgNamespaceProtection) since that's
1028   only meant to prevent write actions.
1029 * Image captions are no longer trimmed.
1030 * 'SpecialPasswordResetOnSubmit' hook handlers can now receive both the
1031   username and the email provided by the user, instead of only one of them.
1032 * …
1034 == Compatibility ==
1036 MediaWiki 1.43 requires PHP 8.1.0 or later and the following PHP extensions:
1038 * ctype
1039 * dom
1040 * fileinfo
1041 * iconv
1042 * intl
1043 * json
1044 * mbstring
1045 * openssl
1046 * xml
1048 MariaDB is the recommended database software. MySQL, PostgreSQL, or SQLite can
1049 be used instead, but support for them is somewhat less mature.
1051 The supported versions are:
1053 * MariaDB 10.3 or higher
1054 * MySQL 5.7.0 or higher
1055 * PostgreSQL 10 or later
1056 * SQLite 3.8.0 or later
1058 == Online documentation ==
1059 Documentation for both end-users and site administrators is available on
1060 MediaWiki.org, and is covered under the GNU Free Documentation License (except
1061 for pages that explicitly state that their contents are in the public domain):
1063   <https://www.mediawiki.org/wiki/Special:MyLanguage/Documentation>
1065 == Mailing list ==
1066 A mailing list is available for MediaWiki user support and discussion:
1068   <https://lists.wikimedia.org/postorius/lists/mediawiki-l.lists.wikimedia.org/>
1070 A low-traffic announcements-only list is also available:
1072   <https://lists.wikimedia.org/postorius/lists/mediawiki-announce.lists.wikimedia.org/>
1074 It's highly recommended that you sign up for one of these lists if you're
1075 going to run a public MediaWiki, so you can be notified of security fixes.
1077 == IRC help ==
1078 There's usually someone online in #mediawiki on irc.libera.chat.