= 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.) * … ==== 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.21.1. * Updated mck89/peast from 1.16.3 to 1.17.0. * 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.1.2. * 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). * … === 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. * 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. * 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): == Mailing list == A mailing list is available for MediaWiki user support and discussion: A low-traffic announcements-only list is also available: 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.