Localisation updates from http://translatewiki.net.
[mediawiki.git] / RELEASE-NOTES-1.21
blob2ab652be00c3a52e2d57a5e57fe09ca96d692cf2
1 Security reminder: MediaWiki does not require PHP's register_globals. If you
2 have it on, turn it '''off''' if you can.
4 == MediaWiki 1.21 ==
6 THIS IS NOT A RELEASE YET
8 MediaWiki 1.21 is an alpha-quality branch and is not recommended for use in
9 production.
11 === Configuration changes in 1.21 ===
12 * (bug 29374) $wgVectorUseSimpleSearch is now enabled by default.
13 * Deprecated $wgAllowRealName is removed. Use $wgHiddenPrefs[] = 'realname'
14   instead.
15 * (bug 39957) Added $wgUnwatchedPageThreshold, specifying minimum count
16   of page watchers required for the number to be accessible to users
17   without the unwatchedpages permission.
18 * $wgBug34832TransitionalRollback has been removed.
19 * (bug 29472) $wgUseDynamicDates has been removed and its functionality
20   disabled.
21 * $wgVectorUseIconWatch is now enabled by default.
23 === New features in 1.21 ===
24 * (bug 38110) Schema changes (adding or dropping tables, indices and
25   fields) can be now be done separately from from other changes that
26   update.php makes.  This is useful in environments that use database
27   permissions to restrict schema changes but allow the DB user that
28   MediaWiki normally runs as to perform other changes that update.php
29   makes.  Schema changes can be run separately.  See the file UPGRADE
30   for more information.
31 * (bug 34876) jquery.makeCollapsible has been improved in performance.
32 * Added ContentHandler facility to allow extensions to support other content
33   than wikitext. See docs/contenthandler.txt for details.
34 * New feature was developed for showing high-DPI thumbnails for high-DPI mobile
35   and desktop displays (configurable with $wgResponsiveImages).
36 * Added new backend to represent and store information about sites and site
37   specific configuration.
38 * jQuery upgraded from 1.8.2 to 1.8.3.
39 * jQuery UI upgraded from 1.8.23 to 1.8.24.
40 * Added separate fa_sha1 field to filearchive table. This allows sha1
41   searches with the api in miser mode for deleted files.
42 * Add initial and programmatic sorting for tablesorter.
43 * Add the event "sortEnd.tablesorter", triggered after sorting has completed.
44 * The Job system was refactored to allow for different backing stores for
45   queues as well as cross-wiki access to queues, among other things. The schema
46   for the DB queue was changed to support better concurrency and reduce
47   deadlock errors.
48 * Added ApiQueryORM class to facilitate creation of query API modules based on
49   tables that have a corresponding ORMTable class.
50 * (bug 40876) Icon for PSD (Adobe Photoshop) file types.
51 * (bug 40641) Implemented Special:Version/Credits with a list of contributors.
52 * (bug 7851) Implemented one-click AJAX patrolling.
53 * The <data>, <time>, <meta>, and <link> elements are allowed within WikiText
54   for use with Microdata.
55 * The HTML5 <mark> tag has been whitelisted.
56 * Added ParserCloned hook for when the Parser object is cloned.
57 * Added AlternateEditPreview hook to allow extensions to replace the page
58   preview from the edit page.
59 * Added EditPage::showStandardInputs:options hook to allow extensions to add
60   new fields to the "editOptions" area of the edit form.
61 * Upload stash DB schema altered to improve upload performance.
62 * The following global functions are now reporting deprecated warnings in
63   debug mode: wfMsg, wfMsgNoTrans, wfMsgForContent, wfMsgForContentNoTrans,
64   wfMsgReal, wfMsgGetKey, wfMsgHtml, wfMsgWikiHtml, wfMsgExt, wfEmptyMsg. Use
65   the Message class, or the global method wfMessage.
66 * Added $wgEnableCanonicalServerLink, off by default. If enabled, a
67   <link rel=canonical> tag is added to every page indicating the correct server
68   to use.
69 * Debug message emitted by wfDebugLog() will now be prefixed with the group
70   name when its logged to the default log file. That is the case whenever the
71   group has no key in wgDebugLogGroups, that will help triage the default log.
72 * (bug 24620) Add types to LogFormatter.
73 * jQuery JSON upgraded from 2.3 to 2.4.0.
74 * Added GetDoubleUnderscoreIDs hook, for modifying the list of magic words.
75 * DatabaseUpdater class has two new methods to ease extensions schema changes:
76   dropExtensionIndex and renameExtensionIndex.
77 * New preference type - 'api'. Preferences of this type are not shown on
78   Special:Preferences, but are still available via the action=options API.
79 * (bug 39397) Hide rollback link if a user is the only contributor of the page.
80 * $wgPageInfoTransclusionLimit limits the list size of transcluded articles
81   on the info action. Default is 50.
82 * Added action=createaccount to allow user account creation.
83 * (bug 40124) action=options API also allows for setting of arbitrary
84   preferences, provided that their names are prefixed with 'userjs-'. This
85   officially reenables the feature that was undocumented and defective
86   in MW 1.20 (saving preferences using Special:Preferences cleared any
87   additional fields) and which has been disabled in 1.20.1 as a part of
88   a security fix (bug 42202).
89 * Added option to specify "others" as author in extension credits using
90   "..." as author name.
91 * Added the ability to limit the wall clock time used by shell processes,
92   as well as the CPU time. Configurable with $wgMaxShellWallClockTime.
93 * Allow memory of shell subprocesses to be limited using Linux cgroups
94   instead of ulimit -v, which tends to cause deadlocks in recent versions
95   of ImageMagick. Configurable with $wgShellCgroup.
96 * Added $wgWhitelistReadRegexp for regex whitelisting.
97 * (bug 5346) Categories that are redirects will be displayed italic in
98   the category links section at the bottom of a page.
99 * (bug 43915) New maintenance script deleteEqualMessages.php.
100 * You can now create checkbox option matrices through the HTMLCheckMatrix
101   subclass in HTMLForm.
102 * WikiText now permits the use of WAI-ARIA's role="presentation" inside of
103   html elements and tables. This allows presentational markup, especially
104   tables. To be marked up as such.
105 * maintenance/sql.php learned the --cluster option. Let you run the script
106   on some external cluster instead of the primary cluster for a given wiki.
107 * (bug 20281) test the parsing of inline URLs.
108 * Added Special:PagesWithProp, which lists pages using a particular page property.
109 * Implemented language-specific collations for category sorting for 67 languages
110   based in latin, greek and cyrillic alphabets. This allows one to *finally* get
111   articles to be correctly sorted on category pages. They are named
112   'uca-<langcode>', where <langcode> is one of: af, ast, az, be, bg, br, bs, ca,
113   co, cs, cy, da, de, dsb, el, en, eo, es, et, eu, fi, fo, fr, fur, fy, ga, gd,
114   gl, hr, hsb, hu, is, it, kk, kl, ku, ky, la, lb, lt, lv, mk, mo, mt, nl, no,
115   oc, pl, pt, rm, ro, ru, rup, sco, sk, sl, smn, sq, sr, sv, tk, tl, tr, tt, uk,
116   uz, vi.
117 * Added 'CategoryAfterPageAdded' and 'CategoryAfterPageRemoved' hooks.
118 * Added 'HistoryRevisionTools' and 'DiffRevisionTools' hooks.
119 * Added 'SpecialSearchResultsPrepend' and 'SpecialSearchResultsAppend' hooks.
120 * (bug 33186) Add image rotation api "imagerotate"
121 * (bug 34040) Add "User rights management" link on user page toolbox.
122 * (bug 45526) Add QUnit assertion helper "QUnit.assert.htmlEqual" for asserting
123   structual equality of HTML (ignoring insignificant differences like
124   quotmarks, order and whitespace in the attribute list).
125 * (bug 23393) HTML <hN> headings containing line breaks are now handled
126   correctly.
127 * (bug 45803) Whitespace within == Headline == syntax and within <hN> headings
128   is now non-significant and not preserved in the HTML output.
129 * (bug 23343) Implemented ability to apply IP blocks to the contents of X-Forwarded-For headers
130   by adding a new configuration variable $wgApplyIpBlocksToXff (disabled by default).
132 === Bug fixes in 1.21 ===
133 * (bug 40617) Installer can now customize the logo in LocalSettings.php
134 * (bug 40353) SpecialDoubleRedirect should support interwiki redirects.
135 * (bug 40352) fixDoubleRedirects.php should support interwiki redirects.
136 * (bug 9237) SpecialBrokenRedirect should not list interwiki redirects.
137 * (bug 34960) Drop unused fields rc_moved_to_ns and rc_moved_to_title from
138   recentchanges table.
139 * (bug 32951) Do not register internal externals with absolute protocol,
140   when server has relative protocol.
141 * (bug 39005) When purging proxies listed in $wgSquidServers using HTTP PURGE
142   method requests, we now send a Host header by default, for Varnish
143   compatibility. This also works with Squid in reverse-proxy mode. If you wish
144   to support Squid configured in forward-proxy mode, set
145   $wgSquidPurgeUseHostHeader to false.
146 * (bug 37020) sql.php with readline eats semicolon.
147 * (bug 11748) Properly handle optionally-closed HTML tags when Tidy is
148   disabled, and don't wrap HTML-syntax definition lists in paragraphs.
149 * (bug 41409) Diffs while editing an old revision should again diff against the
150   current revision.
151 * (bug 41494) Honor $wgLogExceptionBacktrace when logging non-API exceptions
152   caught during API execution.
153 * (bug 37963) Fixed loading process for user options.
154 * (bug 26995) Update filename field on Upload page after having sanitized it.
155 * (bug 41793) Contribution links to users with 0 edits on Special:ListUsers
156   didn't show up red.
157 * (bug 41899) A PHP notice no longer occurs when using the "rvcontinue" API
158   parameter.
159 * (bug 42036) Account creation emails now contain canonical (not
160   protocol-relative) URLs.
161 * (bug 41990) Fix regression: API edit with redirect=true and lacking
162   starttimestamp and basetimestamp should not cause an edit conflict.
163 * (bug 41706) EditPage: Preloaded page should be converted if possible and
164   needed.
165 * (bug 41886) Rowspans are no longer exploded by tablesorter until the table is
166   actually sorted.
167 * (bug 2865)  User interface HTML elements don't use lang attribute.
168   (completed the fix by adding the lang attribute to firstHeading).
169 * (bug 42173) Removed namespace prefixes on Special:UncategorizedCategories.
170 * (bug 36053) Log in "returnto" feature forgets query parameters if no
171   title parameter was specified.
172 * (bug 42410) API action=edit now returns correct timestamp for the new edit.
173 * (bug 14901) Email notification mistakes log action for new page creation.
174   Enotif no longer sends "page has been created" notifications for some log
175   actions. The following events now have a correct message: page creation,
176   deletion, move, restore (undeletion), change (edit). Parameter
177   $CHANGEDORCREATED is deprecated in 'enotif_body' and scheduled for removal in
178   MediaWiki 1.23.
179 * (bug 457) In the sidebar of Vector, CologneBlue, Monobook, and Monobook-based
180   skins, the heading levels have been changed from (variously per skin)
181   <h4>, <h5> or <h6> to only <h3>s, with a <h2> hidden heading above them.
182   If you are styling or scripting the headings in a custom way, this change
183   will require updates to your site's CSS or JS.
184 * (bug 41342) jquery.suggestions should cancel any active (async) fetches
185   before it triggers another fetch.
186 * (bug 42184) $wgUploadSizeWarning missing second variable.
187 * (bug 34581) removeUnusedAccounts.php maintenance script now ignores newuser
188   log when determining whether an account is used.
189 * (bug 43379) Gracefully fail if rev_len is unavailable for a revision on the
190   History page.
191 * (bug 42949) API no longer assumes all exceptions are MWException.
192 * (bug 41733) Hide "New user message" (.usermessage) element from printable view.
193 * (bug 39062) Special:Contributions will display changes that don't have
194   a parent id instead of just an empty bullet item.
195 * (bug 37209) "LinkCache doesn't currently know about this title" error fixed.
196 * wfMerge() now works if $wgDiff3 contains spaces
197 * (bug 43052) mediawiki.action.view.dblClickEdit.dblClickEdit should trigger
198   ca-edit click instead opening URL directly.
199 * (bug 43964) Invalid value of "link" parameter in <gallery> no longer produces
200   a fatal error.
201 * (bug 44775) The username field is not pre-filled when creating an account.
202 * (bug 45069) wfParseUrl() no longer produces a PHP notice if passed a "mailto:"
203   URL without address
204 * (bug 45012) Creating an account by e-mail can no longer show a
205   "password mismatch" error.
206 * (bug 44599) On Special:Version, HEADs for submodule checkouts (e.g. for
207   extensions) performed using Git 1.7.8+ should now appear.
208 * (bug 42184) $wgUploadSizeWarning missing second variable
209 * (bug 40326) Check if files exist with a different extension during uploading
210 * (bug 34798) Updated CSS for Atom/RSS recent changes feeds to match on-wiki diffs.
211 * (bug 42430) Calling numRows on MySQL no longer propagates unrelated errors.
212 * (bug 44719) Removed mention of non-existing maintenance/migrateCurStubs.php
213   script in includes/DefaultSettings.php
214 * (bug 45143) jquery.badge: Treat non-Latin variants of zero as zero as well.
215 * (bug 46151) mwdocgen.php should not ignore exit code of doxygen command.
216 * (bug 41889) Fix $.tablesorter rowspan exploding for complex cases.
218 === API changes in 1.21 ===
219 * prop=revisions can now report the contentmodel and contentformat.
220   See docs/contenthandler.txt.
221 * action=edit and action=parse now support contentmodel and contentformat
222   parameters to control the interpretation of page content.
223   See docs/contenthandler.txt for details.
224 * (bug 35693) ApiQueryImageInfo now suppresses errors when unserializing metadata.
225 * (bug 40111) Disable minor edit for page/section creation by API.
226 * (bug 41042) Revert change to action=parse&page=... behavior when the page
227   does not exist.
228 * (bug 27202) Add timestamp sort to list=allimages.
229 * (bug 43137) Don't return the sha1 of revisions through the API if the content is
230   revision-deleted.
231 * ApiQueryImageInfo now also returns imageinfo for redirects.
232 * list=alltransclusions added to enumerate every instance of page embedding
233 * list=alllinks & alltransclusions now allow both 'from' and 'continue' in
234   the same query. When both are present, 'from' is simply ignored.
235 * list=alllinks & alltransclusions now allow 'unique' in generators, to yield
236   a list of all link/template target pages instead of source pages.
237 * BREAKING CHANGE: list=logevents output format changed for details of some log
238   types. Specifically, details that were formerly reported under a key like
239   "4::foo" will now be reported under a key of simply "foo".
240 * BREAKING CHANGE: '??_badcontinue' error code was changed to '??badcontinue'
241   for all query modules.
242 * ApiQueryBase adds 'badcontinue' error code if module has 'continue' parameter.
243 * (bug 35885) Removed version parameter and all getVersion() methods.
244 * action=options now takes a "resetkinds" option, which allows only resetting
245   certain types of preferences when the "reset" option is set.
246 * (bug 36751) ApiQueryImageInfo now returns imageinfo for the redirect target
247   when queried with &redirects=.
248 * (bug 31849) ApiQueryImageInfo no longer gets confused when asked for info on
249   a redirect and its target.
250 * (bug 43849) ApiQueryImageInfo no longer throws exceptions with ForeignDBRepo
251   redirects.
252 * On error, any warnings generated before that error will be shown in the result.
253 * action=help supports generalized submodules (modules=query+value), querymodules obsolete
254 * ApiQueryImageInfo continuation is more reliable. The only major change is
255   that the imagerepository property will no longer be set on page objects not
256   processed in the current query (i.e. non-images or those skipped due to
257   iicontinue).
258 * Add supports for all pageset capabilities - generators, redirects, converttitles to
259   action=purge and action=setnotificationtimestamp.
260 * (bug 43251) prop=pageprops&ppprop= now accepts multiple props to query.
261 * ApiQueryImageInfo will now limit the number of calls to File::transform made
262   in any one query. If there are too many, iicontinue will be returned.
263 * action=query&meta=siteinfo&siprop=general will now return the regexes used for
264   link trails and link prefixes. Added for Parsoid support.
265 * Added an API query module list=pageswithprop, which lists pages using a
266   particular page property.
267 * Added an API query module list=pagepropnames, which lists all page prop names
268   currently in use on the wiki.
269 * (bug 44921) ApiMain::execute() will now return after the CORS check for an
270   HTTP OPTIONS request.
271 * (bug 44923) action=upload works correctly if the entire file is uploaded in
272   the first chunk.
273 * Added 'continue=' parameter to streamline client iteration over complex query results
274 * (bug 44909) API parameters may now be marked as type "upload", which is now
275   used for action=upload's 'file' and 'chunk' parameters. This type will raise
276   an error during parameter validation if the parameter is given but not
277   recognized as an uploaded file.
278 * (bug 44244) prop=info may now return the number of people watching each page.
279 * (bug 33304) list=allpages will no longer return duplicate entries when
280   querying protection.
281 * (bug 33304) list=allpages will now find really old indefinite protections.
282 * (bug 45937) meta=allmessages will report a syntactically invalid lang as a
283   proper error instead of as an uncaught exception.
284 * (bug 25325) added support for wlshow filtering (bots/anon/minor/patrolled)
285   to action=feedwatchlist
286 * WDDX formatted output will actually be formatted (and normal output will no
287   longer be), and will no longer choke on booleans.
288 * The JSON output formatter now leaves forward slashes unescaped to improve human
289   readability of URLs and similar strings. Also, a "utf8" option is now provided
290   to use UTF-8 encoding instead of hex escape codes for most non-ASCII characters.
291 * action=opensearch no longer silently ignores the format parameter.
292 * action=opensearch now supports format=jsonfm.
294 === API internal changes in 1.21 ===
295 * For debugging only, a new global $wgDebugAPI removes many API restrictions when true.
296   Never use on the production servers, as this flag introduces security holes.
297   Whenever enabled, a warning will also be added to all output.
298 * ApiModuleManager now handles all submodules (actions,props,lists) and instantiation
299 * Query stores prop/list/meta as submodules
300 * ApiPageSet can now be used in any action to process titles/pageids/revids or any generator.
301 * BREAKING CHANGE: ApiPageSet constructor now has two params instead of three, with only the
302   first one keeping its meaning. ApiPageSet is now derived from ApiBase.
303 * BREAKING CHANGE: ApiQuery::newGenerator() and executeGeneratorModule() were deleted.
304 * ApiQueryGeneratorBase::setGeneratorMode() now requires a pageset param.
305 * $wgAPIGeneratorModules is now obsolete and will be ignored.
306 * Added flags ApiResult::OVERRIDE and ADD_ON_TOP to setElement() and addValue()
307 * Internal API calls will now include <warnings> in case of unused parameters
309 === Languages updated in 1.21 ===
311 MediaWiki supports over 350 languages. Many localisations are updated
312 regularly. Below only new and removed languages are listed, as well as
313 changes to languages because of Bugzilla reports.
315 * South Azerbaijani (azb) added.
316 * (bug 30040) Autonym for nds-nl is now 'Nedersaksies' (was 'Nedersaksisch').
317 * (bug 45436) Autonym for pi (Pali) is now 'पालि' (was ''पाळि').
318 * (bug 34977) Now formatted numbers in Spanish use space as separator
319   for thousands, as mandated by the Real Academia Española.
320 * (bug 35031) Kurdish formatted numbers now use period and comma
321   as separators for thousands and decimals respectively.
323 === Other changes in 1.21 ===
324 * BREAKING CHANGE: (bug 44385) Removed the jquery.collapsibleTabs module and
325   moved it to the Vector extension. It was entirely Vector-extension-specific,
326   deeply interconnected with the extension, and this functionality really
327   belongs to the extension instead of the skin anyway. In the unlikely case you
328   were using it, you have to either copy it to your extension, or install the
329   Vector extension (and possibly disable its features using config settings if
330   you don't want them).
331 * Experimental IBM DB2 support was removed due to lack of interest and maintainership.
332 * BREAKING CHANGE: Filenames of maintenance scripts were standardized into
333   lowerCamelCase format, and made more explicit:
334   - clear_stats.php -> clearCacheStats.php
335   - clear_interwiki_cache.php -> clearInterwikiCache.php
336   - initStats.php -> initSiteStats.php
337   - proxy_check.php -> proxyCheck.php
338   - stats.php -> showCacheStats.php
339   - showStats.php -> showSiteStats.php.
340   Class names were renamed accordingly:
341   - clear_stats -> ClearCacheStats
342   - InitStats -> InitSiteStats
343   - CacheStats -> ShowCacheStats
344   - ShowStats -> ShowSiteStats.
345 * BREAKING CHANGE: (bug 38244) Removed the mediawiki.api.titleblacklist module
346   and moved it to the TitleBlacklist extension.
347 * The Special:ActiveUsers special page was removed.
348 * BREAKING CHANGE: Implementation of MediaWiki's JS and JSON value encoding
349   has changed:
350 ** MediaWiki no longer supports PHP installations in which the native JSON
351    extension is missing or disabled.
352 ** XmlJsCode objects can no longer be nested inside objects or arrays.
353    (For Xml::encodeJsCall(), this individually applies to each argument.)
354 ** The sets of characters escaped by default, along with the precise escape
355    sequences used, have changed (except for the Xml::escapeJsString()
356    function, which is now deprecated).
357 * BREAKING CHANGE: The Services_JSON class has been removed. If necessary,
358   be sure to upgrade affected extensions at the same time (e.g. Collection).
359 * Calling Linker methods using a skin will now output deprecation warnings.
360 * Pages with a returnto (such as the page when you login or logout), no
361   longer have a rel="next" link tag.
363 == Compatibility ==
365 MediaWiki 1.21 requires PHP 5.3.2 or later.
367 MySQL is the recommended DBMS. PostgreSQL or SQLite can also be used, but
368 support for them is somewhat less mature. There is experimental support for
369 Oracle.
371 The supported versions are:
373 * MySQL 5.0.2 or later
374 * PostgreSQL 8.3 or later
375 * SQLite 3.3.7 or later
376 * Oracle 9.0.1 or later
378 == Upgrading ==
380 1.21 has several database changes since 1.20, and will not work without schema
381 updates. Note that due to changes to some very large tables like the revision
382 table, the schema update may take quite long (minutes on a medium sized site,
383 many hours on a large site).
385 If upgrading from before 1.11, and you are using a wiki as a commons
386 repository, make sure that it is updated as well. Otherwise, errors may arise
387 due to database schema changes.
389 If upgrading from before 1.7, you may want to run refreshLinks.php to ensure
390 new database fields are filled with data.
392 If you are upgrading from MediaWiki 1.4.x or earlier, you should upgrade to
393 1.5 first. The upgrade script maintenance/upgrade1_5.php has been removed
394 with MediaWiki 1.21.
396 Don't forget to always back up your database before upgrading!
398 See the file UPGRADE for more detailed upgrade instructions.
400 For notes on 1.19.x and older releases, see HISTORY.
402 == Online documentation ==
404 Documentation for both end-users and site administrators is available on
405 MediaWiki.org, and is covered under the GNU Free Documentation License (except
406 for pages that explicitly state that their contents are in the public domain):
408         https://www.mediawiki.org/wiki/Documentation
410 == Mailing list ==
412 A mailing list is available for MediaWiki user support and discussion:
414         https://lists.wikimedia.org/mailman/listinfo/mediawiki-l
416 A low-traffic announcements-only list is also available:
418         https://lists.wikimedia.org/mailman/listinfo/mediawiki-announce
420 It's highly recommended that you sign up for one of these lists if you're
421 going to run a public MediaWiki, so you can be notified of security fixes.
423 == IRC help ==
425 There's usually someone online in #mediawiki on irc.freenode.net.