Implemented param tracking for hook users, feels a bit hackish
[lhc/web/wiklou.git] / RELEASE-NOTES
1 = MediaWiki release notes =
2
3 Security reminder: MediaWiki does not require PHP's register_globals
4 setting since version 1.2.0. If you have it on, turn it *off* if you can.
5
6 == MediaWiki 1.18 ==
7
8 THIS IS NOT A RELEASE YET
9
10 MediaWiki is now using a "continuous integration" development model with
11 quarterly snapshot releases. The latest development code is always kept
12 "ready to run", and in fact runs our own sites on Wikipedia.
13
14 Release branches will continue to receive security updates for about a year
15 from first release, but nonessential bugfixes and feature developments
16 will be made on the development trunk and appear in the next quarterly release.
17
18 Those wishing to use the latest code instead of a branch release can obtain
19 it from source control: http://www.mediawiki.org/wiki/Download_from_SVN
20
21 === PHP 5.2 now required ==
22 In 1.18, the lowest supported version of MediaWiki is now 5.2.3. Please upgrade
23 PHP if you have not done so prior to upgrading MediaWiki.
24
25 === Configuration changes in 1.18 ===
26 * The WantedPages::getSQL hook has been removed and replaced with
27 WantedPages::getQueryInfo . This may break older extensions.
28 * $wgUseCombinedLoginLink controls whether to output a combined
29 login / create account link in the personal bar, or to output separate login
30 and create account links
31 * Skin names are no longer created based on a ucfirst version of the key in
32 $wgValidSkinNames but now the value. This means for
33 $wgValidSkinNames["monobook"] = "MonoBook"; the skin loader will no longer try
34 loading SkinMonobook and will instead load SkinMonoBook.
35 * $wgMaxUploadSize may now be set to an array to specify the upload size limit
36 per upload type.
37 * $wgAPICacheHelp added in 1.16 is now removed. To disable API help caching, set
38 $wgAPICacheHelpTimeout = 0;
39 * OutputPage::isUserJsAllowed() no longer returns false when scripts are allowed
40 by the page, but $wgAllowUserJs is set to false.
41 * Pure "Skin" class based custom skins are no longer supported, all custom skins
42 should be put together using SkinTemplate and BaseTemplate or QuickTemplate.
43 * The transliteration for passwords in case they were migrated from an old Latin-1
44 install (previous to MediaWiki 1.5) is now only done for wikis with
45 $wgLegacyEncoding set.
46 * (bug 27508) Add $wgSVGMetadataCutoff to limit the maximum amount of an svg we
47 look at when finding metadata to prevent excessive resource usage.
48 * $wgSysopUserBans and $wgSysopRangeBans (deprecated in 1.17) are now removed.
49 Use $wgBlockCIDRLimit = array( 'IPv4' => 43, 'IPv6' => 128 ) to achieve the same
50 functionality as $wgSysopRangeBans; you can use the BlockIp hook to replicate
51 $wgSysopUserBans functionality.
52 * The options on the block form have been standardised such that checking a box
53 makes the block 'more serious'; so while "check to prevent account creation" and
54 "check to enable autoblock" remain the same, "check to allow user-talk edit" is
55 reversed to "check to *disable* user-talk edit", and "check to block anon-only"
56 becomes "check to block logged-in users too". The default settings remain the same.
57 * Most of the field names on the Special:Block form have been changed, which will
58 probably break screen-scraping bots.
59 * (bug 26866) The 'trackback' right is no longer granted to sysops by default.
60 $wgUseTrackbacks is already false by default
61 * (bug 17009) the hiddenStructure CSS class, a highly hackish way of at least *appearing*
62 to hide article elements, has been removed. Use the ParserFunctions extension to
63 actually remove unwanted elements from the output.
64 * (bug 14202) $wgUseTeX has been superseded by the Math extension. To re-enable
65 math conversion after upgrading, obtain the Math extension from SVN or from
66 http://www.mediawiki.org/wiki/Extension:Math and add to LocalSettings.php:
67 require_once "$IP/extensions/Math/Math.php";
68 * $wgProfiler is now a configuration array, see StartProfiler.sample for details
69 * $wgProfiling has been removed
70 * The spyc library is now no longer included in phase3
71
72 === New features in 1.18 ===
73 * (bug 8130) Query pages should limit to content namespaces, not just main
74 namespace
75 * Search suggestions (other than in the Vector skin) will now use the HTML5
76 datalist feature where supported, currently only Firefox 4.
77 * Special:Contribs now redirects to Special:Contributions
78 * (bug 6672) Images are now autorotated according to their EXIF orientation.
79 This only affects thumbnails; the source remains unrotated.
80 * (bug 25708) Update case mappings and normalization to Unicode 6.0.0
81 * New hook ArticlePrepareTextForEdit added, called when preparing text to be
82 saved.
83 * New parser option PreSaveTransform added, allows the pre-save transformation
84 to be selectively disabled.
85 * Alternative to $wgHooks implemented, using the new Hooks class.
86 * Add width parameter to Special:Filepath to allow getting the file path of a
87 thumbnail.
88 * (bug 26870) Add size to {{filepath:}}
89 * Upload warnings now show a thumbnail of the uploaded file
90 * Introduced the edittools-upload message, which will be inserted under the
91 upload form instead of edittools if available
92 * (bug 26285) Extensions will be automatically generated on upload if the user
93 specified a filename without extension.
94 * (bug 26851) Special:UserRights now allows to prefill the reason field
95 * New maintenance script to fix double redirects
96 (maintenance/fixDoubleRedirects.php)
97 * (bug 23315) New body classes to allow easier styling of special pages
98 * (bug 27159) Make email confirmation code expiration time configurable
99 * CSS/JS for each user group is imported from MediaWiki:Sysop.js,
100 MediaWiki:Autoconfirmed.css, etc.
101 * (bug 24230) Uploads of ZIP types, such as MS Office or OpenOffice can now be
102 safely enabled. A ZIP file reader was added which can scan a ZIP file for
103 potentially dangerous Java applets. This allows applets to be blocked
104 specifically, rather than all ZIP files being blocked.
105 * (bug 2429) Allow selection of associated namespace in recent changes
106 * (bug 26217) File size is now checked before uploading in HTML5 browsers
107 * CSS stylesheet MediaWiki:Noscript.css is now loaded for users with JavaScript
108 disabled (enclosed in the head in a <noscript> tag)
109 * Added UserGetLanguageObject hook to change the language used in $wgLang
110 * (bug 14645) When $wgMiserMode is on, expensive special pages are styled
111 differently (italicized by default) on Special:SpecialPages
112 * Added $wgAggregateStatsID, which allows UDP stats to be aggregated over
113 several wikis.
114 * When $wgAllowMicrodataAttributes is true, all itemtypes are allowed, not just
115 the three that were defined in the original specification.
116 * (bug 14706) Added support for the Imagick PHP extension.
117 * (bug 18691) Added support for SVG rasterization using the Imagick PHP
118 extension
119 * (bug 2581, bug 6834) Added links to thumbnail in several resolutions to the
120 file description page. The sizes are set by $wgImageLimits.
121 * (bug 28031) Add pageCount support to ArchivedFile
122 * (bug 27924) PhpHttpRequest doesn't return response body if HTTP != 200
123 * Added hook BitmapHandlerTransform to allow extension to transform a file
124 without overriding the entire handler.
125 * The parser now attempts to output markers for editsection tokens and defer the
126 rendering of them post-cache to reduce parser cache fragmentation and ensure
127 skin customizability of edit section links.
128 * (bug 24755) AuthPlugin auto-creation of local accounts can now be aborted by
129 other extensions by handling the 'AbortAutoAccount' hook, similar to the
130 'AbortNewAccount' triggered by explicit account creations. (They are separate
131 to avoid loops and confusion; auth plugins like CentralAuth need to handle
132 AbortNewAccount separately.
133 * Special:ListFiles is now transcludable.
134 * (bug 13879) Special:Emailuser asks for suitable target user if called without.
135 * (bug 16956) IPTC and XMP metadata now extracted from images
136 * (bug 23816) A tracking category is now added for any pages with broken images.
137 * Conversion script between Syllabics and Latin for the Inuktitut language
138
139 === Bug fixes in 1.18 ===
140 * (bug 23119) WikiError class and subclasses are now marked as deprecated
141 * (bug 10871) Javascript and CSS pages in MediaWiki namespace are no longer
142 treated as wikitext on preview.
143 * (bug 22753) Output from update.php is more clear when things changed, entries
144 indicating nothing changed are now all prefixed by "..."
145 * Page existence is now not revealed (in the colour of the tabs) to users who
146 cannot read the page in question.
147 * (bug 19006) {{REVISIONUSER}} no longer acts like {{CURRENTUSER}} in some cases
148 * (bug 16019) $wgArticlePath = "/$1" no longer breaks API edit/watch actions
149 * (bug 18372) File types blacklisted by $wgFileBlacklist will no longer be shown
150 as "Permitted file types" on the upload form
151 * (bug 26379) importImages.php gives more descriptive error message on failure.
152 * (bug 26410) + signs are no longer treated as spaces in internal links if
153 link has a % sign in it.
154 * (bug 26412) Search results headers no longer show a bogus edit link.
155 * (bug 26540) Fixed wrong call to applyPatch in MysqlUpdater
156 * (bug 26574) Added 'upload' to $wgRestrictionTypes, allowing upload protected
157 pages to be queried via the API and Special:ProtectedPages, and allowing
158 disabling upload protection by removing it from $wgRestrictionTypes.
159 * If an edit summary exceeds 250 bytes and is truncated, add an ellipse
160 * (bug 26638) Database error pages display correctly in RTL languages
161 * (bug 26187) Confirmrecreate no longer parses the edit summary
162 * (bug 25506) Exception is thrown if OutputPage::parse is called inside a tag
163 hook, which would reset parser state
164 * (bug 26208) Mark directionality of some interlanguage links
165 * (bug 26034) Make the "View / Read" tab in content_navigation style tabs remain
166 selected when the action is "purge".
167 * (bug 14267) Support a MediaWiki:Mainpage-nstab override for the subject
168 namespace tab on the mainpage of a wiki.
169 * (bug 10158) Do not mention allowing others to contact you when the feature
170 is disabled ($wgEnableUserEmail=false)
171 * (bug 26733) Wrap initial table creation in transaction
172 * (bug 26729) Category pages should return 404 if they do not exist and have no
173 members.
174 * (bug 2585) Image pages should send 404 if no image, no shared image and no
175 description page.
176 * Custom editintro's using the editintro url parameter will no longer show
177 <noinclude> sections on pages they are included on.
178 * (bug 26449) Keep underlines from headings outside of tables and thumbs by
179 adding overflow:hidden to h1,h2,h3,h4,h5,h6 (also fixes editsection bunching).
180 * (bug 26708) Remove background-color:white from tables in Monobook and Vector.
181 * (bug 28422) Remove color:black from tables in Monobook and Vector. And add it
182 to table.wikitable instead.
183 * (bug 26781) {{PAGENAME}} and related parser functions escape their output
184 better.
185 * (bug 26716) Provide link to instructions for external editor related
186 preferences and add a comment to the ini control file explaining what is
187 going on.
188 * Trying to upload a file with no extension or with a disallowed MIME type now
189 gives the right message instead of complaining about a MIME/extension mismatch
190 * (bug 26809) Uploading files with multiple extensions where one of the
191 extensions is blacklisted now gives the proper extension in the error message.
192 * (bug 26961) Hide anon edits in watchlist preference now actually works.
193 * (bug 19751) Filesystem is now checked during image undeletion
194 * Send last modified headers for Special:Recentchanges when RC patrol is
195 enabled, but user cannot see rc patrol links.
196 * (bug 26548) ForeignAPIRepo (InstantCommons) now works with PDF files
197 and other multi-paged file formats.
198 * Files with a mime type that does not match the extension are now properly
199 thumbnailed
200 * (bug 27201) Special:WhatLinksHere output no longer contains duplicate IDs
201 * (bug 15905) Nostalgia skin could become more usable by including a Talk:
202 link at the top of the page
203 * (bug 27560) Search queries no longer fail in walloon language
204 * (bug 27679) Broken embedded files with special characters are no longer
205 double HTML escaped
206 * (bug 27700) The upload protection can now also be set for files that do not
207 exist.
208 * (bug 27763) Article::getParserOutput() no longer throws a fatal given when an
209 incorrect revision ID is passed.
210 * Trim the form field for uploading by url to remove extra spaces which could
211 cause confusing error messages.
212 * (bug 27854) Http::isValidURI is way too lax.
213 * Do not show enotifminoredits preference, if disabled by $wgEnotifMinorEdits.
214 * AbortLogin returning "ABORTED" now handled. Also allows message identifier
215 for "ABORTED" reason to be returned and displayed to user.
216 * (bug 28034) uploading file to local wiki when file exists on shared repository
217 (commons) gives spurious info in the warning message
218 * Usernames get lost when selecting different sorts on Special:listfiles
219 * (bug 14005) editing section 0 of an existing but empty page gives no such
220 section error
221 * (bug 26939) Installer does not set $wgMetaNamespace
222 * (bug 28166) UploadBase assumes that 'edit' and 'upload' rights are not per
223 page restrictions
224 * Make truncate function automatically consider length of '...' string,
225 since length can vary by localization.
226 * (bug 28242) Make redirects generated by urls containing a local interwiki
227 prefix be a 301 instead of a 302.
228 * (bug 15641) blocked administrators are now prevented from deleting or protecting
229 their own talk page; and all blocked users are more comprehensively prevented
230 from performing other actions
231 * (bug 27893) Edit-on-doubleclick now applies only on view and purge actions;
232 no longer triggers unexpectedly on delete, history etc.
233 * (bug 28417) Fix PHP notice when importing revision without a listed id
234 * (bug 28430) Make html and TeX output of <math> always be left-to-right.
235 * (bug 28306) Fix exposure of suppressed usernames in ForeignDBRepo
236 * (bug 28372) Fix bogus link to suppressed file versions in ForeignDBRepo
237 * (bug 27473) Fix regression: bold, italic no longer interfere with linktrail for ca, kaa
238 * (bug 28444) Fix regression: edit-on-doubleclick retains revision id again
239 * &apos; character entity is now allowed in wikitext
240 * UtfNormal::cleanUp on an invalid utf-8 sequence no longer returns false if intl installed.
241 * (bug 28561) The css class small will no longer make nested elements even smaller.
242 * (bug 13172) Array type exif data (like GPS) was not being extracted from images.
243 * (bug 28532) wfMsgExt() and wfMsgWikiHtml() use $wgOut->parse()
244 * (bug 16129) Transcluded special pages expose strip markers when they output parsed messages
245
246 === API changes in 1.18 ===
247 * (bug 26339) Throw warning when truncating an overlarge API result
248 * (bug 14869) Add API module for accessing QueryPage-based special pages
249 * (bug 14020) API for Special:Unwatchedpages
250 * (bug 24287) Wrap API Help output at 100 characters
251 * Add a realname uiprop option to query=userinfo so a user's realname can be
252 extracted
253 * Add a &watchuser option to ApiBlock
254 * (bug 26541) Generator-ise ApiQueryRecentChanges
255 * action=parse now correctly returns an error for nonexistent pages
256 * (bug 25767) Add userrights properties to allusers and users query lists
257 * (bug 26558) list=allusers auprop=groups does not list groups a user is
258 automatically a member of
259 * (bug 26559) list=allusers auprop=rights does not match
260 list=users usprop=rights
261 * (bug 26560) On allusers if limit < total number of users, last user gets
262 duplicate
263 * (bug 25135) add "normalized" to action=parse
264 * (bug 26460) Add support for listing category members by category pageid
265 * (bug 26482) add a imimages param to prop=images
266 * (bug 26498) allow LinksUpdate with API
267 * (bug 26485) add a elextlinks param to prop=extlinks
268 * (bug 26483) add a iwtitles param to prop=iwlinks
269 * (bug 26484) add a lltitles param to prop=langlinks
270 * (bug 26480) add a pppageprops param to prop=pageprops
271 * (bug 26650) Remove $wgAPICacheHelp in favour of $wgAPICacheHelpTimeout
272 * (bug 24650) Fix API to work with categorylinks changes
273 * Expose list of skins in meta=siteinfo
274 * (bug 26548) Add iiurlparam param to query=imageinfo and query=stashimageinfo
275 * (bug 27205) aiprop=metadata and aiprop=parsedcomment need help text
276 * Add a amtitle param to meta=allmessages
277 * (bug 25832) query=allimages now outputs ns/title as well
278 * (bug 27199) Thumbnail urls can be fetched for old files as well
279 * (bug 27376) when using ApiBase::PARAM_TYPE => 'integer' without a min or
280 max value, api doesn't validate the input is actually an integer
281 * (bug 27479) API error when using both prop=pageprops and
282 prop=info&inprop=displaytitle
283 * (bug 27554) Update api information text to reflect change in bug 26125
284 * (bug 27611) list=blocks: Use ipb_by_text instead of join with user table
285 * (bug 27616) Add userid of blocked user and blocker to list=blocks
286 * (bug 27688) Simplify queries to list user block information
287 * (bug 27708) list=users does not have a property to return user id
288 * (bug 27715) imageinfo didn't respect revdelete
289 * (bug 27862) Useremail module didn't properly return success on success.
290 * (bug 27590) prop=imageinfo now allows querying the media type
291 * (bug 27587) list=filearchive now outputs full title info
292 * (bug 27018) Added action=filerevert to revert files to an old version
293 * (bug 27897) list=allusers and list=users list hidden users
294 * (bug 27717) API's exturlusage module does not respect $wgMiserMode
295 * (bug 27588) list=filearchive&faprop=sha1 returns empty attribute
296 * (bug 28010) Passing a non existant user to list=users gives internal error
297 * (bug 27549) action=query&list=users&usprop=groups doesn't show implicit
298 groups if a user doesn't have explicit groups
299 * (bug 27670) Ordering by timestamp (and usage of start and end) isn't as clear
300 in auto generated document, as it is on mw.org
301 * (bug 27182) API: Add filter by prefix for meta=allmessages
302 * (bug 27183) API: Add filter by customisation state for meta=allmessages
303 * (bug 27340) API: Allow listing of "small" categories
304 * (bug 27342) Add audir param to list=allusers
305 * (bug 27203) add fato param to list=filearchive
306 * (bug 27341) Add drto param to list=deletedrevs
307 * (bug 26630) Add api for Special:ActiveUsers
308 * (bug 27020) API: Allow title prefix search of logevents (only when not in
309 miser mode)
310 * (bug 26629) add Special:MIMESearch to api
311 * (bug 27585) add pagecount to list=filearchive
312 * (bug 28104) Namespace for local pages in interwiki backlinks (iwbacklinks)
313 is missing
314 * (bug 27343) Add parseddescription to list=filearchive
315 * (bug 27469) label implicit groups in list=allusers&auprop=groups/
316 list=users&usprop=groups
317 * Addition of APIQuerySiteInfoGeneralInfo hook to add extra information to
318 the general site info results
319 * (bug 16288) API: consider making closure status of wikis more clear
320 with meta=siteinfo
321 * (bug 27589) list=allimages&aiprop=archivename is useless
322 * (bug 27586) Remove duplication of props in ApiQueryStashImageInfo
323 by using ApiQueryImageInfo
324 * (bug 28226) prop=extlinks&eloffset should be an integer
325 * (bug 28070) Fix watchlist RSS for databases that store timestamps in a
326 real timestamp field.
327 * API upload errors may now return the parameter that needs to be changed and
328 a sessionkey to fix the error.
329 * (bug 28249) allow dupes in meta=allmessages&amargs
330 * (bug 28263) cannot import xml with the api, when have not "import" user
331 right, but "importupload"
332 * (bug 28365) Added description for uiprop=preferencestoken in meta=userinfo
333 * (bug 28394) Set forgotten parameters types in ApiUnblock
334 * (bug 28395) Set forgotten parameters types in ApiParse
335 * (bug 28368) add hint for multipart/form-data to api information of
336 action=import&xml=
337 * (bug 28391) action=feedwatchlist&allrev should be a bool
338 * (bug 28364) add registration date to meta=userinfo
339 * (bug 28254) action=paraminfo: Extract type from PARAM_DFLT if
340 PARAM_TYPE is not set
341 * (bug 27712) add parent_id to list=deletedrevs
342 * (bug 28455) Add 'toponly' to recentchanges API module
343 * (bug 26873) API: Add 'toponly' filter in usercontribs module
344 * (bug 28586) YAML: strings that are the same as boolean literals
345 * (bug 28591) Update/replace/supplement spyc (YAML parsing library)
346 * YAML API output is now 1.2 compliant, using JSON as the formatter
347
348 === Languages updated in 1.18 ===
349
350 MediaWiki supports over 330 languages. Many localisations are updated
351 regularly. Below only new and removed languages are listed, as well as
352 changes to languages because of Bugzilla reports.
353
354 * Angika (anp) (new)
355 * Brahui (brh) (new)
356 * Central Dusun (new)
357 * Jamaican Creole English (jam) (new)
358 * Khowar (khw) (new)
359 * Liv (liv) (new)
360 * Tokipona (tp) (removed) 'tokipona' is still valid.
361 * (bug 17160) Gender specific display text for User namespace
362 * Link trail added for sl and sh
363 * (bug 27633) Add characters to linkTrail for Potuguese (pt and pt-br)
364 * (bug 27426) Set $namespaceGenderAliases for Arabic (ar)
365 * (bug 27385) Set Polish $namespaceGenderAliases
366 * (bug 27681) Set $namespaceGenderAliases for Portuguese (pt and pt-br)
367 * (bug 27785) Fallback language for Kabardian (kbd) is English now.
368 * (bug 27825) Raw watchlist edit message now uses formatted numbers.
369 * (bug 28040) Turkish: properly lower case 'I' to 'ı' (dotless i) and
370 uppercase 'i' to 'İ' (dotted i)
371
372 == Compatibility ==
373
374 MediaWiki 1.18 requires PHP 5.2.3. PHP 4 is no longer supported.
375
376 MySQL 3.23.x is no longer supported; some older hosts may need to upgrade.
377 At this time we still recommend 4.0, but 4.1/5.0 will work fine in most cases.
378
379
380 == Upgrading ==
381
382 1.18 has several database changes since 1.17, and will not work without schema
383 updates.
384
385 If upgrading from before 1.11, and you are using a wiki as a commons reposito-
386 ry, make sure that it is updated as well. Otherwise, errors may arise due to
387 database schema changes.
388
389 If upgrading from before 1.7, you may want to run refreshLinks.php to ensure
390 new database fields are filled with data.
391
392 If you are upgrading from MediaWiki 1.4.x or earlier, some major database
393 changes are made, and there is a slightly higher chance that things could
394 break. Don't forget to always back up your database before upgrading!
395
396 See the file UPGRADE for more detailed upgrade instructions.
397
398
399 === Caveats ===
400
401 Some output, particularly involving user-supplied inline HTML, may not
402 produce 100% valid or well-formed XHTML output. Testers are welcome to
403 set $wgMimeType = "application/xhtml+xml"; to test for remaining problem
404 cases, but this is not recommended on live sites. (This must be set for
405 MathML to display properly in Mozilla.)
406
407 For notes on 1.17.x and older releases, see HISTORY.
408
409
410 === Online documentation ===
411
412 Documentation for both end-users and site administrators is currently being
413 built up on MediaWiki.org, and is covered under the GNU Free Documentation
414 License (except for pages that explicitly state that their contents are in
415 the public domain) :
416
417 http://www.mediawiki.org/wiki/Documentation
418
419
420 === Mailing list ===
421
422 A MediaWiki-l mailing list has been set up distinct from the Wikipedia
423 wikitech-l list:
424
425 http://lists.wikimedia.org/mailman/listinfo/mediawiki-l
426
427 A low-traffic announcements-only list is also available:
428
429 http://lists.wikimedia.org/mailman/listinfo/mediawiki-announce
430
431 It's highly recommended that you sign up for one of these lists if you're
432 going to run a public MediaWiki, so you can be notified of security fixes.
433
434
435 === IRC help ===
436
437 There's usually someone online in #mediawiki on irc.freenode.net