| MediaWiki | 
|---|
| 
 | 
| Older versions | 
| Version lifecycle | 
 MediaWiki 1.31 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 26 September 2017.
 The 1.31.0 stable release was released on 13 June 2018.
 Download the latest releases or checkout the REL1_31 branch in Git to follow this release.
It was originally due to go end-of-life in June 2021. Due to MediaWiki 1.35 being delayed to September 2020, 1.31 went end of life on 30 September 2021.
| MediaWiki 1.31 | 
|---|
| 
 | 
| Deployment to Wikimedia sites | 
| 
 | 
What's new
More bundled extensions

The set of extensions that are bundled with the MediaWiki tarball has increased. The new additions are:
- CategoryTree
- CodeEditor provides a more friendly editor when editing CSS and JavaScript on-wiki.
- MultimediaViewer provides a lightbox viewer for images and galleries.
- OATHAuth provides two-factor authentication for wiki accounts.
- Replace Text provides a form to let administrators do string replacements on the entire wiki, for both page contents and page titles.
The Nuke extension was not included in the tarball for MediaWiki 1.31.0 by mistake. If you want to use this extension, please download the extension separately. This is fixed in 1.31.1 and up.
Skins
Timeless skin
Timeless is a new, responsive skin for MediaWiki, and is now bundled.
 Mobile layout Mobile layout
 Tablet layout Tablet layout
 Desktop layout Desktop layout
 Wide desktop layout Wide desktop layout
CologneBlue and Modern
The CologneBlue and Modern skins are no longer bundled, although are still compatible with MediaWiki. If you are upgrading and had that skin installed, be sure to download it separately.
Tidy replaced with HTML 5 parsing algorithm
- See the frequently asked questions for more details
The HTML 4 based Tidy library has been replaced by a pure-PHP HTML 5 parser named RemexHtml to clean up improper wikitext in a modern and standards compliant way. If your content relied on some of the tidy fix-ups that are not being continued, they will need to be fixed.
You can use the Linter extension in conjunction with Parsoid to identify pages with problems that cause differences in rendering with the RemexHtml parser. The ParserMigration extension shows editors a side-by-side comparison of rendering with tidy and RemexHtml.
Interwiki usernames
MediaWiki now supports "interwiki" usernames in a format like "iw>Example" in revisions, log entries, and so on. This allows for properly recording imports and events from foreign wikis (as generated by Wikibase, for example) without confusion with a local account that exists now or may be created in the future.
- (task T9240)  Imports will now record unknown (and, optionally, known) usernames in a format like "iw>Example".
- (task T20209)  Linker(used on history pages, log pages, and so on) will display usernames formed like "iw>Example" as interwiki links, as if by wikitext like[[iw:User:Example|iw>Example]].
Further UI standardization
- As a first pass in standardizing dialog boxes across the MediaWiki product, Html class now provides helper methods for messageBox, successBox, errorBox and warningBox generation.
Other feature changes
-  Add default edit rate limit of 90 edits/minute for all users. This can be changed by setting $wgRateLimits.
- (task T143790)  $wgEmailConfirmToEditonly affectseditactions.
- (task T76554)  User sub-pages named ….jsonare now protected in the same way that….jsand….csspages are, so that configuration options can safely be placed there.
- (task T181651) The info page for File pages now displays the file's base-16 SHA1 hash value in the table of basic information.
- (task T189785) The pingback feature will now send a monthly heartbeat ping to identify active wikis.
- (task T19099) Tabs which link to pages that don't exist (like those to uncreated discussion pages) now have a tooltip to indicate state, not just colour.
Languages updated in 1.31
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.
- (task T180052)  Mirandese (mwl) now supports gendered NS_USER/NS_USER_TALK.
- (task T182305) New language support: Nyungar (nys).
- (task T186359) New language support: Siberian Tatar [cебертатар] (sty).
- (task T186635) New language support: Guianan Creole (gcr).
- (task T186647) New language support: Kumyk [къумукъ] (kum).
- (task T187750) New language support: Spanish formal address (es-formal).
- (task T187824) New language support: Hungarian formal address (hu-formal).
- (task T189127) New language support: Gorontalo (gor).
Upgrade notices for MediaWiki administrators
PHP7 or HHVM is now required
MediaWiki 1.31 requires PHP 7.0.0 or later. Although HHVM 3.18.5 or later is supported, it is generally advised to use PHP 7.0.0 or later for long term support.
Database changes
1.31 has several database changes since 1.30, and will not work without schema updates. PostgreSQL users now need version 9.2 or later.
Revision table
Note that due to changes to some very large tables like the revision table, the schema update may take quite long (minutes on a medium sized site, many hours on a large site). Don't forget to always back up your database before upgrading!
Archive table
If you're using MySQL, SQLite, or MSSQL, are not using update.php to apply schema changes, and cannot have downtime to run migrateArchiveText.php and apply patch-drop-ar_text.sql manually, you'll have to apply a default value to the ar_text and ar_flags columns of the archive table or make those columns nullable before upgrading to MediaWiki 1.31. maintenance/archives/patch-nullable-ar_text.sql shows how to do this for MySQL.
Actor table
The identity of the logged-in or IP "actor" for logged actions is being moved into a new actor table, with the rows in tables such as revision and logging referring to the actor ID instead of storing the user ID and name/IP in every row.
-  This is currently gated by $wgActorTableSchemaMigrationStage. Most wikis can set this toMIGRATION_NEWand runmaintenance/migrateActors.phpas soon as any necessary extensions are updated.
-  Most code accessing rows for logged actions from the database should use the relevant getQueryInfo()methods to get the information needed to build the SQL query. TheActorMigrationclass may also be used to get feature-flagged information needed to access actor-related fields during the migration period.
See the Actor migration page for details.
Configuration changes
-  $wgEnableAPIand$wgEnableWriteAPIare now deprecated and will be removed in a future version. The API is now considered to be stable, secure and essential.
-  $wgUsejQueryThreewas removed, as it is now the default. This was documented as a temporary variable during the migration period, deprecated since 1.29.
-  $wgLogoHDhas been updated to support SVG images and uses$wgLogowhere possible for fallback images such as PNG.
- (task T44246)  $wgFilterLogTypeswill no longer ignore 'patrol' when user does not have the right to mark things patrolled.
-  Wikis that contain imported revisions or CentralAuth global blocks should run maintenance/cleanupUsersWithNoId.php.
-  The configuration settings $wgResourceLoaderMinifierStatementsOnOwnLineand$wgResourceLoaderMinifierMaxLineLength, deprecated since 1.27, were removed.
- (task T180921)  $wgReferrerPolicynow supports having fallbacks for browsers that are not using the latest version of the Referrer Policy specification.
-  $wgFragmentModeis now set to[ 'legacy', 'html5' ]by default. This is a first step of migration to human-readable section IDs that will later result in 'html5' being the default mode.
-  CACHE_ACCELnow only supports APC(u) or WinCache. XCache support was removed as upstream is inactive and has no plans to move to PHP 7.
-  The old CategorizedRecentChangesfeature, including its related configuration option$wgAllowCategorizedRecentChanges, has been removed.
- (task T188472)  The 'comma' value for$wgArticleCountMethodis no longer supported for performance reasons, and installations with this setting will now work as if it was configured with 'any'.
- (task T185753)  MediaWiki now defaults to using RemexHtmlto tidy up user input, rather than being off by default. If you wish to disable HTML tidying entirely, set$wgTidyConfigtonull; if you wish to use the old, deprecated Tidy external binary, both set$wgTidyConfigtonulland$wgUseTidytotrue.
-  $wgLogAutopatrolnow defaults tofalseinstead oftrue.
-  $wgValidateAllHtmlwas removed and will be ignored.
-  $wgScriptExtension, deprecated and ignored since 1.25, was removed. See the 1.25 release notes for more information.
- {{wg|UseAjax}} is now marked as deprecated, just like the deprecated AJAX framework that it enables. Some extensions mistakenly used this to check whether any AJAX functionality at all should be enabled, further making this problematic to retain.
-  $wgDBmysql5is now deprecated, and will be removed in a future version. It has been marked as experimental ever since it was introduced.
-  $wgDBmwschemanow affects all database types. Old MediaWiki versions were setting this to 'mediawiki' during the installer, which may cause errors during the upgrade when your database is not PostgreSQL or MSSQL. In that case, remove this setting from LocalSettings.php.
Action API changes in 1.31
- (task T185058)  The 'name' value totgpropforaction=query&list=tagshas been removed. It has never made a difference in the output, the name was always returned regardless.
-  The 'watch' and 'unwatch' parameters foraction=movehave been removed. They were deprecated and also accidentally nonfunctional since 1.17 in 2010. Use 'watchlist' instead.
Other changes in 1.31
- Browser support for Internet Explorer 10 was lowered from Grade A to Grade C.
- Browser support for Opera 12 and older was dropped entirely. Opera 15+ continues at Grade A.
- Multi-content-revision capability was introduced into the storage layer. See <https://mediawiki.org/wiki/Requests_for_comment/Multi-Content_Revisions>.
-  The "free" CSS class is now only applied to unbracketed URLs in wikitext. Links written using square brackets will get the class "text", not "free".
- task T157418: Whitespace is trimmed from wikitext headings, wikitext list items, wikitext table captions, wikitext table headings, wikitext table cells. HTML headings, HTML list items, HTML table captions, HTML table headings, HTML table cells will not have this trimming behavior.
Subpages
Special:Prefixindex/MediaWiki 1.31/