Merge "Soft deprecation of DatabaseMysql"
[lhc/web/wiklou.git] / RELEASE-NOTES-1.30
1 == MediaWiki 1.30 ==
2
3 THIS IS NOT A RELEASE YET
4
5 MediaWiki 1.30 is an alpha-quality branch and is not recommended for use in
6 production.
7
8 === MySQL version requirement in 1.30 ===
9 As of 1.30, MediaWiki now requires MySQL 5.5.8 or higher (see Compatibility
10 section).
11
12 === Configuration changes in 1.30 ===
13 * The "C.UTF-8" locale should be used for $wgShellLocale, if available, to avoid
14 unexpected behavior when code uses locale-sensitive string comparisons. For
15 example, the Scribunto extension considers "bar" < "Foo" in most locales
16 since it ignores case.
17 * $wgShellLocale now affects LC_ALL rather than only LC_CTYPE. See
18 documentation of $wgShellLocale for details.
19 * $wgShellLocale is now applied for all requests. wfInitShellLocale() is
20 deprecated and a no-op, as it is no longer needed.
21 * $wgJobClasses may now specify callback functions as an alternative to plain
22 class names. This is intended for extensions that want control over the
23 instantiation of their jobs, to allow for proper dependency injection.
24 * $wgResourceModules may now specify callback functions as an alternative
25 to plain class names, using the 'factory' key in the module description
26 array. This allows dependency injection to be used for ResourceLoader modules.
27 * $wgExceptionHooks has been removed.
28 * (T45547) $wgUsePigLatinVariant added (off by default).
29 * (T152540) MediaWiki now supports a section ID escaping style that allows to display
30 non-Latin characters verbatim on many modern browsers. This is controlled by the
31 new configuration setting, $wgFragmentMode.
32 * $wgExperimentalHtmlIds is now deprecated and will be removed in a future version,
33 use $wgFragmentMode to migrate off it to a modern alternative.
34 * $wgExternalInterwikiFragmentMode was introduced to control how fragments in
35 sinterwikis going outside of current wiki farm are encoded.
36 * (T120333) Soft-deprecated the use of PHP extension 'mysql' in favor of 'mysqli'.
37 This PHP extension was deprecated in PHP 5.5 and removed in PHP 7.0. MediaWiki
38 auto-selects the 'mysqli' driver since MediaWiki 1.22, except if explicitly
39 requested through the configuration parameter $wgDBservers.
40
41 === New features in 1.30 ===
42 * (T37247) Output from Parser::parse() will now be wrapped in a div with
43 class="mw-parser-output" by default. This may be changed or disabled using
44 ParserOptions::setWrapOutputClass().
45 * Added 'ChangeTagsAllowedAdd' hook, enabling extensions to allow software-
46 specific tags to be added by users.
47 * Added a 'ParserOptionsRegister' hook to allow extensions to register
48 additional parser options.
49 * (T45547) Included Pig Latin, a language game in English, as a
50 LanguageConverter variant. This allows English-speaking developers
51 to develop and test LanguageConverter more easily. Pig Latin can be
52 enabled by setting $wgUsePigLatinVariant to true.
53 * Added RecentChangesPurgeRows hook to allow extensions to purge data that
54 depends on the recentchanges table.
55 * Added JS config values wgDiffOldId/wgDiffNewId to the output of diff pages.
56 * (T2424) Added direct unwatch links to entries in Special:Watchlist (if the
57 'watchlistunwatchlinks' preference option is enabled). With JavaScript
58 enabled, these links toggle so the user can also re-watch pages that have
59 just been unwatched.
60 * Added $wgParserTestMediaHandlers, where mock media handlers can be passed to
61 MediaHandlerFactory for parser tests.
62
63 === Languages updated in 1.30 ===
64
65 * Support for kbp (Kabɩyɛ / Kabiyè) was added.
66 * Support for skr (Saraiki, سرائیکی) was added.
67
68 === External library changes in 1.30 ===
69
70 ==== Upgraded external libraries ====
71 * mediawiki/mediawiki-codesniffer updated to 0.8.1.
72 * wikimedia/composer-merge-plugin updated to 1.4.1.
73
74 ==== New external libraries ====
75 * The class \TestingAccessWrapper has been moved to the external library
76 wikimedia/testing-access-wrapper and renamed \Wikimedia\TestingAccessWrapper.
77
78 ==== Removed and replaced external libraries ====
79 * …
80
81 === Bug fixes in 1.30 ===
82 * (T151633) Ordered list items use now Devanagari digits in Nepalese
83 (thanks to Sfic)
84
85 === Action API changes in 1.30 ===
86 * (T37247) action=parse output will be wrapped in a div with
87 class="mw-parser-output" by default. This may be changed or disabled using
88 the new 'wrapoutputclass' parameter.
89 * When errorformat is not 'bc', abort reasons from action=login will be
90 formatted as specified by the error formatter parameters.
91 * action=compare can now handle arbitrary text, deleted revisions, and
92 returning users and edit comments.
93 * (T164106) The 'rvdifftotext', 'rvdifftotextpst', 'rvdiffto',
94 'rvexpandtemplates', 'rvgeneratexml', 'rvparse', and 'rvprop=parsetree'
95 parameters to prop=revisions are deprecated, as are the similarly named
96 parameters to prop=deletedrevisions, list=allrevisions, and
97 list=alldeletedrevisions. Use action=compare, action=parse, or
98 action=expandtemplates instead.
99
100 === Action API internal changes in 1.30 ===
101 * ApiBase::getDescriptionMessage() and the "apihelp-*-description" messages are
102 deprecated. The existing message should be split between "apihelp-*-summary"
103 and "apihelp-*-extended-description".
104 * (T123931) Individual values of multi-valued parameters can now be marked as
105 deprecated.
106
107 === Languages updated in 1.30 ===
108 MediaWiki supports over 350 languages. Many localisations are updated
109 regularly. Below only new and removed languages are listed, as well as
110 changes to languages because of Phabricator reports.
111
112 * …
113
114 ==== Pig Latin added ====
115 * (T45547) Added Pig Latin, a made-up English variant (en-x-piglatin),
116 for easier variant development and testing. Disabled by default. It can be
117 enabled by setting $wgUsePigLatinVariant to true.
118
119 === Other changes in 1.30 ===
120 * The use of an associative array for $wgProxyList, where the IP address is in
121 the key instead of the value, is deprecated (e.g. [ '127.0.0.1' => 'value' ]).
122 Please convert these arrays to indexed/sequential ones (e.g. [ '127.0.0.1' ]).
123 * mw.user.bucket (deprecated in 1.23) was removed.
124 * LoadBalancer::getServerInfo() and LoadBalancer::setServerInfo() are
125 deprecated. There are no known callers.
126 * File::getStreamHeaders() was deprecated.
127 * MediaHandler::getStreamHeaders() was deprecated.
128 * Title::canTalk() was deprecated. The new Title::canHaveTalkPage() should be
129 used instead.
130 * MWNamespace::canTalk() was deprecated. The new MWNamespace::hasTalkNamespace()
131 should be used instead.
132 * The ExtractThumbParameters hook (deprecated in 1.21) was removed.
133 * The OutputPage::addParserOutputNoText and ::getHeadLinks methods (both
134 deprecated in 1.24) were removed.
135 * wfMemcKey() and wfGlobalCacheKey() were deprecated. BagOStuff::makeKey() and
136 BagOStuff::makeGlobalKey() should be used instead.
137 * (T146304) Preprocessor handling of LanguageConverter markup has been improved.
138 As a result of the new uniform handling, '-{' may need to be escaped
139 (for example, as '-<nowiki/>{') where it occurs inside template arguments
140 or wikilinks.
141 * (T163966) Page moves are now counted as edits for the purposes of
142 autopromotion, i.e., they increment the user_editcount field in the database.
143 * Two new hooks, LogEventsListLineEnding and NewPagesLineEnding, were added for
144 manipulating Special:Log and Special:NewPages lines.
145 * The OldChangesListRecentChangesLine, EnhancedChangesListModifyLineData,
146 PageHistoryLineEnding, ContributionsLineEnding and DeletedContributionsLineEnding
147 hooks have an additional parameter, for manipulating HTML data attributes of
148 RC/history lines. EnhancedChangesListModifyBlockLineData can do that via the
149 $data['attribs'] subarray.
150 * (T130632) The OutputPage::enableTOC() method was removed.
151 * WikiPage::getParserOutput() will now throw an exception if passed
152 ParserOptions that would pollute the parser cache. Callers should use
153 WikiPage::makeParserOptions() to create the ParserOptions object and only
154 change options that affect the parser cache key.
155 * Article::viewRedirect() is deprecated.
156 * DeprecatedGlobal no longer supports passing in a direct value, it requires a
157 callable factory function or a class name.
158 * The $parserMemc global, wfGetParserCacheStorage(), and ParserCache::singleton()
159 are all deprecated. The main ParserCache instance should be obtained from
160 MediaWikiServices instead. Access to the underlying BagOStuff is possible
161 through the new ParserCache::getCacheStorage() method.
162 * .mw-ui-constructive CSS class (deprecated in 1.27) was removed.
163 * Sanitizer::escapeId() was deprecated, use escapeIdForAttribute(),
164 escapeIdForLink() or escapeIdForExternalInterwiki() instead.
165 * Title::escapeFragmentForURL() was deprecated, use one of the aforementioned
166 Sanitizer functions or, if possible, Title::getFragmentForURL().
167 * Second parameter to Sanitizer::escapeIdReferenceList() ($options) now does
168 nothing and is deprecated.
169 * mw.util.escapeId() was deprecated, use escapeIdForAttribute() or
170 escapeIdForLink().
171 * MagicWord::replaceMultiple() (deprecated in 1.25) was removed.
172 * WikiImporter now requires the second parameter to be an instance of the Config,
173 class. Prior to that, the Config parameter was optional (a behavior deprecated in
174 1.25).
175 * Removed 'jquery.mwExtension' module. (deprecated since 1.26)
176 * mediawiki.ui: Deprecate greys, which are not part of WikimediaUI color palette
177 any more.
178
179 == Compatibility ==
180 MediaWiki 1.30 requires PHP 5.5.9 or later. There is experimental support for
181 HHVM 3.6.5 or later.
182
183 MySQL/MariaDB is the recommended DBMS. PostgreSQL or SQLite can also be used,
184 but support for them is somewhat less mature. There is experimental support for
185 Oracle and Microsoft SQL Server.
186
187 The supported versions are:
188
189 * MySQL 5.5.8 or later
190 * PostgreSQL 8.3 or later
191 * SQLite 3.3.7 or later
192 * Oracle 9.0.1 or later
193 * Microsoft SQL Server 2005 (9.00.1399)
194
195 == Upgrading ==
196 1.30 has several database changes since 1.29, and will not work without schema
197 updates. Note that due to changes to some very large tables like the revision
198 table, the schema update may take a long time (minutes on a medium sized site,
199 many hours on a large site).
200
201 Don't forget to always back up your database before upgrading!
202
203 See the file UPGRADE for more detailed upgrade instructions, including
204 important information when upgrading from versions prior to 1.11.
205
206 For notes on 1.29.x and older releases, see HISTORY.
207
208 == Online documentation ==
209 Documentation for both end-users and site administrators is available on
210 MediaWiki.org, and is covered under the GNU Free Documentation License (except
211 for pages that explicitly state that their contents are in the public domain):
212
213 https://www.mediawiki.org/wiki/Special:MyLanguage/Documentation
214
215 == Mailing list ==
216 A mailing list is available for MediaWiki user support and discussion:
217
218 https://lists.wikimedia.org/mailman/listinfo/mediawiki-l
219
220 A low-traffic announcements-only list is also available:
221
222 https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce
223
224 It's highly recommended that you sign up for one of these lists if you're
225 going to run a public MediaWiki, so you can be notified of security fixes.
226
227 == IRC help ==
228 There's usually someone online in #mediawiki on irc.freenode.net.