aboutsummaryrefslogtreecommitdiffstats
path: root/RELEASE-NOTES-1.44
blob: 0355f639e5598d2b6a451c97e628e7474a22010f (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
= MediaWiki 1.44 =

== MediaWiki 1.44.0-PRERELEASE ==

THIS IS NOT A RELEASE YET

MediaWiki 1.44 is an alpha-quality development branch, and is not recommended
for use in production.

== Upgrading notes for 1.44 ==
Don't forget to always back up your database before upgrading!

See the file UPGRADE for more detailed per-version upgrade instructions from the
oldest supported upgrading version, MediaWiki 1.35.

Some specific notes for MediaWiki 1.44 upgrades are below:

* …

For notes on 1.43.x and older releases, see HISTORY.

=== Configuration changes for system administrators in 1.44 ===

* (T382987) The default value of 'http.dnsbl.sorbs.net.' in $wgDnsBlacklistUrls
  has been removed. This is because sorbs.net have stopped providing their
  services. This means that if you have $wgEnableDnsBlacklist set to true, it
  will no longer provide any value unless you add other servers to
  $wgDnsBlacklistUrls.
* Google search removed (T384678): If site search is disabled with
  $wgDisableTextSearch but $wgSearchForwardUrl is not set to a URL to which to
  forward searches, then MediaWiki used to show a Google search form. This has
  been removed, and instead a notice is displayed. System administrators should
  set e.g. $wgSearchForwardUrl = 'https://duckduckgo.com?q=$1' to avoid this.
* The 'exception-json' log channel has been removed. It previously provided
  structured exception data in a custom machine-readable format. Since
  MediaWiki 1.26, structured exception data conforming to the PSR-3 logging
  standard is also available on the 'exception' log channel.
  (Log channels can be configured using $wgMWLoggerDefaultSpi.)
* $wgUsersNotifiedOnAllChanges now requires the listed users to have confirmed
  email addresses, just like other kinds of email notifications do.
  You can confirm the email address by logging in as the user and using
  "Confirm your email address" in user preferences, or by running a maintenance
  script: resetUserEmail.php --no-reset-password <username> <new-email>
* …

==== New configuration ====

* (T377829) $wgAutopromoteOnceRCExcludedGroups - Defaults to an empty list, can
  be used to define a denylist of user group names. One-shot autopromotions
  into these groups will never result in an RC entry, even if
  $wgAutopromoteOnceLogInRC is true, as long as they were the only new groups
  the user was autopromoted into.
* (T240542) $wgAutoblockExemptions - IP addresses and CIDR ranges listed here
  will not be affected by autoblocks, similar to
  MediaWiki:Block-autoblock-exemptionlist. Defaults to an empty list.
* …

==== Changed configuration ====

* (T13555) $wgParserEnableLegacyHeadingDOM now defaults to `false`.
  You can set it to `true` to temporarily restore the legacy HTML markup
  for wikitext headings in the output from the Parser, in case you find
  that your wiki's content or an extension is incompatible with the new markup.
  More information: https://www.mediawiki.org/wiki/Heading_HTML_changes
  This option will be removed in a future release.
* (T386210) $wgAddGroups and $wgRemoveGroups now use the correct merge strategy
  of `array_merge_recursive`. This lets extensions add entries from the
  extension.json file, which would previously be silently ignored.
* (T382987) $wgDnsBlacklistUrls now defaults to an empty array. See the comment
  in the "Configuration changes for system administrators" section above.
* (T387856) $wgEnotifImpersonal and $wgEnotifMaxRecips are now deprecated.

==== Removed configuration ====

* wgResourceLoaderUseObjectCacheForDeps, deprecated in 1.43, has been removed.
  It is now always enabled (T343492).
* wgBaseDirectory, unused, has been removed in favour of MW_INSTALL_PATH.
  If a variable value is needed, inject an optional parameter instead.
* …

=== New user-facing features in 1.44 ===

* (T363538, T204792) New parser functions {{#interlanguagelink:prefix|title}}
  and {{#interwikilink:prefix|title|caption}} to unambiguously create
  interlanguage and interwiki links, respectively, even when the "prefix"
  might conflict with a namespace on the local wiki.
* (T326057) Attempting to create a redirect to a nonexistent page will now
  result in a warning.
* (T33951) The Interwiki extension has been moved to MediaWiki core. It is now
  possible to view and edit the interwiki table without installing an extension.
  $wgInterwikiCentralDB and $wgInterwikiCentralInterlanguageDB have been
  removed, use $wgVirtualDomainsMapping['virtual-interwiki'] and
  $wgVirtualDomainsMapping['virtual-interwiki-interlanguage'] instead.
  $wgInterwikiViewOnly has been removed, (un)assign "interwiki" right instead.
* (T302140) Rollbacked edits are marked as manually patrolled instead of
  auto-patrolled since the rollback action was a manual patrol of the edit.
* (T56145) Introduces a new tag 'mw-recreated' to note edits which create pages
 that have been previously deleted by having an associated deletion log entry.
 This does not consider deletion log entries that were suppressed.
* (T326056) Attempting to create a redirect to another redirect will now
  result in a warning.
* (T322944) Developers using the Action API can now use the new crossorigin=
  parameter. If used with a supported session provider, such as OAuth,
  this permits authenticated cross-origin requests against the Action API,
  similar to how origin=* allows unauthenticated cross-origin requests.
* (T24521, T62109) Embedding a file (e.g., [[File:MediaWiki.png]]) on a page
  protected with cascading protection will no longer restrict edits to the
  file description page, only file uploads. Transcluding a file description
  page (e.g., {{:File:MediaWiki.png}}) will now restrict edits to the page.
* …

=== New features for sysadmins in 1.44 ===

* (T267477) Users with rename userright can now rename themselves through
  [[Special:RenameUser]].
* (T104830) [[Special:RenameUser]] can now be used in wiki families using
  shared tables.
  A renameuser-global right is added and required when renaming global users.
  No groups have this right by default.
* (T310051) uppercase-ckb collation added. uca-xx-ckb collation deprecated
* …

=== New developer features in 1.44 ===

* The AuthenticationAttemptThrottled hook was added.
* The CodexTablePager class was added.
* UserFactory now has newFromNameOrIp() method to quickly create a User object
  for either an IP or a named user.
* The ApiQueryCheckCanExecute hook was added.
* The ChangesListInsertLogEntry hook was added.
* The TempUserDetailsLookup service was added.
* The UserLinkRenderer service was added.
* The AuthPreserveQueryParams hook has a new option, $options['request'],
  to avoid having to rely on the global context.
* …

=== External library changes in 1.44 ===

==== New external libraries ====

* …

===== New development-only external libraries =====

* Updated QUnit from 2.20.0 to 2.24.1.

==== Changed external libraries ====

* Updated codex, codex-design-tokens and codex-icons
  from v1.14.0 to v1.22.0.
* Updated mck89/peast from 1.16.3 to 1.17.0.
* Updated moment from v2.25.2 to v2.30.1.
* Updated OOUI from v0.51.2 to v0.51.7.
* Updated vue from 3.4.27 to 3.5.13.
* Updated wikimedia/bcp-47-code from 2.0.0 to 2.0.1.
* Updated wikimedia/less.php from 5.1.2 to 5.2.1.
* Updated wikimedia/minify from 2.8.0 to 2.9.0.
* Updated wikimedia/php-session-serializer from 3.0.0 to 3.0.1.
* Updated wikimedia/relpath from 4.0.1 to 4.0.2.
* Updated wikimedia/shellbox from 4.1.1 to 4.2.0.
* Updated wikimedia/timestamp from 4.1.1 to 4.2.0.
* …

===== Changed development-only external libraries =====
* Updated mediawiki/mediawiki-phan-config from 0.14.0 to 0.15.0.
* Updated nikic/php-parser from ^4.10.2 to ^5.3.1.
* Updated phpunit/phpunit from 9.6.19 to 9.6.21.
* Updated stylelint-config-wikimedia from v0.17.2 to v0.18.0.
* Updated wikimedia/langconv from 0.4.2 to 0.5.0.
* Updated eslint-config-wikimedia from 0.28.2 to 0.29.1.
* …

==== Removed external libraries ====

* …

=== Bug fixes in 1.44 ===

* File reverts now check for 'reupload' or 'reupload-own' rights. (T304474)
* File reverts now check for cascading edit protection. (T140010)
* …

=== Action API changes in 1.44 ===

* The list=blocks API now accepts a `parsedreason` parameter to get the block
  reason as parsed HTML.
* (T357846) siteinfo now lists all user groups and granted permissions,
  including those from $wgGroupInheritsPermissions.
* …

=== Action API internal changes in 1.44 ===

* …

=== Languages updated in 1.44 ===
MediaWiki supports over 350 languages. Many localisations are updated regularly.
Below only new and removed languages are listed, as well as changes to languages
because of Phabricator reports.

* (T377856) Updated the autonym for Shan (shn)
* (T379137) Added language support for Hunde (hke).
* (T381463) Added language support for Coptic (cop).
* (T381894) Added language support for Fur (fvr).
* (T379137) Added language support for Mindong (Traditional Han script)
  (cdo-hant).
* (T379137) Added language support for Mindong (Latin script) (cdo-latn).
* (T384234) Added language support for Wali (wlx).
* (T384245) Added language support for Lampung Api (ljp).
* (T389916) Added language support for Buginese (bug-bugi).

* …

=== Breaking changes in 1.44 ===

* In StatusValue::replaceMessage(), ::hasMessage() and ::hasMessagesExcept()
  passing MessageSpecifier or MessageValue as $source, deprecated in 1.43,
  is no longer allowed.
* StatusValue will no longer accept errors given as a MessageSpecifier
  combined with a parameters array. This was deprecated in 1.43.
* The methods MessageValue::objectParams(), Message::objectParams()
  and Message::objectParam(), deprecated in 1.43, have been removed.
* The UserGroupMembershipParam class, deprecated in 1.43, has been removed.
* The ParamType::OBJECT constant, deprecated in 1.43, has been removed.
* The MediaWiki\Message\Converter class, deprecated in 1.43, has been removed.
  Use MessageValue::newFromSpecifier or Message::newFromSpecifier
  instead (T358779).
* Public access to OutputPage::mModules and OutputPage::mModuleStyles,
  deprecated in 1.38, has been removed.
* Return type declarations were added to methods in `includes/libs/Message`,
  specifically in the `MessageSpecifier`, `ITextFormatter`, and
  `IMessageFormatterFactory` interfaces. This update enhances type safety but
  may require updates in any classes implementing these interfaces, including
  external extensions. Extensions such as Translate, Flow, and ReadingLists
  require compatibility patches to support these changes.
* IDatabase::LB_TRX_ROUND_ID was removed and IDatabase::LB_READ_ONLY_REASON
  was marked as an internal constant.
* IDatabase::onAtomicSectionCancel() has been removed without deprecation
  as it's completely unused.
* ISQLPlatform::tableNames(), deprecated since 1.39, has been removed.
* The Wikimedia\LightweightObjectStore\ExpirationAwareness interface is now
  considered internal. Use BagOStuff to access TTL constants instead.
* The ParsoidOutputAccess class marked @unstable from creation and
  deprecated with all of its methods in 1.43, has been removed.
* (T382030) MediaWiki core database schema and schema changes have been moved
  to a new top-level sql/ directory. This should only affect code directly
  referencing the old paths.
* The HtmlToContentTransform::setMetrics() and
  HtmlInputTransformHelper::setMetrics() methods now require a StatsFactory
  argument.  Passing a StatsdDataFactoryInterface was deprecated in 1.43.
* The method ParserOptions::setupFakeRevision has been marked internal. It
  will remain backwards compatible in 1.44 but may change without notice in
  1.45 or later.
* The Less mixin .column-break-after-avoid(), deprecated in 1.43, has been
  removed. Use just the CSS rule `break-after: avoid-column;` instead now.
* ApiBase::errorArrayToStatus(), deprecated in 1.43, has been removed.
* ZipDirectoryReader has been moved to the Wikimedia\Mime library.
  No callers outside that library are known.
* The constant UploadBase::OVERWRITE_EXISTING_FILE has been removed, it has
  been unused as a status code by UploadBase for more than 14 years.
* MediaWikiIntegrationTestCase::$tablesUsed, deprecated since 1.41, has been
  removed. The framework detects changed tables since 1.41 automatically.
* MediaWiki\Language\Language class no longer supports manually calling the
  constructor, use LanguageFactory instead.
* The MediaWiki\Config\MutableConfig interface now extends
  MediaWiki\Config\Config. Implementing MutableConfig without implementing
  Config is no longer possible.
* HTMLForm methods getPreText, setPreText, addPreText, getPostText,
  setPostText, addPostText, getHeaderText, setHeaderText, addHeaderText,
  getFooterText, setFooterText and addFooterText, deprecated since 1.38, have
  been removed.
* FormSpecialPage methods preText and postText, deprecated since 1.38, have
  been removed.
* The `MediaWiki\User\Registration\IUserRegistrationProvider` interface now
  defines a required fetchRegistrationBatch() method.
* BagOStuff::clearLastError() and WANObjectCache::clearLastError(), both
  deprecated in 1.43, have been removed.
* The hook OutputPageMakeCategoryLinks, deprecated in 1.43, has been removed.
* ApiPageSet::getTitles(), ApiPageSet::getGoodTitles(),
  ApiPageSet::getMissingTitles(), ApiPageSet::getGoodAndMissingTitles(),
  ApiPageSet::getRedirectTitles() and ApiPageSet::getSpecialTitles, deprecated
  since 1.37, have been removed.
* The methods Skin::getFooterIcons and ::makeFooterIcon are final and
  overriding is no longer supported.
* PageArchive::undeleteAsUser, deprecated since 1.35, has been removed.
* DatabaseBlock::getQueryInfo and ::getRangeCond, deprecated since 1.43, have
  been removed.
* The IDatabase transaction lifecycle callbacks onTransactionResolution(),
  onTransactionPreCommitOrIdle() and onTransactionCommitOrIdle() no longer
  receive a DB connection handle as an argument. (T386190)
* The $schema parameters to DatabaseBlockStore::getQueryInfo() and
  ::getRangeCond() have been removed. They were documented as temporary
  migration support parameters. Support for ipb_* field aliases in
  DatabaseBlockStore::newFromRow(), which was meant to support the use of
  $schema, has been removed.
* The following old class aliases, deprecated in MediaWiki 1.40, have now
  been dropped:
  - \ActorMigration — use \MediaWiki\User\ActorMigration
  - \ActorMigrationBase — use \MediaWiki\User\ActorMigrationBase
  - \AtomFeed — use \MediaWiki\Feed\AtomFeed
  - \CategoriesRdf — use \MediaWiki\Category\CategoriesRdf
  - \Category — use \MediaWiki\Category\Category
  - \CategoryViewer — use \MediaWiki\Category\CategoryViewer
  - \ChannelFeed — use \MediaWiki\Feed\ChannelFeed
  - \CommentStore — use \MediaWiki\CommentStoreCommentStore
  - \ContentSecurityPolicy — use \MediaWiki\Request\ContentSecurityPolicy
  - \DeprecatedGlobal — use \MediaWiki\StubObject\DeprecatedGlobal
  - \DerivativeRequest — use \MediaWiki\Request\DerivativeRequest
  - \EditPage — use \MediaWiki\EditPage\EditPage
  - \FauxRequest — use \MediaWiki\Request\FauxRequest
  - \FauxRequestUpload — use \MediaWiki\Request\FauxRequestUpload
  - \FauxResponse — use \MediaWiki\Request\FauxResponse
  - \FeedItem — use \MediaWiki\Feed\FeedItem
  - \FeedUtils — use \MediaWiki\Feed\FeedUtils
  - \FileDeleteForm — use \MediaWiki\Page\File\FileDeleteForm
  - \ForeignResourceManager — use
      \MediaWiki\ResourceLoader\ForeignResourceManager
  - \FormOptions — use \MediaWiki\Html\FormOptions
  - \Html — use \MediaWiki\Html\Html
  - \LinkFilter — use \MediaWiki\ExternalLinks\LinkFilter
  - \Linker — use \MediaWiki\Linker\Linker
  - \ListToggle — use \MediaWiki\Html\ListToggle
  - \MagicWord — use \MediaWiki\Parser\MagicWord
  - \MagicWordArray — use \MediaWiki\Parser\MagicWordArray
  - \MagicWordFactory — use \MediaWiki\Parser\MagicWordFactory
  - \MergeHistory — use \MediaWiki\Page\MergeHistory
  - \MovePage — use \MediaWiki\Page\MovePage
  - \PageProps — use \MediaWiki\Page\PageProps
  - \PathRouter — use \MediaWiki\Request\PathRouter
  - \ProtectionForm — use \MediaWiki\Page\ProtectionForm
  - \RSSFeed — use \MediaWiki\Feed\RSSFeed
  - \StubGlobalUser — use \MediaWiki\StubObject\StubGlobalUser
  - \StubObject — use \MediaWiki\StubObject\StubObject
  - \StubUserLang — use \MediaWiki\StubObject\StubUserLang
  - \TemplateParser — use \MediaWiki\Html\TemplateParser
  - \TemplatesOnThisPageFormatter — use
      \MediaWiki\EditPage\TemplatesOnThisPageFormatter
  - \Title — use \MediaWiki\Title\Title
  - \TrackingCategories — use \MediaWiki\Category\TrackingCategories
  - \WebRequestUpload — use \MediaWiki\Request\WebRequestUpload
  - \WebResponse — use \MediaWiki\Request\WebResponse
  - \WikiMap — use \MediaWiki\WikiMap\WikiMap
  - \WikiReference — use \MediaWiki\WikiMap\WikiReference
  - \MediaWiki\BadFileLookup - use \MediaWiki\Page\File\BadFileLookup
  - \MediaWiki\HeaderCallback - use \MediaWiki\Request\HeaderCallback
  - \MediaWiki\HtmlHelper - use \MediaWiki\Html\HtmlHelper
* Block::TYPE_ID has been removed. Use DatabaseBlockStore::newFromID().
* UserOptionsManager methods resetOptions, listOptionKinds and getOptionKinds,
  deprecated since 1.43, have been removed.
* WANObjectCache::clearLastError(), soft-deprecated in 1.38 and hard-deprecated
  in 1.43, has been removed.
* The WANObjectCache 'stats' option for StatsdDataFactory, deprecated in 1.43,
  is no longer supported. Use StatsFactory instead.
* When fetching a message containing {{PAGENAME}} or similar with
  wfMessage(...)->text(), the title used will be Special:Badtitle unless a
  context title was set with e.g. Message::setContext(). In the past, the title
  used in a previous call was sometimes used.
* MediaWikiTitleCodec has been split. TitleParser and TitleFormatter are now
  classes rather than interfaces. Remove all references to MediaWikiTitleCodec.
* A new abstract method, CentralIdLookup::lookupUserNamesWithFilter(), was
  added. This is a breaking change for extensions that extend this class.
* UserOptionsStore::fetchBatchForUserNames() was added. This is a breaking
  change for extensions that implement the interface.
* Callbacks registered by MessageCacheFetchOverrides handlers will now be
  called with only two parameters. The $language and $useDB parameter will not
  be passed.
* The following formerly-public properties of OutputPage, deprecated with
  warnings in 1.38, have been removed:
   - OutputPage::$mNoGallery
   - OutputPage::$mRevisionTimestamp
* Removed $timestamp, $summary, $minorEdit, $oldid and $pageStatus params from
  EmailNotification::notifyOnPageChange(). Now this method takes RecentChange
  instead.
* …

=== Deprecations in 1.44 ===

* Various static methods on ChangeTags, deprecated since 1.41, each now emit
  deprecation warnings. Use service access to the ChangeTagsStore instead:
  addTags(), defineTag(), deleteTagEverywhere(), getDisplayTableName(),
  getSoftwareTags(), getTags(), getTagsWithData(), listDefinedTags(),
  listExplicitlyDefinedTags(), listSoftwareActivatedTags(),
  listSoftwareDefinedTags(), makeTagSummarySubquery(), modifyDisplayQuery(),
  purgeTagCacheAll(), tagUsageStatistics(), and updateTags().
* (T166010) All PHP code in MediaWiki is slowly being moved to be in a class
  namespace as appropriate, so that we can use PSR-4 auto-loading, which will
  speed up general code loading of MediaWiki. The old global namespace class
  names are being left behind as deprecated aliases.

  In this release of MediaWiki, XXX classes now have a namespace and XXX do
  not yet (XXX% done, up from 81% in MediaWiki 1.43.0). The following have newly
  been moved:
  - MediaWiki\Actions:
    - Action
    - CreditsAction
    - DeleteAction
    - EditAction
    - FormAction
    - FormlessAction
    - HistoryAction
    - InfoAction
    - MarkpatrolledAction
    - McrRestoreAction
    - McrUndoAction
    - ProtectAction
    - PurgeAction
    - RawAction
    - RenderAction
    - RevertAction
    - RollbackAction
    - SubmitAction
    - UnprotectAction
    - UnwatchAction
    - ViewAction
    - WatchAction
  - MediaWiki\ChangeTags:
    - ChangeTags
    - ChangeTagsList
    - ChangeTagsLogItem
    - ChangeTagsLogList
    - ChangeTagsRevisionItem
    - ChangeTagsRevisionList
  - MediaWiki\Exception:
    - BadRequestError
    - BadTitleError
    - CannotCreateActorException
    - ErrorPageError
    - FatalError
    - HttpError
    - ILocalizedException
    - LocalizedException
    - MWContentSerializationException
    - MWException
    - MWExceptionHandler
    - MWExceptionRenderer
    - MWUnknownContentModelException
    - PermissionsError
    - ProcOpenError (was under MediaWiki top-level)
    - ReadOnlyError
    - ShellDisabledError (was under MediaWiki top-level)
    - ThrottledError
    - UserBlockedError
    - UserNotLoggedIn
  - MediaWiki\FileRepo:
    - FileBackendDBRepoWrapper
    - FileRepo
    - ForeignAPIRepo
    - ForeignDBRepo
    - ForeignDBViaLBRepo
    - IForeignRepoWithDB
    - IForeignRepoWithMWApi
    - LocalRepo
    - NullRepo
    - RepoGroup
    - TempFileRepo
    - MediaWiki\FileRepo\File:
      - ArchivedFile
      - File
      - ForeignAPIFile
      - ForeignDBFile
      - LocalFile
      - LocalFileDeleteBatch
      - LocalFileLockError
      - LocalFileMoveBatch
      - LocalFileRestoreBatch
      - MediaFileTrait
      - MetadataStorageHelper
      - OldLocalFile
      - UnregisteredLocalFile
  - MediaWiki\JobQueue:
    - GenericParameterJob
    - IJobSpecification
    - Job
    - JobQueue
    - JobQueueDB
    - JobQueueFederated
    - JobQueueGroup
    - JobQueueMemory
    - JobQueueRedis
    - JobRunner
    - JobSpecification
    - RunnableJob
    - MediaWiki\JobQueue\Exceptions:
      - JobQueueConnectionError
      - JobQueueError
      - JobQueueReadOnlyError
    - MediaWiki\JobQueue\Jobs:
      - AssembleUploadChunksJob
      - CategoryMembershipChangeJob
      - CdnPurgeJob
      - DeleteLinksJob
      - DeletePageJob
      - DoubleRedirectJob
      - DuplicateJob
      - HTMLCacheUpdateJob
      - NullJob
      - ParsoidCachePrewarmJob
      - PublishStashedFileJob
      - RefreshLinksJob
      - RevertedTagUpdateJob
      - ThumbnailRenderJob
      - UploadFromUrlJob
      - UploadJobTrait
    - MediaWiki\JobQueue\Utils:
      - BacklinkJobUtils
      - PurgeJobUtils
  - MediaWiki\Logging:
      - BlockLogFormatter
      - ContentModelLogFormatter
      - DatabaseLogEntry
      - DeleteLogFormatter
      - ImportLogFormatter
      - InterwikiLogFormatter
      - LegacyLogFormatter
      - LogEntry
      - LogEntryBase
      - LogEventsList
      - LogFormatter
      - LogFormatterFactory
      - LogPage
      - ManualLogEntry
      - MergeLogFormatter
      - MoveLogFormatter
      - NewUsersLogFormatter
      - PageLangLogFormatter
      - PatrolLog
      - PatrolLogFormatter
      - ProtectLogFormatter
      - RCDatabaseLogEntry
      - RenameuserLogFormatter
      - RightsLogFormatter
      - TagLogFormatter
      - UploadLogFormatter
      - WikitextLogFormatter
  - MediaWiki\Page:
    - Article
    - CategoryPage
    - ImageHistoryList
    - ImageHistoryPseudoPager
    - ImagePage
    - Page
    - PageArchive
    - WikiCategoryPage
    - WikiFilePage
    - WikiPage
  - MediaWiki\RecentChanges:
    - CategoryMembershipChange
    - ChangesFeed
    - ChangesList
    - ChangesListBooleanFilter
    - ChangesListBooleanFilterGroup
    - ChangesListFilter
    - ChangesListFilterGroup
    - ChangesListStringOptionsFilter
    - ChangesListStringOptionsFilterGroup
    - EnhancedChangesList
    - OldChangesList
    - RCCacheEntry
    - RCCacheEntryFactory
    - RecentChange
    - RecentChangesUpdateJob
  - MediaWiki\Skin:
    - BaseTemplate
    - QuickTemplate
    - Skin
    - SkinApi
    - SkinAuthenticationPopup
    - SkinException
    - SkinFactory
    - SkinFallback
    - SkinMustache
    - SkinTemplate
* WikiPage::doEditUpdates(), deprecated since 1.32, is now emitting warnings.
  Use DerivedPageDataUpdater::doUpdates() instead.
* IDatabase::setTransactionListener() is now deprecated without replacement.
* ILBFactory::setWaitForReplicationListener() is now deprecated without
  replacement.
* Maintenance::beginTransaction(), Maintenance::commitTransaction(),
  Maintenance::rollbackTransaction(), and Maintenance::waitForReplication()
  are now deprecated. Use Maintenance::*TransactionRound() instead.
* The ReverseArrayIterator class, unused since 1.32, has been deprecated.
* OutputPage::parserOptions() has been deprecated; use
  ParserOptions::newFromContext( $outputPage->getContext() ) instead.
* OutputPage::wrapWikiTextAsInterface() with an empty string as $wrapperClass
  has been deprecated; this didn't work correctly in the first place.
* LinksUpdate::getImages() has been deprecated, like ParserOutput::getImages().
  Instead, use ParserOutput::getLinkList( ParserOutputLinkTypes::MEDIA ).
* ResourceLoader::makeConfigSetScript() is now deprecated. Consider using
  package files instead. Or, you can return "mw.config.set()" combined with
  RL\Context::encodeJson, if available. If not, use FormatJson::encode.
* wfAssembleUrl(), wfMatchesDomainList(), and wfUrlProtocolsWithoutProtRel(),
  all deprecated in 1.39, now emit warnings.
* BlockManager::getUserBlock(), deprecated since 1.42, now emits warnings.
* DatabaseBlock methods newFromRow(), delete(), insert(), update(),
  doAutoblock(), isExemptedFromAutoblocks(), doAutoblock(), updateTimestamp(),
  newFromTarget(), newListFromTarget() and getBlocksForIPList() are now
  deprecated and emit deprecation warnings. Use the corresponding method in
  DatabaseBlockStore, except for getBlocksForIPList() which is in BlockManager.
* The parameter $default in WebRequest::getRawVal(), deprecated since 1.43,
  is now emitting warnings.
* The link to "Special pages" has moved from the toolbox to MediaWiki:Sidebar
  since toolbox relates to tools associated with the current page, not the
  site. To support the transition, for interface admins who have already
  customized MediaWiki:Sidebar, the special pages link will be automatically
  added. This will be hard deprecated in the next MediaWiki release. More
  information is available at T333211. To avoid future breakage, see the
  guidance in T385346.
* Various deprecated static methods of Xml, deprecated in earlier versions, are
  now emitting deprecation warnings:
   - Xml::encodeJsVar() – use Html::encodeJsVar() instead
   - Xml::encodeJsCall() – use Html::encodeJsCall() instead
   - Xml::span() – use Html::element() instead
   - Xml::password() – use Html::input() instead
   - Xml::buildTable() – use OOUI or Codex widgets instead
   - Xml::buildTableRow() – use OOUI or Codex widgets instead
* BlockUtils and BlockUtilsFactory is now deprecated. Use BlockTargetFactory
  and CrossWikiBlockTargetFactory.
* RenameuserSQL::rename has been deprecated and should be replaced with
  RenameuserSQL::renameUser, which returns a Status instead of boolean.
* LocalFile::getQueryInfo() and OldLocalFile::getQueryInfo(), deprecated
  since 1.41, are now emitting warnings.
* Linker::userLink() has been deprecated in favor of the UserLinkRenderer
  service. (T308000)
* OutputPage::getNoGallery(), previously marked @internal, has been deprecated
  and should be replaced with
  `OutputPage::getOutputFlag(ParserOutputFlags::NO_GALLERY)`
* OutputPage::showNewSectionLink() has been deprecated and should be replaced
  with `OutputPage::getOutputFlag(ParserOutputFlags::NEW_SECTION)`
* OutputPage::forceHideNewSectionLink() has been deprecated and should be
  replaced with `OutputPage::getOutputFlag(ParserOutputFlags::HIDE_NEW_SECTION)`
* OutputPage::{get,set}RevisionTimestamp() has been deprecated and should be
  replaced with `OutputPage::getMetadata()->{get,set}RevisionTimestamp()`
* The 'PermissionErrorAudit' hook has been deprecated and replaced by
  the 'PermissionStatusAudit' hook.
* The 'PageContentSave' hook, deprecated in 1.35, now emits deprecation warnings
  when used. Use the 'MultiContentSave' hook instead.
* DifferenceEngine::getPermissionErrors() is deprecated,
  use DifferenceEngine::authorizeView() instead.
* UploadBase::verifyPermissions() and UploadBase::verifyTitlePermissions()
  are now deprecated. Use UploadBase::authorizeUpload() instead.
* PermissionStatus::toLegacyErrorArray(), deprecated since 1.43, is now
  emitting warnings.
* MessageCache::parse, ::parseWithPostProcessing and ::transform() are now
  deprecated. Use MessageParser.
* User::getGlobalBlock(), deprecated since 1.40, now emits deprecation
  warnings.
* PPFrame::setTTL() has been deprecated: setting TTL had no effect in
  practice. Use ParserOutput::updateCacheExpiry() instead.
* The (unused) second, third, and fourth arguments to OutputPage::getModules()
  have been deprecated, and the (unused) second argument to
  OutputPage::getModuleStyles() has been deprecated.  These exposed private
  internal implementation details not intended for public use.
* MediaWikiTitleCodec::getTitleInvalidRegex() is now deprecated. Use the same
  method in TitleParser.
* …

=== Other changes in 1.44 ===
* The ArticleProtect and ArticleProtectComplete hooks are now called when
  WikiPage::doUpdateRestrictions is called to protect a non-existing
  title.
* Introduce ISearchResultSet::isApproximateTotalHits() (defaults to false
  in BaseSearchResultSet) to let SearchEngine implementations run optimizations
  that might lead to innacurate computation of the exact number of pages
  matching the search query.
* (T367441) ResourceLoader Debug mode now defaults to debug mode v2. This means
  ?debug=true now maps to debug=2. Unlike debug mode v1, this doesn't load each
  file from disk, and your code looks the same as it is in production with
  closures that prevent global variable leakage.
* …

== Compatibility ==

MediaWiki 1.44 requires PHP 8.1.0 or later and the following PHP extensions:

* ctype
* dom
* fileinfo
* iconv
* intl
* json
* mbstring
* xml

MariaDB is the recommended database software. MySQL, PostgreSQL, or SQLite can
be used instead, but support for them is somewhat less mature.

The supported versions are:

* MariaDB 10.3 or higher
* MySQL 5.7.0 or higher
* PostgreSQL 10 or later
* SQLite 3.24.0 or later

== Online documentation ==
Documentation for both end-users and site administrators is available on
MediaWiki.org, and is covered under the GNU Free Documentation License (except
for pages that explicitly state that their contents are in the public domain):

  <https://www.mediawiki.org/wiki/Special:MyLanguage/Documentation>

== Mailing list ==
A mailing list is available for MediaWiki user support and discussion:

  <https://lists.wikimedia.org/postorius/lists/mediawiki-l.lists.wikimedia.org/>

A low-traffic announcements-only list is also available:

  <https://lists.wikimedia.org/postorius/lists/mediawiki-announce.lists.wikimedia.org/>

It's highly recommended that you sign up for one of these lists if you're
going to run a public MediaWiki, so you can be notified of security fixes.

== IRC help ==
There's usually someone online in #mediawiki on irc.libera.chat.