Jump to content

MediaWiki 1.43

From mediawiki.org

MediaWiki 1.43 is a long-term support release of MediaWiki. Consult the RELEASE NOTES file for the full list of changes. It was deployed on Wikimedia Foundation wikis through incremental "wmf"-branches between April 2024 and October 2024. The 1.43.0 stable release came out on 21 December 2024. Download mediawiki-1.43.0.tar.gz or checkout the REL1_43 branch in Git to follow this release.

Changes

Some specific notes for MediaWiki 1.43 upgrades are below:

  • It is now necessary that the OpenSSL PHP extension is installed.
  • update.php updates the Linter database table with two migration scripts that can take a long time to run: with the provided settings, each migration script update roughly 500 rows per second. If at all possible, it is highly recommended to let update.php run these migration scripts.
    If this is deemed too long a maintenance operation (depending on the number of rows in the Linter database table), it is possible, for a upgrade from 1.40 onwards, to run the migration scripts before updating the MediaWiki and extensions files to 1.43. Set $wgLinterWriteNamespaceColumnStage and $wgLinterWriteTagAndTemplateColumnsStage to true, and run the extensions/Linter/maintenance/migrateNamespace.php and extensions/Linter/maintenance/migrateTagTemplate.php migration scripts before proceeding with any other code update. When upgrading from a version <= 1.39, a multi-step update is necessary to be able to run the migration scripts independently from update.php: first update to 1.42, then proceed as indicated.

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

Configuration changes for system administrators in 1.43

New configuration

  • (T13555) $wgParserEnableLegacyHeadingDOM - Defaults to `true`, can be set to `false` to enable new, more accessible HTML markup for wikitext headings. Note that each skin must also use the 'supportsMwHeading' option to allow it. More information: https://www.mediawiki.org/wiki/Heading_HTML_changes In a future release the new markup will become the default, and later this option will be removed.
  • (T12347) $wgEnableProtectionIndicators - Defaults to false, setting it to true shows a lock icon indicator on protected pages.
  • (T373480) $wgSortedCategories - Defaults to false, setting it to true will sort the categories shown on article pages. This is an experimental setting; its future will depend on community adoption and feedback on the phab task is welcome.
  • (T45646) $wgAllowRawHtmlCopyrightMessages - Defaults to true, can be set to false to disable the use of the localisation messages 'copyright' and 'history_copyright' and the hook 'SkinCopyrightFooter', which have been deprecated in this release. This helps protect your wiki against attacks by a rogue administrator account and will become the default in the future.
  • (T4085) $wgParserEnableUserLanguage - Defaults to false, can be set to true to let en magic word return the user's language, instead of the page language. Beware that accessing the user language may reduce the efficiency of the parser cache.

Changed configuration

  • $wgPageLinksSchemaMigrationStage – (T299947) This temporary setting, which controls the database schema migration for the page links table, is now set by default to write to both old and new data and read from the new data.
  • $wgFooterIcons – (T256190) The default "Powered by MediaWiki" button icon has been updated to an SVG icon, and the footer icons are now wrapped as buttons in HTML, rather than faking it within the icons themselves. You should adjust any footer icons you provide or over-ride to match.
  • The "error-json" channel, configurable via $wgDebugLogGroups , has been removed. For structured logging, use the "error" channel directly instead. Since MediaWiki 1.25, structured logging is supported via Monolog for all channels, including the "error" channel. For silenced errors, you use the "silenced-error" channel added in MediaWiki 1.42. (T193472)
  • $wgResourceLoaderUseObjectCacheForDeps - (T343492) This is now enabled by default. This means ResourceLoader writes information to the MainStash instead of a core database table, which can be set to a separate database via $wgMainStash . If you find issues, please drop a comment on T343492. It is now deprecated and will be removed in MediaWiki 1.44.

Removed configuration

  • $wgSessionInsecureSecrets has been removed since OpenSSL is now a required PHP extension.
  • $wgTemplateLinksSchemaMigrationStage has been removed.
  • $wgSamplingStatsdClient has been removed. It was introduced in MW 1.28 for use in the Wikibase extension, but never used. The new StatsFactory service should be used for new instrumentations, which already supports sampling. Beware that sampling is generally not needed even at scale, and that sampling does not significantly reduce runtime overhead, thus making it slow to instrument very hot code even with built-in sampling.
  • (T294397) The 'writeapi' userright, which controlled access to some API modules, has been removed.
  • (T331883) The variables $wgLinterWriteTagAndTemplateColumnsStage , $wgLinterUserInterfaceTagAndTemplateStage , $wgLinterWriteNamespaceColumnStage , and $wgLinterUseNamespaceColumnStage have been removed. The namespace, tag and template column of the Linter database table are now written and used. The existing data from the Linter database is migrated to the new columns by extensions/Linter/maintenance/migrateNamespace.php and extensions/Linter/maintenance/migrateTagTemplate.php, which are both called by the update script (T367207).

New user-facing features in 1.43

  • (T338341) Support reading XMP and EXIF from WebP files
  • (T365636) Wiki's with $wgAllowExternalImages enabled now detect urls with AVIF, SVG and WebP images.
  • (T242346) Special:TalkPage is a new special page that will redirect to the associated talk namespace page, e.g. Special:TalkPage/Foo redirects to Talk:Foo; Special:TalkPage/Project:Foo goes to Project talk:Foo. This allows for links by templates and tools without having to parse what namespaces are valid and have associated talk pages.
  • New preference: "Send password reset emails only when both email address and username are provided."
  • (T4085) Added new magic word {{USERLANGUAGE}} which returns the language code of the interface set by the user.
  • (T263513) Special:NamespaceInfo is a new special page that displays a list of namespaces available on the wiki, their descriptions and configuration.

New features for sysadmins in 1.43

New developer features in 1.43

  • StatusValue class gained new method getMessages(): MessageSpecifier[], allowing the errors to be inspected and displayed more easily, for example:
    foreach ( $status->getMessages() as $msg ) {
      if ( $msg->getKey() !== 'ignored-message' ) {
        $this->getOutput()->addWikiMsg( $msg );
      }
    }
    
  • (T358779) The MessageValue class can now be used instead of Message in most places (in methods that accept the MessageSpecifier interface). This allows using localisation messages in code that doesn't know the user's language, such as many hooks, without relying on global state. To convert between them, use MessageValue::newFromSpecifier() and Message::newFromSpecifier().
  • The REST API framework now supports defining redirects in route definition files. See MediaWiki\Rest\Handler\RedirectHandler for details.
  • (T13555) Skins can enable the 'supportsMwHeading' option for new, more accessible HTML markup for wikitext headings. MediaWiki's own styles and scripts have been updated to support it, but your skin may also need updates. More information: https://www.mediawiki.org/wiki/Heading_HTML_changes A future release will emit deprecation warnings for skins with 'supportsMwHeading' set to false.
  • The AuthPreserveQueryParams hook was added.
  • (T219397) New `Language::formatDurationBetweenTimestamps()` function added which takes two timestamps and a precision in order to calculate a more accurate text representation of duration.
  • Added an interactive mode to the install.php maintenance script.
  • The ResourceLoaderModifyEmbeddedSourceUrls hook was added.
  • The AuthManagerFilterProviders hook was added.
  • The AuthManagerVerifyAuthentication hook was added.
  • The OutputPageRenderCategoryLink hook was added, as a replacement for the deprecated OutputPageMakeCategoryLinks hook.
  • PreAuthenticationProvider, PrimaryAuthenticationProvider, and SecondaryAuthenticationProvider now receive a `canAlwaysAutocreate` flag in the options of the `testUserForCreation` invocation. This flag is true when the session provider is exempt from autocreate user permissions checks.
  • The CentralIdLookup service gained the isOwned() method, which can be used to check if a local username is reserved for a central user, even if a local user account does not exist yet. This can be used by extensions to look up information about the central user.
  • (T251790) A Jest-based test suite has been introduced for testing front-end code such as Vue components. Tests can be run via `npm run jest`, and test files live in `tests/jest/`. See https://www.mediawiki.org/wiki/Jest for more information.
  • The SpreadAnyEditBlock hook was added.
  • The ConditionalDefaultOptionsAddCondition hook was added.

Action API changes in 1.43

  • APIQueryUserInfo now returns null in the field registrationdate for users created before December 2005 (their registration date was not recorded).

Action API internal changes in 1.43

Languages updated in 1.43

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.

  • (T375891) Updated the autonym for Kadazan Dusun (dtp)
  • (T357853) Added unidirectional script conversion for Meitei to Bengali script.
  • (T367377) Updated the autonym for Tai Nuea (tdd)
  • (T375947) Updated the autonym for Komering (kge)
  • (T354937, T362041) Added language support for Minnan (Traditional Han script) (nan-hant).
  • (T290657) Added language support for Levantine Arabic (apc).
  • (T364291) Added language support for Musi, also known as Palembang (mui).
  • (T364737) Added language support for Haryanvi (bgc).
  • (T365365) Added language support for Chakma (ccp).
  • (T367991) Added language support for Iban (iba).
  • (T367688) Added language support for Interslavic (Latin) (isv-latn).
  • (T375360) Added language support for Interslavic (Cyrillic) (isv-cyrl).
  • (T370123) Added language support for Nupe (nup).
  • (T371051) Added language support for Saint Lucian Creole (acf).
  • (T354937, T370987) Added language support for Minnan (Pe̍h-ōe-jī) (nan-latn-pehoeji).
  • (T354937, T369899) Added language support for Minnan (Tâi-lô) (nan-latn-tailo).
  • (T375052) Added language support for Tigre (tig).
  • (T375999) Added language support for Luba-Lulua (lua).
  • (T376248) Added language support for Duala (dua).
  • (T375377) Added language support for Southern Ndebele (nr). This is done experimentally, with only a Names.php entry and namespace translations, before we have actual localized strings. For details, see https://www.mediawiki.org/wiki/Future_of_Language_Incubation.
  • (T356144) Deprecated the Kanuri language (kr) and replaced it with Central Kanuri (knc). The language code kr is kept for backwards compatibility and falls back to knc.


See also

Subpages