Discovering MediaWiki 1.44: Key Features for Developers

A verified look at MediaWiki 1.44: what was removed, what was added (notifications framework, FeatureShutdown, OpenSearch support), and what skin and extension authors must fix.

MediaWiki 1.44 was released as a stable release on 2 July 2025, and by now its REL1_44 branch has reached maintenance-only status — 1.45 has taken over as the current release, and 1.46 (the next LTS) is in development. That makes 1.44 a snapshot of where the platform stands for extension developers: it was the release where several long-deprecated pieces of API code were finally removed, and where a few genuinely new mechanisms landed. This article covers the changes that matter when you write code against it.

The headline: a notifications framework in core

MediaWiki 1.44 introduces a built-in notifications framework (see Manual:Notifications) that core and extensions can use to produce notifications for users. You still need the Notifications (Echo) extension for users to actually see and manage them — Echo remains the delivery UI — but the event side of the pipeline is now a core service with middleware, not an extension-specific mechanism. If you previously coupled your extension to Echo classes for sending notifications, 1.44 is the right moment to migrate to the core framework.

Breaking changes: the cleanup you need to plan for

1.44 removed a large batch of long-deprecated APIs. The ones most likely to affect real extensions:

  • wfGetDB() is gone. The global DB accessor, deprecated in 1.39, was removed — use injected IDBProvider/LoadBalancer services
  • ApiPageSet::getTitles() and friends removed. API modules must switch to getPageIdentities()-style accessors
  • ParsoidOutputAccess removed. The class was deprecated in 1.43; use ParsoidOutputAccessUnstable or the new output pipeline
  • OutputPage::mModules / mModuleStyles removed (deprecated since 1.38) — public mutation of module state is no longer possible
  • HtmlToContentTransform::setMetrics() and HtmlInputTransformHelper::setMetrics() now require a StatsFactory argument
  • Message API cleanupMessage::objectParam(), MessageValue::objectParams() and the MediaWiki\Message\Converter class were removed
  • StatusValue no longer accepts MessageSpecifier with a separate parameters array
  • UploadBase::OVERWRITE_EXISTING_FILE and HOOK_ABORTED constants removed

The full list is in the 1.44 release notes; the short version is that anything flagged as "deprecated in 1.39–1.43" should be treated as deleted in 1.44.

New services and facilities

  • FeatureShutdown service — provides controlled outages for deprecated interfaces, letting operators disable a deprecated feature on a live wiki before upgrading past its removal
  • Notification middleware — the new notifications pipeline supports middleware to filter talk-page notifications, replacing the deprecated AbortTalkPageEmailNotification hook
  • Forward-compatible parser output flagsParserOutput gained serialization support for flags that will be used in 1.46
  • New parsedreason API parameter for list=blocks — block reasons as parsed HTML, for clients that render them
  • Richer siteinfoaction=query&meta=siteinfo now lists all user groups and their granted permissions, including inherited ones from $wgGroupInheritsPermissions
  • CirrusSearch + OpenSearch — for search deployments, MediaWiki 1.44 is the first version compatible with OpenSearch 1.3 as a backend alongside Elasticsearch

Extension and skin packaging changes

  • CheckUser and TemplateStyles are now bundled with MediaWiki, which simplifies installs and upgrades for wikis running either extension
  • Interwiki was merged into core — the extension is no longer needed; the interwiki table is editable from Special:Interwiki out of the box. Note the removed settings: $wgInterwikiCentralDB, $wgInterwikiCentralInterlanguageDB and $wgInterwikiViewOnly are gone, replaced by virtual-domain mapping and the interwiki right respectively
  • Skin authors: heading markup changed. The default HTML markup for wikitext headings changed in 1.44 (ParserEnableLegacyHeadingDOM now defaults to false). Skins and CSS that target the old heading DOM need updating; the legacy markup can be restored temporarily with $wgParserEnableLegacyHeadingDOM = true;, but that escape hatch will be removed in the next release

Configuration changes worth knowing

  • $wgAllowRawHtmlCopyrightMessages now defaults to false — the copyright footer messages no longer support raw HTML by default
  • Google search fallback removed — if $wgDisableTextSearch is set, MediaWiki no longer shows a Google search form; configure $wgSearchForwardUrl (e.g. 'https://duckduckgo.com/?q=$1') instead
  • "Special pages" toolbox link removed — if you relied on it, add it to MediaWiki:Sidebar explicitly
  • $wgEnotifImpersonal and $wgEnotifMaxRecips deprecated
  • $wgResourceLoaderUseObjectCacheForDeps removed (always enabled now), and $wgBaseDirectory removed in favour of MW_INSTALL_PATH
  • exception-json log channel removed — use the PSR-3 exception channel
  • New uppercase-ckb collation; uca-xx-ckb deprecated

Upgrade notes

Running the update script (php maintenance/run.php update) is mandatory because of the Interwiki merge and schema changes. After upgrading, check the logs for usage of removed globals — MediaWiki logs these, and the FeatureShutdown service helps you stage the deprecation. If you maintain a custom skin, test it against the new heading DOM early, since the legacy fallback has a hard removal date.

1.44 is the release to catch up on homework: the removals are the announced end of a long deprecation cycle, and the additions — notifications framework, bundled CheckUser and TemplateStyles, OpenSearch support — are quietly significant. The release page and the Wikimedia tech blog highlights are the two best references when planning an upgrade.

Subscribe to MediaWiki Tips and Tricks

Don’t miss out on the latest articles. Sign up now to get access to the library of members-only articles.
jamie@example.com
Subscribe