Remove deprecated pear/mail_mime-decode from composer dependancies
[lhc/web/wiklou.git] / RELEASE-NOTES-1.31
1 == MediaWiki 1.31.2 ==
2
3 THIS IS NOT A RELEASE YET
4
5 === Changes since MediaWiki 1.31.1 ===
6 * (T204729) WatchedItemStore::countVisitingWatchersMultiple() shouldn't query all
7 titles when asked for none
8 * (T205967) Fix syntax error typo in postgres database upgrade file.
9 * (T200254) Add pear/Net_SMTP 1.7.3 to composer dependencies.
10 * (T206765) Load installer i18n when running update.php.
11 * (T109121) Remove deprecated pear/mail_mime-decode from composer suggested libraries.
12
13 == MediaWiki 1.31.1 ==
14
15 This is a security and maintenance release of the MediaWiki 1.31 branch.
16
17 === Changes since MediaWiki 1.31.0 ===
18 * (T169545, CVE-2018-0503) SECURITY: $wgRateLimits entry for 'user' overrides
19 'newbie'.
20 * (T194605, CVE-2018-0505) SECURITY: BotPasswords can bypass CentralAuth's
21 account lock.
22 * (T199029, CVE-2018-13258) SECURITY: Tarball was missing .htaccess files.
23 * (T197229) Bundle Nuke extension, it was accidentally omitted.
24 * (T193995) Fix undefined patchPath() method call in parser tests.
25 * (T198687) Fix various selectFields methods to use the string 'NULL', not null.
26 * Special:BotPasswords now requires reauthentication.
27 * (T191608, T187638) Add 'logid' parameter to Special:Log.
28 * (T193829) Indicate when a Bot Password needs reset.
29 * (T198037) GitInfo: Don't try shelling out if it's disabled.
30 * (T151415) Log email changes.
31 * (T197206) Fix performance regression when multiple DB used without caching.
32 * (T197030) PHPSessionHandler: Suppress headers warnings in initialize().
33 * (T182377, T196793) Exif: Guard against uncountable tag values.
34 * (T200861) Fix total breakage of SQLite web upgrade.
35 * (T200864) Fix pingback over-reporting on non-MySQL databases
36 * (T202550) Unbreak SpecialListusersHeaderForm and SpecialListusersHeader
37 hooks.
38
39 === Changes since MediaWiki 1.31.0-rc.2 ===
40 * (T195783) Initialize PSR-4 namespaces at same stage as normal autoloader.
41 * (T196092) Hide MySQL binary/utf-8 charset option in the installer.
42 * (T196185) Don't allow setting $wgDBmysql5 in the installer.
43 * (T196125) php-memcached 3.0 (provided with PHP 7.0) is now supported.
44 * (T182366) UploadBase::checkXMLEncodingMissmatch() now works on PHP 7.1+
45 * (T118683) Fix exception from &$user deref on HHVM in the TitleMoveComplete hook.
46 * (T196672) The mtime of extension.json files is now able to be zero
47 * (T180403) Validate $length in padleft/padright parser functions.
48 * (T143790) Make $wgEmailConfirmToEdit only affect edit actions.
49
50 === Changes since MediaWiki 1.31.0-rc.0 ===
51 * (T33223) Drop archive.ar_text and ar_flags.
52 * Add default edit rate limit of 90 edits/minute for all users.
53 * (T187645) Use codepoint as tiebreaker when getting first-letters in
54 IcuCollation.
55 * (T191947) Don't shell during the installer if shelling out is disabled.
56 * (T194319) Improve duplicate config setting exception as part of extension
57 registration.
58 * (T195211) Don't require trailing slash in PSR-4 autoloader directory.
59 * (T186565) Fix PHP Notice from `ob_end_flush()` in `FileRepo::streamFile()`.
60 * Do not incorrectly hide namespace input field in the installer.
61 * (T186456) Refactor checks looking for PEAR maik libraries to be clearer.
62
63 === Important pre-upgrade notes for 1.31 ===
64 * If you're using MySQL, SQLite, or MSSQL, are not using update.php to apply
65 schema changes, and cannot have downtime to run migrateArchiveText.php and
66 apply patch-drop-ar_text.sql manually, you'll have to apply a default value
67 to the ar_text and ar_flags columns of the archive table or make those
68 columns nullable before upgrading to MediaWiki 1.31.
69 maintenance/archives/patch-nullable-ar_text.sql shows how to do this for MySQL.
70 * The CologneBlue and Modern skins are no longer bundled with the tarball. You
71 will need to remove the wfLoadSkin() calls from your LocalSettings.php or
72 download them separately
73 (<https://www.mediawiki.org/wiki/Special:SkinDistributor>).
74
75 === Configuration changes in 1.31 ===
76 * $wgEnableAPI and $wgEnableWriteAPI are now deprecated and will be removed in
77 a future version. The API is now considered to be stable, secure and
78 essential.
79 * $wgUsejQueryThree was removed, as it is now the default. This was documented
80 as a temporary variable during the migration period, deprecated since 1.29.
81 * $wgLogoHD has been updated to support svg images and uses $wgLogo where
82 possible for fallback images such as png.
83 * (T44246) $wgFilterLogTypes will no longer ignore 'patrol' when user does not
84 have the right to mark things patrolled.
85 * Wikis that contain imported revisions or CentralAuth global blocks should run
86 maintenance/cleanupUsersWithNoId.php.
87 * The configuration settings $wgResourceLoaderMinifierStatementsOnOwnLine and
88 $wgResourceLoaderMinifierMaxLineLength, deprecated since 1.27, were removed.
89 * (T180921) $wgReferrerPolicy now supports having fallbacks for browsers that
90 are not using the latest version of the Referrer Policy specification.
91 * $wgFragmentMode is now set to [ 'legacy', 'html5' ] by default. This is a
92 first step of migration to human-readable section IDs that will later result
93 in 'html5' being the default mode.
94 * CACHE_ACCEL now only supports APC(u) or WinCache. XCache support was removed
95 as upstream is inactive and has no plans to move to PHP 7.
96 * The old CategorizedRecentChanges feature, including its related configuration
97 option $wgAllowCategorizedRecentChanges, has been removed.
98 * (T188472) The 'comma' value for $wgArticleCountMethod is no longer supported
99 for performance reasons, and installations with this setting will now work as
100 if it was configured with 'any'.
101 * (T185753) MediaWiki now defaults to using RemexHtml to tidy up user input,
102 rather than being off by default. If you wish to disable HTML tidying
103 entirely, set $wgTidyConfig to null; if you wish to use the old, deprecated
104 Tidy external binary, both set $wgTidyConfig to null and $wgUseTidy to true.
105 * $wgLogAutopatrol now defaults to false instead of true.
106 * $wgValidateAllHtml was removed and will be ignored.
107 * $wgScriptExtension, deprecated and ignored since 1.25, was removed. See the
108 1.25 release notes for more information.
109 * $wgUseAjax is now marked as deprecated, just like the deprecated AJAX
110 framework that it enables. Some extensions mistakenly used this to check
111 whether any AJAX functionality at all should be enabled, further making this
112 problematic to retain.
113 * $wgDBmysql5 is now deprecated, and will be removed in a future version. It
114 has been marked as experimental ever since it was introduced.
115
116 === New features in 1.31 ===
117 * (T76554) User sub-pages named ….json are now protected in the same way that
118 ….js and ….css pages are, so that configuration options can safely be placed
119 there.
120 * Wikimedia\Rdbms\IDatabase->select() and similar methods now support joins
121 with parentheses for grouping.
122 * As a first pass in standardizing dialog boxes across the MediaWiki product,
123 Html class now provides helper methods for messageBox, successBox, errorBox
124 and warningBox generation.
125 * (T9240) Imports will now record unknown (and, optionally, known) usernames in
126 a format like "iw>Example".
127 * (T20209) Linker (used on history pages, log pages, and so on) will display
128 usernames formed like "iw>Example" as interwiki links, as if by wikitext like
129 [[iw:User:Example|iw>Example]].
130 * (T111605) The 'ImportHandleUnknownUser' hook allows extensions to auto-create
131 users during an import.
132 * Added a hook, ParserOutputPostCacheTransform, to allow extensions to affect
133 the ParserOutput::getText() post-cache transformations.
134 * Added a hook, UploadForm:getInitialPageText, to allow extensions to alter the
135 initial page text for file uploads.
136 * (T181651) The info page for File pages now displays the file's base-16 SHA1
137 hash value in the table of basic information.
138 * Style tags with a 'data-mw-deduplicate' attribute will be deduplicated as a
139 ParserOutput::getText() post-cache transformation. This may be disabled by
140 passing 'deduplicateStyles' => false to that method.
141 * The identity of the logged-in or IP "actor" for logged actions is being moved
142 into a new actor table, with the rows in tables such as revision and logging
143 referring to the actor ID instead of storing the user ID and name/IP in
144 every row.
145 * This is currently gated by $wgActorTableSchemaMigrationStage. Most wikis
146 can set this to MIGRATION_NEW and run maintenance/migrateActors.php as
147 soon as any necessary extensions are updated.
148 * Most code accessing rows for logged actions from the database should use
149 the relevant getQueryInfo() methods to get the information needed to build
150 the SQL query. The ActorMigration class may also be used to get feature
151 -flagged information needed to access actor-related fields during the
152 migration period.
153 * Added Wikimedia\Rdbms\IDatabase::cancelAtomic(), to roll back an atomic
154 section without having to roll back the whole transaction.
155 * Wikimedia\Rdbms\IDatabase::doAtomicSection(), non-native ::insertSelect(),
156 and non-MySQL ::replace() and ::upsert() no longer roll back the whole
157 transaction on failure.
158 * (T189785) Added a monthly heartbeat ping to the pingback feature.
159 * The CLI installer (maintenance/install.php) learned to detect and include
160 extensions. Pass --with-extensions to enable that feature.
161 * (T184791) rc_patrolled now has three states: "0" for unpatrolled,
162 "1" for manually patrolled and "2" for autopatrolled actions.
163 * Extensions can now set their type to "editor" if they provide an editor or
164 enhance the editing experience.
165 * Extensions can use a PSR-4 autoloader by setting an "AutoloadNamespaces"
166 property in extension.json. See the documentation at
167 <https://mediawiki.org/wiki/Manual:Extension.json/Schema#AutoloadNamespaces>
168 for more details and an example.
169 * (T19099) Tabs which link to pages that don't exist (like those to uncreated
170 discussion pages) now have a tooltip to indicate state, not just colour.
171
172 === External library changes in 1.31 ===
173 * pear/mail, pear/mail_mime and pear/mail_mime-decode have been moved from
174 suggested to required. These packages now must be installed via composer
175 and not via PEAR itself.
176
177 ==== Upgraded external libraries ====
178 * Updated jquery.chosen from v0.9.14 to v1.8.2.
179 * Updated composer/spdx-licenses from 1.1.4 to 1.3.0 (development dependency).
180 * Updated nikic/php-parser from 2.1.0 to 3.1.3 (development dependency).
181 * Updated wikimedia/ip-set from 1.1.0 to 1.2.0.
182 * Updated wikimedia/relpath from 2.0.0 to 2.1.1.
183 * Updated wikimedia/running-stat from 1.1.0 to 1.2.0.
184 * Updated wikimedia/wrappedstring from 2.2.0 to 2.3.0.
185 * Updated mediawiki/at-ease from 1.1.0 to 1.2.0.
186 * Updated wikimedia/php-session-serializer from 1.0.4 to 1.0.6.
187 * Updated wikimedia/remex-html from 1.0.2 to 1.0.3.
188 * Updated wikimedia/html-formatter from 1.0.1 to 1.0.2.
189
190 ==== New external libraries ====
191 * Added wikimedia/object-factory 1.0.0
192
193 ==== Removed and replaced external libraries ====
194 * (T17845) The deprecated 'jquery.badge' module was removed.
195 * The deprecated 'jquery.autoEllipsis' module was removed. Use the CSS
196 text-overflow property instead.
197 * The deprecated 'jquery.placeholder' module was removed.
198 * The deprecated 'jquery.appear' module was removed. Use the
199 'mediawiki.viewport' module instead.
200 * mediawiki/at-ease was replaced with wikimedia/at-ease.
201
202 === Bug fixes in 1.31 ===
203 * (T90902) Non-breaking space in header ID breaks anchor.
204 * (T189375) CSSMin now allows quoted urls in `url()` syntax to start with a
205 space.
206 * (T2087, T10897, T87753, T174639) Whitespace created by category and language
207 links is now stripped rather than leaving blank lines in odd places.
208 * (T3780) Uploads with UTF-8 names now work on PHP7.1+ on Windows servers.
209 * (T182366) UploadBase::checkXMLEncodingMissmatch() now works on PHP 7.1+
210
211 === Action API changes in 1.31 ===
212 * (T185058) The 'name' value to tgprop for action=query&list=tags has been
213 removed. It has never made a difference in the output, the name was always
214 returned regardless.
215 * The 'watch' and 'unwatch' parameters for action=move have been removed. They
216 were deprecated and also accidentally nonfunctional since 1.17 in 2010. Use
217 'watchlist' instead.
218
219 === Action API internal changes in 1.31 ===
220 * ApiBase::getProfileDBTime, deprecated since 1.25, was removed.
221 * ApiBase::getModuleProfileName, deprecated since 1.25, was removed.
222 * ApiBase::getProfileTime, deprecated since 1.25, was removed.
223
224 === Languages updated in 1.31 ===
225 MediaWiki supports over 350 languages. Many localisations are updated
226 regularly. Below only new and removed languages are listed, as well as
227 changes to languages because of Phabricator reports.
228
229 * (T180052) Mirandese (mwl) now supports gendered NS_USER/NS_USER_TALK.
230 * (T182305) New language support: Nyungar (nys).
231 * (T186359) New language support: Siberian Tatar [cебертатар] (sty).
232 * (T186635) New language support: Guianan Creole (gcr).
233 * (T186647) New language support: Kumyk [къумукъ] (kum).
234 * (T187750) New language support: Spanish formal address (es-formal).
235 * (T187824) New language support: Hungarian formal address (hu-formal).
236 * (T189127) New language support: Gorontalo (gor).
237
238 === Breaking changes in 1.31 ===
239 * MessageBlobStore::insertMessageBlob(), deprecated in 1.27, was removed.
240 * The OutputPage class constructor now requires a context parameter.
241 Instantiating without context was deprecated in 1.18.
242 * The mw.page JavaScript singleton, deprecated in 1.30, was removed.
243 * Article::getLastPurgeTimestamp(), WikiPage::getLastPurgeTimestamp(), and the
244 related WikiPage::PURGE_* constants, deprecated in 1.29, were removed.
245 * The Article::selectFields(), ::onArticleCreate(), ::onArticleDelete(), and
246 ::onArticleEdit() methods, deprecated in 1.24, were removed.
247 * Installer::locateExecutable() and ::locateExecutableInDefaultPaths() were
248 removed. Use ExecutableFinder::findInDefaultPaths() instead.
249 * The deprecated MW_DIFF_VERSION constant was removed.
250 DifferenceEngine::MW_DIFF_VERSION should be used instead.
251 * Due to significant refactoring, method ContribsPager::getUserCond() that had
252 no access restriction has been removed.
253 * The Block class will no longer accept usable-but-missing usernames for
254 'byText' or ->setBlocker(). Callers should either ensure the blocker exists
255 locally or use a new interwiki-format username like "iw>Example".
256 * The following methods and constants from the WatchedItem class, which were
257 deprecated in 1.27, have been removed:
258 * WatchedItem::getTitle()
259 * WatchedItem::fromUserTitle()
260 * WatchedItem::addWatch()
261 * WatchedItem::removeWatch()
262 * WatchedItem::isWatched()
263 * WatchedItem::duplicateEntries()
264 * WatchedItem::IGNORE_USER_RIGHTS
265 * WatchedItem::CHECK_USER_RIGHTS
266 * WatchedItem::DEPRECATED_USAGE_TIMESTAMP
267 * The $statementsOnOwnLine parameter of JavaScriptMinifier::minify was removed.
268 $wgResourceLoaderMinifierStatementsOnOwnLine, the corresponding configuration
269 variable, has been deprecated since 1.27 and was removed as well.
270 * The $maxLineLength parameter of JavaScriptMinifier::minify was removed.
271 $wgResourceLoaderMinifierMaxLineLength, the corresponding configuration
272 variable, has been deprecated since 1.27 and was removed as well.
273 * The HtmlFormatter class, deprecated in 1.27, was removed. The namespaced
274 HtmlFormatter\HtmlFormatter class should be used instead.
275 * The driver 'mysql' for MySQL, deprecated in MediaWiki 1.30, has been removed.
276 The driver has been deprecated since PHP 5.5 and was removed in PHP 7.0. The
277 default driver for MySQL has been 'mysqli' since MediaWiki 1.22.
278 * The following properties of PreparedEdit were deprecated in 1.21 and have
279 been removed:
280 * PreparedEdit->newText
281 * PreparedEdit->oldText
282 * PreparedEdit->pst
283 * ParserOutput objects which are generated using a non-default value for
284 ParserOptions::setWrapOutputClass() can no longer be added to the parser
285 cache.
286 * The following deprecated methods from the OutputPage class have been removed:
287 * OutputPage::addExtensionStyle(); deprecated in 1.27
288 * OutputPage::getExtStyle(); deprecated in 1.27
289 * OutputPage::setETag(); deprecated in 1.28 (obsolete no-op)
290 * OutputPage::setSquidMaxage(); deprecated in 1.27
291 * OutputPage::readOnlyPage(); deprecated in 1.25
292 * OutputPage::rateLimited(); deprecated in 1.25
293 * Additionally, the protected OutputPage::$mExtStyles array, only accessed
294 through the above and with no known uses, was removed.
295 * The no-op method Skin::showIPinHeader(), deprecated in 1.27, was removed.
296 * The following variables and methods in EditPage, deprecated in MediaWiki 1.30,
297 were removed:
298 * $isCssJsSubpage — use ::isUserConfigPage()
299 * $isCssSubpage — use ::isUserCssConfigPage()
300 * $isJsSubpage — use ::isUserJsConfigPage()
301 * $isWrongCaseCssJsPage – use ::isWrongCaseUserConfigPage()
302 * ::getSummaryInput() – use ::getSummaryInputWidget()
303 * ::getSummaryInputOOUI() – use ::getSummaryInputWidget()
304 * ::getCheckboxes() – use ::getCheckboxesWidget() or
305 ::getCheckboxesDefinition()
306 * ::getCheckboxesOOUI() – use ::getCheckboxesWidget() or
307 ::getCheckboxesDefinition()
308 * ResourceLoaderModule::getPosition(), deprecated in 1.29, has been removed.
309 * In User, the cookie-related methods which were wrappers for the functions on
310 the response object, and were deprecated in 1.27, have been removed:
311 * ::setCookie()
312 * ::clearCookie()
313 * ::setExtendedLoginCookie()
314 Note that User::setCookies() remains, and is not deprecated.
315 * Also in User, some auth-related methods which were deprecated in 1.27 have
316 been removed:
317 * ::getEditTokenTimestamp() – use MediaWiki\Session\Token::getTimestamp()
318 * ::getPasswordFactory() – create a PasswordFactory directly
319 * ::passwordChangeInputAttribs()
320 * The global functions wfProfileIn and wfProfileOut, deprecated in 1.25, have
321 been removed.
322 * SpecialPageFactory::getList(), deprecated in 1.24, has been removed. You can
323 use ::getNames() instead.
324 * OpenSearch::getOpenSearchTemplate(), deprecated in 1.25, has been removed. You
325 can use ApiOpenSearch::getOpenSearchTemplate() instead.
326 * The global function wfBaseConvert, deprecated in 1.27, has been removed. Use
327 Wikimedia\base_convert() directly.
328 * Calling Database::begin() explicitly during an implicit transaction or when
329 DBO_TRX is set results in an exception. Calling Database::commit() explicitly
330 for an implicit transaction also results in an exception. Previously these
331 were logged as errors. The startAtomic() and endAtomic() methods, or
332 AtomicSectionUpdate should be used instead.
333 * The global function wfOutputHandler() was removed, use the its replacement
334 MediaWiki\OutputHandler::handle() instead. The global function was only
335 sometimes defined. Its replacement is always available via the autoloader.
336 * ChangeTags::listExtensionActivatedTags and ::listExtensionDefinedTags,
337 deprecated in 1.28, have been removed. Use ::listSoftwareActivatedTags() and
338 ::listSoftwareDefinedTags() instead.
339 * Title::getTitleInvalidRegex(), deprecated in 1.25, has been removed. You can
340 use MediaWikiTitleCodec::getTitleInvalidRegex() instead.
341 * HTMLForm & VFormHTMLForm::isVForm(), deprecated in 1.25, have been removed.
342 * The ProfileSection class, deprecated in 1.25 and unused, has been removed.
343 * The ResourceLoaderGetLessVars hook, deprecated in 1.30, has been removed. Use
344 ResourceLoaderModule::getLessVars() to expose local variables instead of
345 global ones.
346 * As part of work to modernise user-generated content clean-up, a config option
347 and some methods related to HTML validity were removed without deprecation.
348 The public methods MWTidy::checkErrors() and the path through which it was
349 called, TidyDriverBase::validate(), are removed, as are the testing methods
350 MediaWikiTestCase::assertValidHtmlSnippet() and ::assertValidHtmlDocument().
351 The $wgValidateAllHtml configuration option is removed and will be ignored.
352 * Execution of external programs using MediaWiki\Shell\Command now applies
353 the RESTRICT_DEFAULT Firejail restriction by default.
354 * The ResourceLoaderModule::getHashMtime() and ::getDefinitionMtime() methods,
355 deprecated in 1.26, were removed.
356 * The deprecated 'mediawiki.widgets.CategorySelector' module alias was removed.
357 Use the 'mediawiki.widgets.CategoryMultiselectWidget' module directly.
358
359 === Deprecations in 1.31 ===
360 * The Revision class was deprecated in favor of RevisionStore, BlobStore, and
361 RevisionRecord and its subclasses.
362 * The global function wfBCP47 is deprecated in favour of LanguageCode::bcp47.
363 * The global function wfCountDown is now deprecated in favor of
364 Maintenance::countDown.
365 * Several methods for returning lists of fields to select from the database
366 have been deprecated in favor of similar methods that also return the tables
367 to select from and the join conditions for those tables.
368 * Block::selectFields() → Block::getQueryInfo()
369 * RecentChange::selectFields() → RecentChange::getQueryInfo()
370 * ArchivedFile::selectFields() → ArchivedFile::getQueryInfo()
371 * LocalFile::selectFields() → LocalFile::getQueryInfo()
372 * LocalFile::getCacheFields() with a prefix no longer works
373 * LocalFile::getLazyCacheFields() with a prefix no longer works
374 * OldLocalFile::selectFields() → OldLocalFile::getQueryInfo()
375 * RecentChange::selectFields() → RecentChange::getQueryInfo()
376 * Revision::userJoinCond() → Revision::getQueryInfo( [ 'user' ] )
377 * Revision::selectUserFields() → Revision::getQueryInfo( [ 'user' ] )
378 * Revision::pageJoinCond() → Revision::getQueryInfo( [ 'page' ] )
379 * Revision::selectPageFields() → Revision::getQueryInfo( [ 'page' ] )
380 * Revision::selectTextFields() → Revision::getQueryInfo( [ 'text' ] )
381 * Revision::selectFields() → Revision::getQueryInfo()
382 * Revision::selectArchiveFields() → Revision::getArchiveQueryInfo()
383 * User::selectFields() → User::getQueryInfo()
384 * WikiPage::selectFields() → WikiPage::getQueryInfo()
385 * Revision::setUserIdAndName() was deprecated.
386 * Access to TitleValue class properties was deprecated, the relevant getters
387 should be used instead.
388 * DifferenceEngine::getDiffBodyCacheKey() is deprecated. Subclasses should
389 override DifferenceEngine::getDiffBodyCacheKeyParams() instead.
390 * Use of Maintenance::error( $err, $die ) to exit script was deprecated. Use
391 Maintenance::fatalError() instead.
392 * Passing a ParserOptions object to OutputPage::parserOptions() is deprecated.
393 * The RevisionInsertComplete hook is now deprecated; use instead the hook
394 RevisionRecordInserted. RevisionInsertComplete is still called, but the second
395 and third parameter will always be null. Hard deprecation is scheduled for 1.32.
396 * The following methods that get and set ParserOutput state are deprecated.
397 Callers should use the new stateless $options parameter to
398 ParserOutput::getText() instead.
399 * ParserOptions::getEditSection()
400 * ParserOptions::setEditSection()
401 * ParserOutput::getEditSectionTokens()
402 * ParserOutput::setEditSectionTokens()
403 * ParserOutput::getTOCEnabled()
404 * ParserOutput::setTOCEnabled()
405 * OutputPage::enableSectionEditLinks()
406 * OutputPage::sectionEditLinksEnabled()
407 * The public ParserOutput state fields $mTOCEnabled and $mEditSectionTokens
408 are also deprecated.
409 * License::getLicenses has been deprecated; use License::getLines instead.
410 * QuickTemplate::setRef() was deprecated in favour of QuickTemplate::set().
411 Setting template variables by reference allowed violating the principle of
412 data being immutable once added to the skin template. In practice, this method
413 was not being used for that. Rather, setRef() existed as memory optimisation
414 for PHP 4.
415 * QuickTemplate::setTranslator() and MediaWikiI18N::set() were deprecated in
416 favour of Skin::msg() parameters.
417 * MediaWikiI18N::translate() was deprecated in favour of Skin::msg() or
418 wfMessage().
419 * Passing false to ParserOptions::setWrapOutputClass() is deprecated. Use the
420 'unwrap' transform to ParserOutput::getText() instead.
421 * \ObjectFactory (no namespace) is deprecated, the namespaced class
422 \Wikimedia\ObjectFactory from the wikimedia/object-factory library should be
423 used instead.
424 * CommentStore::newKey is deprecated. Instead, get an instance from
425 MediaWikiServices.
426 * The following CommentStore methods have had their signatures changed to
427 introduce a $key parameter, usage of the methods on instances retrieved from
428 CommentStore::newKey will remain unchanged but deprecated:
429 * CommentStore::getFields
430 * CommentStore::getJoin
431 * CommentStore::getComment
432 * CommentStore::getCommentLegacy
433 * CommentStore::insert
434 * CommentStore::insertWithTemplate
435 * The following methods in Title have been renamed, and the old ones are
436 deprecated:
437 * Title::getSkinFromCssJsSubpage – use ::getSkinFromConfigSubpage
438 * Title::isCssOrJsPage – use ::isSiteConfigPage
439 * Title::isCssJsSubpage – use ::isUserConfigPage
440 * Title::isCssSubpage – use ::isUserCssConfigPage
441 * Title::isJsSubpage – use ::isUserJsConfigPage
442 * The following methods related to caching of half-parsed HTML were deprecated:
443 * Parser::serializeHalfParsedText()
444 * Parser::unserializeHalfParsedText()
445 * Parser::isValidHalfParsedText()
446 * StripState::getSubState()
447 * StripState::merge()
448 * The DeferredStringifier class is deprecated, use Message::listParam() instead.
449 * The type string for the parameter $lang of DateFormatter::getInstance is
450 deprecated.
451 * Wikimedia\Rdbms\SavepointPostgres is deprecated.
452 * The DO_MAINTENANCE constant is deprecated. RUN_MAINTENANCE_IF_MAIN should be
453 used instead.
454 * The function wfShellWikiCmd() has been deprecated, use
455 MediaWiki\Shell::makeScriptCommand().
456 * In the future, the hooks 'PreferencesFormPreSave' and 'PreferencesGetLegend'
457 will be allowed to provide any HTMLForm object rather than PreferencesForm.
458
459 === Other changes in 1.31 ===
460 * Browser support for Internet Explorer 10 was lowered from Grade A to Grade C.
461 * Browser support for Opera 12 and older was dropped entirely. Opera 15+
462 continues at Grade A.
463 * Multi-content-revision capability was introduced into the storage layer. See
464 <https://mediawiki.org/wiki/Requests_for_comment/Multi-Content_Revisions>.
465 * The "free" CSS class is now only applied to unbracketed URLs in wikitext.
466 Links written using square brackets will get the class "text" not "free".
467 * RFC 157418: Whitespace is trimmed from wikitext headings, wikitext list items,
468 wikitext table captions, wikitext table headings, wikitext table cells. HTML
469 headings, HTML list items, HTML table captions, HTML table headings, HTML
470 table cells will not have this trimming behavior.
471
472 == Compatibility ==
473 MediaWiki 1.31 requires PHP 7.0.0 or later. Although HHVM 3.18.5 or later is
474 supported, it is generally advised to use PHP 7.0.0 or later for long term
475 support.
476
477 MySQL/MariaDB is the recommended DBMS. PostgreSQL or SQLite can also be used,
478 but support for them is somewhat less mature. There is experimental support for
479 Oracle and Microsoft SQL Server.
480
481 The supported versions are:
482
483 * MySQL 5.5.8 or later
484 * PostgreSQL 9.2 or later
485 * SQLite 3.3.7 or later
486 * Oracle 9.0.1 or later
487 * Microsoft SQL Server 2005 (9.00.1399)
488
489 == Upgrading ==
490 1.31 has several database changes since 1.30, and will not work without schema
491 updates. Note that due to changes to some very large tables like the revision
492 table, the schema update may take quite long (minutes on a medium sized site,
493 many hours on a large site).
494
495 Don't forget to always back up your database before upgrading!
496
497 See the file UPGRADE for more detailed upgrade instructions, including
498 important information when upgrading from versions prior to 1.11.
499
500 For notes on 1.30.x and older releases, see HISTORY.
501
502 == Online documentation ==
503 Documentation for both end-users and site administrators is available on
504 MediaWiki.org, and is covered under the GNU Free Documentation License (except
505 for pages that explicitly state that their contents are in the public domain):
506
507 https://www.mediawiki.org/wiki/Special:MyLanguage/Documentation
508
509 == Mailing list ==
510 A mailing list is available for MediaWiki user support and discussion:
511
512 https://lists.wikimedia.org/mailman/listinfo/mediawiki-l
513
514 A low-traffic announcements-only list is also available:
515
516 https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce
517
518 It's highly recommended that you sign up for one of these lists if you're
519 going to run a public MediaWiki, so you can be notified of security fixes.
520
521 == IRC help ==
522 There's usually someone online in #mediawiki on irc.freenode.net.