Don't have gibberish English strings like "User" in foreign-language wikis' signature...
[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.12 ==
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 === Configuration changes in 1.12 ===
22 * Marking edits as bot edits with Special:Contributions?bot=1 now requires the
23 markbotedit permission, rather than the rollback permission previously used.
24 This permission is assigned by default to the sysop group.
25
26 === New features in 1.12 ===
27 * (bug 10735) Add a warning for non-descriptive filenames at Special:Upload
28 * Add {{filepath:}} parser function to get full path to an uploaded file,
29 complementing {{fullurl:}} for pages.
30 * (bug 11136) If using Postgres, search path is explicitly set if wgDBmwschema
31 is not set to 'mediawiki', allowing multiple mediawiki instances per user.
32 * (bug 11151) Add descriptive <title> to revision history page
33 * (bug 5412) Add feed links for the site to all pages
34 * (bug 11353) Add ability to retrieve raw section content via action=raw
35 * (bug 6909) Show relevant deletion log lines when uploading a previously
36 deleted file
37 * On SkinTemplate based skins (like MonoBook), omit confusing "edit"/"view
38 source" tab entirely if the page doesn't exist and the user isn't allowed to
39 create it
40 * Clarify instructions given when an exception is thrown
41 * AuthPlugin added strictUserAuth() method to allow per-user override
42 of the strict() authentication behavior.
43 * (bug 7872) Deleted revisions can now be viewed as diffs showing changes
44 against the previous revision, whether currently deleted or live.
45 * Added tooltips for the "Go" and "Search" buttons
46 * (bug 11649) Show input form when Special:Whatlinkshere has no parameters
47 * isValidEmailAddr hook added to User method of that name, to allow, e.g., re-
48 stricting e-mail addresses to a specific domain
49 * Removed "Clear" link in watchlist editor tools, as people were afraid to
50 click it. Existing clear links will fall back to the raw editor, which is
51 very easy to clear your watchlist with.
52 * (bug 1405) Add wgUseNPPatrol option to control patroling for new articles
53 on Special:Newpages
54 * LogLine hook added to allow formatting custom entries in Special:Log.
55 * Support for Iranian calendar
56 * (bug 1401) Allow hiding logged-in users, bots and patrolled pages on
57 Special:Newpages
58 * ChangesListInsertArticleLink hook added for adding extra article info to RC.
59 * MediaWikiPerformAction hook added for diverting control after the main
60 globals have been set up but before any actions have been taken.
61 * BeforeWatchlist hook added for filtering or replacing watchlist.
62 * SkinTemplateTabAction hook added for altering the properties of tab links.
63 * OutputPage::getRedirect public method added.
64 * (bug 11848) Allow URL parameters 'editintro' and 'preload' in Special:Mypage
65 and Special:Mytalk
66 * Add ot=raw to Special:Allmessages
67 * Support for Hebrew calendar
68 * Support for Hebrew numerals in dates and times
69 * (bug 11315) Signatures can be configured in [[MediaWiki:Signature]] and
70 [[MediaWiki:Signature-anon]]
71 * Signatures for anonymous users link to Special:Contributions page rather than
72 user page
73 * Added --override switch for disabled pages in updateSpecialPages.php
74 * Provide a unique message (ipb_blocked_as_range) if unblock of a single IP
75 fails
76 because it is part of a blocked range.
77 * (bug 3973) Use a separate message for the email content when an account is
78 created by another user
79 * dumpTextPass.php can spawn fetchText.php as a subprocess, which should restart
80 cleanly if database connections fail unpleasantly.
81 * (bug 12028) Add Special:Listbots as shortcut for Special:Listusers/bot
82
83 === Bug fixes in 1.12 ===
84
85 * Subpages are now indexed for searching properly when using PostgreSQL
86 * (bug 3846) Suppress warnings from, e.g. open_basedir when scanning for
87 ImageMagick, diff3 et al. during installation [patch by Jan Reininghaus]
88 * (bug 7027) Shift handling of deletion permissions-checking to
89 getUserPermissionsErrors.
90 * Login and signup forms are now more correct for right-to-left languages.
91 * (bug 5387) Block log items on RecentChanges don't make use of possible
92 translations
93 * (bug 11211) Pass, as a parameter to the protectedpagetext interface
94 message, the level of protection.
95 * (bug 9611) Supply the blocker and reason for the cantcreateaccounttext
96 message.
97 * (bug 8759) Fixed bug where rollback was allowed on protected pages for wikis
98 where rollback is given to non-sysops.
99 * (bug 8834) Split off permission for editing user JavaScript and CSS from
100 editinterface to a new permission key editusercssjs.
101 * (bug 11266) Set fallback language for Fulfulde (ff) to French
102 * (bug 11179) Include image version deletion comment in public log
103 * Fixed notice when accessing special page without read permission and whitelist
104 is not defined
105 * (bug 9252) Fix for tidy funkiness when using editintro mode
106 * (bug 4021) Fix for MySQL wildcard search
107 * (bug 10699) Fix for MySQL phrase search
108 * (bug 11321) Fix width of gallerybox when option "width=xxx" is used
109 * (bug 7890) Special:BrokenRedirects links deleted redirects to a non-existent
110 page
111 * Fix initial statistics when installing: add correct values
112 * (bug 11342) Fix several 'returnto' links in permissions/error pages which
113 linked to the main page instead of targetted page
114 * Strike the link to the redirect rather than using an asterisk in
115 Special:Listredirects
116 * (bug 11355) Fix false positives in Safe Mode and other config detection
117 when boolean settings are disabled with 'Off' via php_admin_value/php_value
118 * (bug 11292) Fixed unserialize errors with Postgres by creating special Blob
119 object.
120 * (bug 11363) Make all metadata fields bytea when using Postgres.
121 * (bug 11331) Add buildConcat() and use CASE not IF for DB compatibility. Make
122 oldimage cascade delete via image table for Postgres, change fa_storage_key
123 TEXT.
124 * (bug 11438) Live Preview chops returned text
125 * Show the right message on account creation when the user is blocked
126 * (bug 11450) Fix creation of objectcache table on upgrade
127 * Fix namespace selection after submit of Special:Newpages
128 * Make input form of Special:Newpages nicer for RTL wikis
129 * (bug 11462) Fix typo in LanguageGetSpecialPageAliases hook name
130 * (bug 11474) Fix unintentional fall-through in math error handling
131 * (bug 11478) Fix undefined method call in file deletion interface
132 * (bug 278) Search results no longer highlight incorrect partial word matches
133 * Compatibility with incorrectly detected old-style DJVU mime types
134 * (bug 11560) Fix broken HTML output from weird link nesting in edit comments.
135 Nested links (as in image caption text) still don't work _right_ but they're
136 less wrong
137 * (bug 9718) Remove unnecessary css from main.css causing spacing issues on
138 some browsers.
139 * (bug 11574) Add an interface message loginstart, which, similarly to loginend,
140 appears just before the login form. Patch by MinuteElectron.
141 * Do not cache category pages if using 'from' or 'until'
142 * Created new hook getUserPermissionsErrors, to go with userCan changes.
143 * Diff pages did not properly display css/js pages.
144 * (bug 11620) Add call to User::isValidEmailAddr during accout creation.
145 * (bug 11629) If $wgEmailConfirmToEdit is true, require people to supply an
146 email address when registering.
147 * (bug 11612) Days to show in recent changes cannot be larger than 7
148 * (bug 11131) Change filearchive width/height columns to int for Postgres
149 * Support plural in undeleted{revisions,revisions-files,files}
150 * (bug 11343) If the database is read-only, ensure that undelete fails.
151 * (bug 11690) Show revert link for page moves in Special:Log to allowed users
152 only
153 * Initial-lowercase prefix checks in namespaceDupes.php now actually work.
154 * Fix regression in LinkBatch.php breaking PHP 5.0
155 * (bug 11452) wfMsgExt uses sometimes wrong language object for parsing magic
156 words when called with options ''parsemag'' or ''content''.
157 * (bug 11727) Support plural in 'historysize' message
158 * (bug 11744) Incorrect return value from Title::getParentCategories()
159 * (bug 11762) Fix native language name of Akan (ak)
160 * (bug 11722) Fix inconsistent case in unprotect tabs
161 * (bug 11795) Be more paranoid about confirming accept-encoding header is
162 present
163 * (bug 11809) Use formatNum() for more numbers
164 * (bug 11818) Fix native language name of Inuktitut (iu)
165 * Remove all commas when parsing float numbers in sorted tables
166 * Limit text field of deletion, protection and user rights changes reasons to
167 255 characters (already restricted in the database)
168 * In the deletion default reasons, calculate how much text to get from the
169 article text, rather than getting 150 characters (which may be too much)
170 * Add two messages for Special:Blockme which were used but undefined
171 * (bug 11921) Support plural in message number_of_watching_users_pageview
172 * If an IP address is blocked as part of a rangeblock, attempting to unblock
173 the single IP should not unblock the entire range.
174 * (bug 6695) Fix native language name of Southern Sotho (Sesotho) (st)
175 * Make action=render follow redirects by default
176 * If restricted read access was enabled, whitelist didn't work with special
177 pages which had spaces in theirs names
178 * If restricted read access was enabled, requests for non-existing special pages
179 threw an exception
180 * Feeds for recent changes now provide correct URLs for the change, not just
181 the page
182 * Check for if IP is blocked as part of a range when unblocking (see above bug-
183 fix) was faulty. Now fixed.
184 * Fixed wpReason URL parameter to action=delete.
185 * Do not force a password for account creation by email
186 * Ensure that rate-limiting is applied to rollbacks.
187 * Make a better rate-limiting error message (i.e. a normal MW error,
188 rather than an "Internal Server Error").
189 * Do not present an image bigger than the source when 'frameless' option is used
190 (to be consistent with the 'thumb' option now)
191 * Support {{PLURAL}} for import log
192 * Make sure that the correct log entries are shown on Special:Userrights even
193 for users with special characters in their names
194 * The number of watching users in watchlists was always reported as 1
195
196 == Parser changes in 1.12 ==
197
198 The parser pass order has changed from
199
200 * Extension tag strip and render
201 * HTML normalisation and security
202 * Template expansion
203 * Main section...
204
205 to
206
207 * Template and extension tag parse to intermediate representation
208 * Template expansion and extension rendering
209 * HTML normalisation and security
210 * Main section...
211
212 The main effect of this for the user is that the rules for uncovered syntax
213 have changed.
214
215 Uncovered main-pass syntax, such as HTML tags, are now generally valid, whereas
216 previously in some cases they were escaped. For example, you could have "<ta" in
217 one template, and "ble>" in another template, and put them together to make a
218 valid <table> tag. Previously the result would have been "&lt;table&gt;".
219
220 Uncovered preprocessor syntax is generally not recognised. For example, if you
221 have "{{a" in Template:A and "b}}" in Template:B, then "{{a}}{{b}}" will be
222 converted to a literal "{{ab}}" rather than the contents of Template:Ab. This
223 was the case previously in HTML output mode, and is now uniformly the case in
224 the other modes as well. HTML-style comments uncovered by template expansion
225 will not be recognised by the preprocessor and hence will not prevent template
226 expansion within them, but they will be stripped by the following HTML security
227 pass.
228
229 The rules for template expansion during message transformation were
230 counterintuitive, mostly accidental and buggy. There are a few small changes in
231 this version: for example, templates with dynamic names, as in "{{ {{a}} }}",
232 are fully expanded as they are in HTML mode, whereas previously only the inner
233 template was expanded. I'd like to make some larger breaking changes to message
234 transformation, after a review of typical use cases.
235
236 The header identification routines for section edit and for numbering section
237 edit links have been merged. This removes a significant failure mode and fixes a
238 whole category of bugs (tracked by bug #4899). Wikitext headings uncovered by
239 template expansion or comment removal will still be rendered into a heading tag,
240 and will get an entry in the TOC, but will not have a section edit link.
241 HTML-style headings will also not have a section edit link. Valid wikitext
242 headings present in the template source text will get a template section edit
243 link. This is a major break from previous behaviour, but I believe the effects
244 are almost entirely beneficial.
245
246 The main motivation for making these changes was performance. The new two-pass
247 preprocessor can skip "dead branches" in template expansion, such as unfollowed
248 #switch cases and unused defaults for template arguments. This provides a
249 significant performance improvement in template-heavy test cases taken from
250 Wikipedia. Parser function hooks can participate in this performance improvement
251 by using the new SFH_OBJECT_ARGS flag during registration.
252
253 The pre-expand include size limit has been removed, since there's no efficient
254 way to calculate such a figure, and it would now be meaningless for performance
255 anyway. The "preprocessor node count" takes its place, with a generous default
256 limit.
257
258 The context in which XML-style extension tags are called has changed, so
259 extensions which make use of the parser state may need compatibility changes.
260
261 === API changes in 1.12 ===
262
263 Full API documentation is available at http://www.mediawiki.org/wiki/API
264
265 * (bug 11275) Enable descending sort in categorymembers
266 * (bug 11308) Allow the API to output the image metadata
267 * (bug 11296) Temporary fix for escaping of ampersands inside links in
268 pretty-printed
269 help document.
270 * (bug 11405) Expand templates implementation in the API
271 * (bug 11218) Add option to feedwatchlist to display multiple revisions for each
272 page.
273 * (bug 11404) Provide name of exception caught in error code field of internal
274 api error messages.
275 * (bug 11534) rvendid doesn't work
276 * Fixed rvlimit of the revisions query to only enforce the lower query limit if
277 revision content is requested.
278 * Include svn revision number (if install is checked-out from svn) in siteinfo
279 query.
280 * (bug 11173) Allow limited wikicode rendering via api.php
281 * (bug 11572) API should provide interface for expanding templates
282 * (bug 11569) Login should return the cookie prefix
283 * (bug 11632) Breaking change: Specify the type of a change in the recentchanges
284 list as 'edit', 'new', 'log' instead of 0, 1, 2, respectively.
285 * Compatibility fix for PHP 5.0.x.
286 * Add rctype parameter to list=recentchanges that filters by type
287 * Add apprtype and apprlevel parameters to filter list=allpages by protection
288 types and levels
289 * Add apdir parameter to enable listing all pages from Z to A
290 * (bug 11721) Use a different title for results than for the help page.
291 * (bug 11562) Added a user_registration parameter/field to the list=allusers
292 query.
293 * (bug 11588) Preserve document structure for empty dataset in backlinks query.
294 * Outputting list of all user preferences rather than having to request them by
295 name
296 * (bug 11206) api.php should honor maxlag
297
298 === Languages updated in 1.12 ===
299
300 * Afrikaans (af)
301 * Akan (ak) (new)
302 * Amharic (am) (new)
303 * Aragonese (an)
304 * Old English (ang) (new)
305 * Arabic (ar)
306 * Aramaic (arc)
307 * Mapudungun (arn) (new)
308 * Assamese (as)
309 * Asturian (ast)
310 * Aymara (ay)
311 * Samogitian (bat-smg)
312 * Boarisch (bar)
313 * Bikol Central (bcl)
314 * Belarusian Taraskievica orthography (be-tarask)
315 * Bulgarian (bg)
316 * Bislama (bi) (new)
317 * Bamanankan (bm)
318 * Bengali (bn)
319 * Bishnupriya Manipuri (bpy)
320 * Breton (br)
321 * Buginese (bug) (new)
322 * Catalan (ca)
323 * Zamboangueño (cbk-zam) (new)
324 * Chechen (ce)
325 * Cebuano (ceb) (new)
326 * Czech (cs)
327 * Cassubian (csb)
328 * Old Church Slavonic (cu)
329 * Welsh (cy)
330 * Danish (da)
331 * German (de)
332 * Lower Sorbian (dsb) (new)
333 * Divehi (dv)
334 * Ewe (ee) (new)
335 * Greek (el)
336 * English (en)
337 * Spanish (es)
338 * Euskara (eu)
339 * Extremaduran (ext)
340 * Finnish (fi)
341 * Persian (fa)
342 * Fulah (ff)
343 * Võro (fiu-vro)
344 * Faroese (fo)
345 * French (fr)
346 * Cajun French (frc)
347 * Franco-Provençal (frp)
348 * Frisian (fy)
349 * Irish (ga)
350 * Gön-gnŷ (gan) (new)
351 * Galician (gl)
352 * Gilaki (glk) (new)
353 * Ancient Greek (grc) (new)
354 * Swiss German (gsw)
355 * Hakka (hak)
356 * Hebrew (he)
357 * Croatian (hr)
358 * Upper Sorbian (hsb)
359 * Hungarian (hu)
360 * Armenian (hy)
361 * Interlingua (ia)
362 * Indonesian (id)
363 * Interlingue (ie) (new)
364 * Ingush (inh) (new)
365 * Icelandic (is)
366 * Italian (it)
367 * Japanese (ja)
368 * Georgian (ka)
369 * Kara-Kalpak (kaa)
370 * Kabyle (kab)
371 * Kazakh (kk)
372 * Kannada (kn)
373 * Korean (ko)
374 * Kölsch (ksh)
375 * Kurdish (Latin) (ku-latn)
376 * Cornish (kw) (new)
377 * Latin (la)
378 * Luxembourgish (lb) (new)
379 * Lak (lbe) (new)
380 * Limbugian (li)
381 * Lozi (loz) (new)
382 * Lingala (ln)
383 * Lithuanian (lt)
384 * Malayalam (ml)
385 * Macedonian (mk)
386 * Malay (ms)
387 * Erzya (myv) (new)
388 * Nahuatl (nah)
389 * Min-nan (nan)
390 * Low Saxon (nds)
391 * Dutch Low Saxon (nds-nl)
392 * Newari (new) (new)
393 * Dutch (nl)
394 * Norwegian (no)
395 * Occitan (oc)
396 * Deitsch (pdc) (new)
397 * Polish (pl)
398 * Piemontèis (pms)
399 * Pontic (pnt) (new)
400 * Pashto (ps)
401 * Portugese (pt)
402 * Quechua (qu)
403 * Rhaeto-Romance (rm) (new)
404 * Romanian (ro)
405 * Russian (ru)
406 * Sakha (sah)
407 * Sardinian (sc)
408 * Sicilian (scn)
409 * Scots (sco) (new)
410 * Sindhi (sd)
411 * Sassarese (sdc) (new)
412 * Seri (sei) (new)
413 * Tachelhit (shi)
414 * Slovak (sk)
415 * Serbian (Cyrillic) (sr-ec)
416 * Swati (ss) (new)
417 * Saterland Frisian (stq) (new)
418 * Sundanese (su)
419 * Swedish (sv)
420 * Tamil (ta)
421 * Teluga (te)
422 * Tetun (tet) (new)
423 * Tajik (tg)
424 * Tagalog (tl) (new)
425 * Turkish (tr)
426 * Tuvinian (tyv)
427 * Uyghur (ug)
428 * Uzbek (uz)
429 * Venitian (vec)
430 * Vietnamese (vi)
431 * West Flemish (vls)
432 * Volapük (vo)
433 * Walloon (wa)
434 * Wolof (wo)
435 * Wu (wuu) (new)
436 * Yiddish (yi)
437 * Cantonese (yue)
438 * Zhuang (za)
439 * Zealandic (zea)
440 * Old Chinese/Late Time Chinese (zh-classical)
441 * Chinese (Simplified) (zh-hans)
442 * Chinese (Traditional) (zh-hant)
443
444 == Compatibility ==
445
446 MediaWiki 1.12 requires PHP 5 (5.1 recommended). PHP 4 is no longer supported.
447
448 PHP 5.0.x fails on 64-bit systems due to serious bugs with array processing:
449 http://bugs.php.net/bug.php?id=34879
450 Upgrade affected systems to PHP 5.1 or higher.
451
452 MySQL 3.23.x is no longer supported; some older hosts may need to upgrade.
453 At this time we still recommend 4.0, but 4.1/5.0 will work fine in most cases.
454
455
456 == Upgrading ==
457
458 1.12 has several database changes since 1.11, and will not work without schema
459 updates.
460
461 If upgrading from before 1.7, you may want to run refreshLinks.php to ensure
462 new database fields are filled with data.
463
464 If you are upgrading from MediaWiki 1.4.x or earlier, some major database
465 changes are made, and there is a slightly higher chance that things could
466 break. Don't forget to always back up your database before upgrading!
467
468 See the file UPGRADE for more detailed upgrade instructions.
469
470
471 === Caveats ===
472
473 Some output, particularly involving user-supplied inline HTML, may not
474 produce 100% valid or well-formed XHTML output. Testers are welcome to
475 set $wgMimeType = "application/xhtml+xml"; to test for remaining problem
476 cases, but this is not recommended on live sites. (This must be set for
477 MathML to display properly in Mozilla.)
478
479 For notes on 1.11.x and older releases, see HISTORY.
480
481
482 === Online documentation ===
483
484 Documentation for both end-users and site administrators is currently being
485 built up on MediaWiki.org, and is covered under the GNU Free Documentation
486 License (except for pages that explicitly state that their contents are in
487 the public domain) :
488
489 http://www.mediawiki.org/wiki/Documentation
490
491
492 === Mailing list ===
493
494 A MediaWiki-l mailing list has been set up distinct from the Wikipedia
495 wikitech-l list:
496
497 http://lists.wikimedia.org/mailman/listinfo/mediawiki-l
498
499 A low-traffic announcements-only list is also available:
500
501 http://lists.wikimedia.org/mailman/listinfo/mediawiki-announce
502
503 It's highly recommended that you sign up for one of these lists if you're
504 going to run a public MediaWiki, so you can be notified of security fixes.
505
506
507 === IRC help ===
508
509 There's usually someone online in #mediawiki on irc.freenode.net