MediaWiki 1.29

MediaWiki 1.29 is an obsolete release of MediaWiki. The final security and maintenance release was released on 20 September 2018. Consult the RELEASE NOTES file for the full list of changes. It was deployed on Wikimedia Foundation wikis through incremental "wmf"-branches starting November 1, 2016. The 1.29.0 stable release was released on July 13, 2017.[1] Download the latest releases or checkout the REL1_29 branch in Git to follow this release.

Configuration changes

  • Default cookie expiration time has been reduced to 30 days. Login cookie expiration time is kept at 180 days.
  • $wgUserEmailUseReplyTo is now true by default to work around restrictive DMARC policies.
  • Subpages are now enabled by default in the Template namespace.

New features

  • Added $wgSoftBlockRanges , to allow for automatically blocking anonymous edits from certain IP ranges (e.g. private IPs).
  • Added new magic word {{PAGELANGUAGE}} which returns the language code of the page being parsed. (bug T59603)
  • Users can now be assigned to user groups for a limited period of time. See the help page for more information.

Action API changes

  • Submitting sensitive authentication request parameters to action=clientlogin, action=createaccount, action=linkaccount, and action=changeauthenticationdata in the query string is now an error. They should be submitted in the POST body instead.
  • The capture option for action=resetpassword has been removed
  • action=clearhasmsg now requires a POST.
  • (task T47843) API errors and warnings may be requested in non-English languages using the new errorformat, errorlang, and errorsuselocal parameters.
  • API error codes may have changed. Most notably, errors from modules using parameter prefixes (e.g. all query submodules) will no longer be prefixed.
  • action=emailuser may return a "Warnings" status, and now returns 'warnings' and 'errors' subelements (as applicable) instead of 'message'.
  • action=imagerotate returns an 'errors' subelement rather than errormessage.
  • action=move now reports errors when moving the talk page as an array under key talkmove-errors, rather than using talkmove-error-code and talkmove-error-info. The format for subpage move errors has also changed.
  • action=revisiondelete no longer includes a "rendered" property on warnings and errors for each item. Use errorformat=wikitext if you're wanting parsed output.
  • action=rollback no longer returns a messageHtml property. Use errorformat=html if you're wanting HTML formatting of error messages.
  • action=upload now reports optional stash failures as an array under key 'stasherrors' rather than a 'stashfailed' text string.
  • action=watch reports 'errors' and 'warnings' instead of a single 'error', and no longer returns a 'message' on success.
  • Added action=validatepassword to validate passwords for the account creation and password change forms.

Action API internal changes

  • New methods were added to ApiBase to handle errors and warnings using i18n keys. Methods for using hard-coded English messages were deprecated:
  • ApiBase::dieUsage() was deprecated
    • ApiBase::dieUsageMsg() was deprecated
    • ApiBase::dieUsageMsgOrDebug() was deprecated
    • ApiBase::getErrorFromStatus() was deprecated
    • ApiBase::parseMsg() was deprecated
    • ApiBase::setWarning() was deprecated
  • ApiBase::$messageMap is no longer public. Code attempting to access it will result in a PHP fatal error.
  • The $message parameter to the ApiCheckCanExecute hook should be set to an ApiMessage. This is compatible with MediaWiki 1.27 and later. Returning a code for ApiBase::parseMsg() will no longer work.
  • UsageException is deprecated in favor of ApiUsageException. For the time being ApiUsageException is a subclass of UsageException to allow things that catch only UsageException to still function properly.
  • If, for some strange reason, code was using an ApiErrorFormatter instead of ApiErrorFormatter_BackCompat, note that the result format has changed and various methods now take a module path rather than a module name.
  • ApiMessageTrait::getApiCode() now strips 'apierror-' and 'apiwarn-' prefixes from the message key, and maps some message keys for backwards compatibility.

Languages updated

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.

  • Based as always on linguistic studies on intelligibility and language knowledge by geography, language fallbacks have been expanded. When a translation is missing in the user's preferred interface language, the corresponding translation for the fallback language will be used instead. English will only be used as last resort when there are no translations. Some configurations (such as date formats and gender namespaces) have also been updated when using the fallback language's configuration was inadequate. The new or reinstated language fallbacks are (after cs ↔ sk in 1.28): hsb ↔ dsb, io → eo, mdf → ru, pnt → el, roa-tara → it.

No fallback for Ukrainian

  • (task T39314) The fallback from Ukrainian to Russian was removed. The Ukrainian language will now use the default fallback language: English. When a translation to Ukrainian is not available, an English string will be shown.

Other changes

  • wiki.phtml entry point was removed. Refer to index.php instead. If you want "wiki.phtml" URLs to continue to work, set up redirects. In Apache, this can be done by enabling mod_rewrite and adding the following rules to your configuration:
RewriteEngine On
RewriteBase /
RewriteRule ^/w/wiki\.phtml$ /w/index.php [R=301,L]