MediaWiki 1.35

From mediawiki.org
Warning Warning: MediaWiki 1.35.0 to 1.35.4 contain a critical security issue. Please upgrade to 1.35.5 or later. See 2021-12 security release/FAQ for more information.
Warning Warning: MediaWiki 1.35 no longer supports PHP 7.2. PHP 7.3.19 or later is required.
If using PHP 8, it is recommended to use MediaWiki 1.38.4 or higher. PHP 8 is not in use by Wikimedia wikis, and thus gets less testing, but other groups do use MediaWiki with PHP 8 without issue. If you encounter any bugs when using MediaWiki with PHP 8, please report them. See task T248925 for more information.

MediaWiki 1.35 is an obsolete 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 starting 1 October 2019. The 1.35.0 stable release came out on 25 September 2020. Download 1.35.14 or checkout the REL1_35 branch in Git to follow this release. It went end-of-life on December 21, 2023.

New features

  • Special pages Special:EditPage, Special:PageHistory, Special:PageInfo, and Special:Purge have been created as shortcuts for each action. Special:EditPage/Foo redirects to title=foo&action=edit, with PageHistory, PageInfo, and Purge corresponding to &action= history, info, and purge respectively. When linked to, its subpage is used as the target. Otherwise, it displays a basic interface to allow the end user to specify the target manually (see task T13456).
  • The form at "?action=watch" has a new dropdown list to support expiry dates for watchlist items (if $wgWatchlistExpiry is true).

New bundled extensions

MediaWiki 1.35 bundled the VisualEditor extension, which provides a visual editing experience as an alternative to the traditional source editor. It will not be necessary to setup a separate instance of Parsoid, as it is built into MediaWiki core.

In addition SecureLinkFixer and TemplateData are bundled. The former forces HTTPS links on your wiki; the latter adds a tag and API to allow editors to specify how templates should be invoked.

Action API changes

  • The suggest parameter of action=opensearch has been deprecated. The API behaves the same with and without this parameter. It was previously used by $wgEnableOpenSearchSuggest to partially disable the API if set to false. Specifically, it would deny internal frontend requests carrying this parameter, whilst accepting other requests.
  • Integer-type parameters are now validated for syntax rather than being interpreted in surprising ways. For example, the following will now return a badinteger error:
    • "1.9" - formerly interpreted as "1"
    • " 1" - formerly interpreted as "1"
    • "1e1" - formerly interpreted as "1" or "10", depending on the PHP version
    • "1foobar" - formerly interpreted as "1"
    • "foobar" (formerly intepreted as "0") Ranges should be assumed to be enforced.
  • Many user-type parameters now accept a user ID, formatted like "#12345".
  • The assert parameter used by all API modules now supports the value anon. When specified, the API will return the 'assertanonfailed' error if the user is logged in.
  • action=edit now supports the 'baserevid' parameter for edit conflict detection, as an alternative to 'basetimestamp'. Note that self-conflicts will continue to be ignored if 'basetimestamp' is set, but not if only 'baserevid' is set.
  • A new module was added to change the content model of existing pages. Use action=changecontentmodel. Unlike Special:ChangeContentModel, the API module does not work for pages that do not already exist.
  • If $wgWatchlistExpiry is true, the following API changes are made:
    • action=watch accepts a new 'expiry' parameter analagous to the expiry accepted by action=userrights, action=block, etc., except it must be no greater than $wgWatchlistExpiryMaxDuration , or an infinity value.
    • action=query&list=watchlistraw returns pages' watchlist expiry dates.
  • (task T249526) action=login will now return Failed rather than NeedToken on session loss.

Action API internal changes

  • The Action API now uses the Wikimedia\ParamValidator library for parameter validation, which brings some new features and changes. For the most part existing module code should work as it did before, but see subsequent notes for changes.
    • The values for all ApiBase PARAM_* constants have changed. Code should have been using the constants rather than hard-coding the values.
    • Several ApiBase PARAM_* constants have been deprecated, see the in-class documentation for details. Use the equivalent ParamValidator constants instead.
    • The value returned for 'upload'-type parameters has changed from WebRequestUpload to Psr\Http\Message\UploadedFileInterface.
  • Validation of 'user'-type parameters is more flexible. PARAM constants exist to specify the type of "user" allowed and to request UserIdentity objects rather than name strings. The default is to accept all types (name, IP, range, and interwiki) that were formerly accepted.
  • Maximum limits are no longer ignored in "internal mode".
  • The $paramName to ApiBase::handleParamNormalization() should now include the prefix.
  • (task T245931) meta=siteinfo&siprop=interwikimap no longer reports language or extralanglink when $wgInterwikiMagic is false.
Red Hat 8 and CentOS 7 provide PHP 7.2 by default. You will need to install updated versions from Software Collections (SCL) or AppStreams.

Subpages