Okay for page_props not to be created in parser tests.
[mediawiki.git] / RELEASE-NOTES
blobc823ecbd6833a581a58569c2e293165179fadc2e
1 = MediaWiki release notes =
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.
6 == MediaWiki 1.12 ==
8 THIS IS NOT A RELEASE YET
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.
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.
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
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 * MediaWiki now checks if serialized files are out of date. New configuration
26   variable $wgCheckSerialized can be set to false to enable old behavior (i.e.
27   to not check and assume they are always up to date)
28 * The rollback permission can now be rate-limited using the normal mechanism.
29 * New configuration variable $wgExtraLanguageNames
30 * Behaviour of $wgAddGroups and $wgRemoveGroups changed. New behaviour:
31 * * Granting the userrights privilege allows arbitrary changing of rights.
32 * * Without the userrights privilege, a user will be able to add and/or
33      remove the groups specified in $wgAddGroups and $wgRemoveGroups for
34      any groups they are in.
35 * New permission userrights-interwiki for changing user rights on foreign wikis.
36 * $wgImplictGroups for groups that are hidden from Special:Listusers, etc.
37 * $wgAutopromote: automatically promote users who match specified criteria
38 * $wgGroupsAddToSelf, $wgGroupsRemoveFromSelf: allow users to add or remove
39   themselves from specified groups via Special:Userrights.
40 * When $wgUseTidy has been enabled, PHP's Tidy module is now used if it is
41   present, in preference to an external Tidy executable which may or may not
42   be present. To force use of external Tidy even when the PHP module is
43   available, set $wgTidyInternal to false.
46 === New features in 1.12 ===
47 * (bug 10735) Add a warning for non-descriptive filenames at Special:Upload
48 * Add {{filepath:}} parser function to get full path to an uploaded file,
49   complementing {{fullurl:}} for pages.
50 * (bug 11136) If using Postgres, search path is explicitly set if wgDBmwschema
51   is not set to 'mediawiki', allowing multiple mediawiki instances per user.
52 * (bug 11151) Add descriptive <title> to revision history page
53 * (bug 5412) Add feed links for the site to all pages
54 * (bug 11353) Add ability to retrieve raw section content via action=raw
55 * (bug 6909) Show relevant deletion log lines when uploading a previously
56   deleted file
57 * On SkinTemplate based skins (like MonoBook), omit confusing "edit"/"view
58   source" tab entirely if the page doesn't exist and the user isn't allowed to
59   create it
60 * Clarify instructions given when an exception is thrown
61 * AuthPlugin added strictUserAuth() method to allow per-user override
62   of the strict() authentication behavior.
63 * (bug 7872) Deleted revisions can now be viewed as diffs showing changes
64   against the previous revision, whether currently deleted or live.
65 * Added tooltips for the "Go" and "Search" buttons
66 * (bug 11649) Show input form when Special:Whatlinkshere has no parameters
67 * isValidEmailAddr hook added to User method of that name, to allow, e.g., re-
68   stricting e-mail addresses to a specific domain
69 * Removed "Clear" link in watchlist editor tools, as people were afraid to
70   click it. Existing clear links will fall back to the raw editor, which is
71   very easy to clear your watchlist with.
72 * (bug 1405) Add wgUseNPPatrol option to control patroling for new articles
73   on Special:Newpages
74 * LogLine hook added to allow formatting custom entries in Special:Log.
75 * Support for Iranian calendar
76 * (bug 1401) Allow hiding logged-in users, bots and patrolled pages on
77   Special:Newpages
78 * ChangesListInsertArticleLink hook added for adding extra article info to RC.
79 * MediaWikiPerformAction hook added for diverting control after the main
80   globals have been set up but before any actions have been taken.
81 * BeforeWatchlist hook added for filtering or replacing watchlist.
82 * SkinTemplateTabAction hook added for altering the properties of tab links.
83 * OutputPage::getRedirect public method added.
84 * (bug 11848, 12506) Allow URL parameters 'section', 'editintro' and 'preload'
85   in Special:Mypage and Special:Mytalk
86 * Add ot=raw to Special:Allmessages
87 * Support for Hebrew calendar
88 * Support for Hebrew numerals in dates and times
89 * (bug 11315) Signatures can be configured in [[MediaWiki:Signature]] and
90   [[MediaWiki:Signature-anon]]
91 * Signatures for anonymous users link to Special:Contributions page rather than
92   user page
93 * Added --override switch for disabled pages in updateSpecialPages.php
94 * Provide a unique message (ipb_blocked_as_range) if unblock of a single IP
95   fails
96   because it is part of a blocked range.
97 * (bug 3973) Use a separate message for the email content when an account is
98   created by another user
99 * dumpTextPass.php can spawn fetchText.php as a subprocess, which should restart
100   cleanly if database connections fail unpleasantly.
101 * (bug 12028) Add Special:Listbots as shortcut for Special:Listusers/bot
102 * (bug 9633) Add a predefined list of delete reasons to the deletion form
103 * Show a warning message when creating/editing a user (talk) page but the user
104   does not exists
105 * (bug 8396) Ignore out-of-date serialised message caches
106 * (bug 12195) Undeleting pages now requires 'undelete' permission
107 * (bug 11810) Localize displayed semicolons
108 * (bug 11657) Support for Thai solar calendar
109 * (bug 943) RSS feed for Recentchangeslinked
110 * Introduced AbortMove hook
111 * (bug 2919) Protection of nonexistent pages with regular protection interface.
112 * Special:Upload now lists permitted/prohibited file extensions.
113 * Split ambiguous filetype-badtype message into two new messages,
114   filetype-unwanted-type and filetype-banned-type.
115 * Added link to the old title in Special:Movepage
116 * On Special:Movepage, errors are now more noticeable.
117 * It is now possible to change rights on other local wikis without the MakeSysop
118   extension
119 * Add HTML ID's mw-read-only-warning and mw-anon-edit-warning to warnings when
120   editing to allow CSS styling.
121 * Parser now returns list of sections
122 * When a user is prohibited from creating a page, a title of "View source"
123   makes no sense, and there should be no "Return to [[Page]]" link.
124 * (bug 12486) Protected titles now give a warning for privileged editors.
125 * (bug 9939) Special:Search now sets focus to search input box when no existing
126   search is active
127 * For Special:Userrights, use GET instead of POST to search for users.
128 * Allow subpage syntax for Special:Userrights, i.e., Special:Userrights/Name.
129 * When submitting changes on Special:Userrights, show the full form again, not
130   just the search box.
131 * Added exception hooks
132 * (bug 12574) Allow bots to specify whether an edit should be marked as a bot
133   edit, via the parameter 'bot'. (Default: '1')
134 * (bug 12536) User should be able to get MediaWiki version from any page
135 * (bug 12622) A JavaScript constant to declare whether api.php is available
136 * Add caching to the AJAX search
137 * Add APCOND_INGROUPS
138 * Add DBA caching to installer
139 * (bug 18585) Added a bunch of parameters to the revertpage message
140 * Support redirects in image namespace
141 * (bug 10049) Prefix index search and namespaces in Special:Withoutinterwiki
142 * (bug 12668) Support for custom iPhone bookmark icon via $wgAppleTouchIcon
143 * Add option to include templates in Special:Export.
144 * (bug 12655) Added $wgUserEmailUseReplyTo config option to put sender
145   address in Reply-To instead of From for user-to-user emails.
146   This protects against SPF problems and privacy-leaking bounce messages
147   when using mailers that set the envelope sender to the From header value.
148 * (bug 11897) Add alias [[Special:CreateAccount]] & [[Special:Userlogin/signup]]
149   for Special:Userlogin?type=signup
150 * (bug 12214) Add a predefined list of delete reasons to the file deletion form
151 * Merged backends for OpenSearch suggestions and AJAX search.
152   Both now accept namespace prefixes, handle 'Media:' and 'Special:' pages,
153   and reject interwiki prefixes. PrefixSearch class centralizes this code,
154   and the backend part can be overridden by the PrefixSearchBackend hook.
155 * (bug 10365) Localization of Special:Version
156 * When installing using Postgres, the Pl/Pgsql language is now checked for 
157   and installed when at the superuser level.
158 * The default robot policy for the entire wiki is now configurable via the
159   $wgDefaultRobotPolicy setting.
160 * (bug 12239) Use different separators for autocomments
161 * (bug 12857) Patrol link on new pages should clear floats
162 * (bug 12968) Render redirect wikilinks in a redirect class for customization
163   via user/site CSS.
164 * EditPageBeforeEditButtons hook added for altering the edit buttons below the 
165   edit box.
166 * __HIDDENCAT__ on a category page causes the category to be hidden on the 
167   article page.
168 * Don't show edit permissions errors on a red link click, just redirect to the 
169   article. This is so that readers who don't know what a red link is aren't 
170   confused when they are told they are range-blocked.
171 * Put "not yet written" in the title attribute of red links, so that readers
172   unfamiliar with the site might guess what the colour means.
173 * One can turn off syndicatino feeds by setting $wgFeed to false
175 === Bug fixes in 1.12 ===
177 * Subpages are now indexed for searching properly when using PostgreSQL
178 * (bug 3846) Suppress warnings from, e.g. open_basedir when scanning for
179   ImageMagick, diff3 et al. during installation [patch by Jan Reininghaus]
180 * (bug 7027) Shift handling of deletion permissions-checking to
181   getUserPermissionsErrors.
182 * Login and signup forms are now more correct for right-to-left languages.
183 * (bug 5387) Block log items on RecentChanges don't make use of possible
184   translations
185 * (bug 11211) Pass, as a parameter to the protectedpagetext interface
186   message, the level of protection.
187 * (bug 9611) Supply the blocker and reason for the cantcreateaccounttext
188   message.
189 * (bug 8759) Fixed bug where rollback was allowed on protected pages for wikis
190   where rollback is given to non-sysops.
191 * (bug 8834) Split off permission for editing user JavaScript and CSS from
192   editinterface to a new permission key editusercssjs.
193 * (bug 11266) Set fallback language for Fulfulde (ff) to French
194 * (bug 11179) Include image version deletion comment in public log
195 * Fixed notice when accessing special page without read permission and whitelist
196   is not defined
197 * (bug 9252) Fix for tidy funkiness when using editintro mode
198 * (bug 4021) Fix for MySQL wildcard search
199 * (bug 10699) Fix for MySQL phrase search
200 * (bug 11321) Fix width of gallerybox when option "width=xxx" is used
201 * (bug 7890) Special:BrokenRedirects links deleted redirects to a non-existent
202   page
203 * Fix initial statistics when installing: add correct values
204 * (bug 11342) Fix several 'returnto' links in permissions/error pages which
205   linked to the main page instead of targetted page
206 * Strike the link to the redirect rather than using an asterisk in
207   Special:Listredirects
208 * (bug 11355) Fix false positives in Safe Mode and other config detection
209   when boolean settings are disabled with 'Off' via php_admin_value/php_value
210 * (bug 11292) Fixed unserialize errors with Postgres by creating special Blob
211   object.
212 * (bug 11363) Make all metadata fields bytea when using Postgres.
213 * (bug 11331) Add buildConcat() and use CASE not IF for DB compatibility. Make
214   oldimage cascade delete via image table for Postgres, change fa_storage_key
215   TEXT.
216 * (bug 11438) Live Preview chops returned text
217 * Show the right message on account creation when the user is blocked
218 * (bug 11450) Fix creation of objectcache table on upgrade
219 * Fix namespace selection after submit of Special:Newpages
220 * Make input form of Special:Newpages nicer for RTL wikis
221 * (bug 11462) Fix typo in LanguageGetSpecialPageAliases hook name
222 * (bug 11474) Fix unintentional fall-through in math error handling
223 * (bug 11478) Fix undefined method call in file deletion interface
224 * (bug 278) Search results no longer highlight incorrect partial word matches
225 * Compatibility with incorrectly detected old-style DJVU mime types
226 * (bug 11560) Fix broken HTML output from weird link nesting in edit comments.
227   Nested links (as in image caption text) still don't work _right_ but they're
228   less wrong
229 * (bug 9718) Remove unnecessary css from main.css causing spacing issues on
230   some browsers.
231 * (bug 11574) Add an interface message loginstart, which, similarly to loginend,
232   appears just before the login form. Patch by MinuteElectron.
233 * Do not cache category pages if using 'from' or 'until'
234 * Created new hook getUserPermissionsErrors, to go with userCan changes.
235 * Diff pages did not properly display css/js pages.
236 * (bug 11620) Add call to User::isValidEmailAddr during accout creation.
237 * (bug 11629) If $wgEmailConfirmToEdit is true, require people to supply an
238   email address when registering.
239 * (bug 11612) Days to show in recent changes cannot be larger than 7
240 * (bug 11131) Change filearchive width/height columns to int for Postgres
241 * Support plural in undeleted{revisions,revisions-files,files}
242 * (bug 11343) If the database is read-only, ensure that undelete fails.
243 * (bug 11690) Show revert link for page moves in Special:Log to allowed users
244   only
245 * Initial-lowercase prefix checks in namespaceDupes.php now actually work.
246 * Fix regression in LinkBatch.php breaking PHP 5.0
247 * (bug 11452) wfMsgExt uses sometimes wrong language object for parsing magic
248   words when called with options ''parsemag'' or ''content''.
249 * (bug 11727) Support plural in 'historysize' message
250 * (bug 11744) Incorrect return value from Title::getParentCategories()
251 * (bug 11762) Fix native language name of Akan (ak)
252 * (bug 11722) Fix inconsistent case in unprotect tabs
253 * (bug 11795) Be more paranoid about confirming accept-encoding header is
254   present
255 * (bug 11809) Use formatNum() for more numbers
256 * (bug 11818) Fix native language name of Inuktitut (iu)
257 * Remove all commas when parsing float numbers in sorted tables
258 * Limit text field of deletion, protection and user rights changes reasons to
259   255 characters (already restricted in the database)
260 * In the deletion default reasons, calculate how much text to get from the
261   article text, rather than getting 150 characters (which may be too much)
262 * Add two messages for Special:Blockme which were used but undefined
263 * (bug 11921) Support plural in message number_of_watching_users_pageview
264 * If an IP address is blocked as part of a rangeblock, attempting to unblock
265   the single IP should not unblock the entire range.
266 * (bug 6695) Fix native language name of Southern Sotho (Sesotho) (st)
267 * Make action=render follow redirects by default
268 * If restricted read access was enabled, whitelist didn't work with special
269   pages which had spaces in theirs names
270 * If restricted read access was enabled, requests for non-existing special pages
271   threw an exception
272 * Feeds for recent changes now provide correct URLs for the change, not just
273   the page
274 * Check for if IP is blocked as part of a range when unblocking (see above bug-
275   fix) was faulty. Now fixed.
276 * Fixed wpReason URL parameter to action=delete.
277 * Do not force a password for account creation by email
278 * Ensure that rate-limiting is applied to rollbacks.
279 * Make a better rate-limiting error message (i.e. a normal MW error,
280   rather than an "Internal Server Error").
281 * Do not present an image bigger than the source when 'frameless' option is used
282   (to be consistent with the 'thumb' option now)
283 * Support {{PLURAL}} for import log
284 * Make sure that the correct log entries are shown on Special:Userrights even
285   for users with special characters in their names
286 * The number of watching users in watchlists was always reported as 1
287 * namespaceDupes.php no longer dies when coming across an illegal title
288 * (bug 12143) Do not show a link to patrol new pages for non existent pages
289 * (bug 12166) Fix XHTML validity for Special:Emailuser
290 * (bug 11346) Users who cannot edit a page can now no longer unprotect it.
291 * (bug 451) Add a generic Traditional / Simplified Chinese conversion table,
292   instead of a Traditional conversion with Taiwan variant, and a Simplified
293   conversion with China variant.
294 * (bug 12178) Fix wpReason parameter to action=delete, again.
295 * Graceful behavior for updateRestrictions.php if a page already has records
296   in the page_restrictions matching its old page_restrictions field.
297   May help with odd upgrade issues or race condition.
298 * (bug 11993) Remove contentsub "revision history"
299 * (bug 11952) Ensure we quote_ident() all schema names as needed
300    inside of the DatabasePostgres.php file.
301 * (bug 12184) Exceptions now sent to stderr instead of stdout for command-line
302   scripts, making for cleaner reporting during batch jobs. PHP errors will also
303   be redirected in most cases on PHP 5.2.4 and later, switching 'display_errors'
304   to 'stderr' at runtime.
305 * (bug 12148) Text highlight wasn't applied to cleanly deleted and added
306   lines in diff output
307 * (bug 10166) Fix a PHP warning in Language::getMagic
308 * Only mark rollback edits as minor if the user can normally mark edits minor
309 * Escape page names in the move successful page (e.g. for pages with two
310   apostrophes).
311 * (bug 12145) Add localized names of kk-variants
312 * (bug 12259) Localize the numbers in deleted pages on the sysop view
313 * Set proper page title for successful file deletion
314 * (bug 11221) Do not show 'Compare selected versions' button for a history page
315   with one revision only
316 * (bug 12267) Set the default date format to Thai solar calender for the Thai
317   language
318 * (bug 10184) Extensions' stylesheets and scripts should be loaded before
319   user-customized ones (like Common.css, Common.js)
320 * (bug 12283) Special:Newpages forgets parameters
321 * (bug 12031) All namespaces doesn't work in Special:Newpages
322 * (bug 585) Only create searchindex replica table for parser tests if db is
323   MySQL
324 * Allow --record option if parserTests.php to work when using Postgres
325 * (bug 12296) Simplify cache epoch in default LocalSettings.php
326 * (bug 12346) XML fix when body double-click and click handlers are present
327 * Fix regression -- missing feed links in sidebar on Special:Recentchanges
328 * (bug 12371) Handle more namespace case variants in namespaceDupes.php
329 * (bug 12380) Bot-friendly EditPage::spamPage
330 * (bug 8066) Spaces can't be entered in special page aliases
331 * Hide undo link if user can't edit article
332 * (bug 12416) Fix password setting for createAndPromote.php
333 * (bug 3097) Inconsistently usable titles containing HTML character entities
334   are now forbidden. A run of cleanupTitles.php will fix up existing pages.
335 * (bug 12446) Permissions check fix for undelete link
336 * (bug 12451) AJAX title normalization tweaks
337 * When a user creating a page is not allowed to either create the page nor edit
338   it, all applicable reasons are now shown.
339 * (bug 11428) Allow $wgScript inside $wgArticlePath when emulating PATH_INFO
340   Fixes 'root'-style rewrite configurations
341 * (bug 12493) Removed hardcoded MAX_FILE_SIZE from Special:Import upload form
342 * (bug 12489) Special:Userrights listed in restricted section again
343 * (bug 12553) Fixed invalid XHTML in edit conflict screen
344 * (bug 12505) Fixed section=0 with action=raw
345 * (bug 12614) Do not log user rights change that didn't change anything
346 * (bug 12584) Don't reset cl_timestamp when auto-updating sort key on move
347 * (bug 12588) Fix selection in namespace selector on Special:Newpages
348 * Use only default options when generating RSS and Atom syndication links.
349   This should help prevent infinite link loops that some software may follow,
350   and will generally keep feed behavior cleaner.
351 * (bug 12608) Unifying the spelling of getDBkey() in the code.
352 * (bug 12611) Bot flag ignored in recent changes
353 * (bug 12617) Decimal and thousands separators for Romanian
354 * (bug 12567) Fix for misformatted read-only messages on edit, protect.
355   Also added proper read-only checks to several special pages.
356   Have removed read-only checks from the general user permission framework.
357 * Creating a site with a name containing '#' is no longer permitted, since the
358   name will not work (but $wgSiteName is not checked if manually set).
359 * (bug 12695) Suppress dvips verbiage from web server error log
360 * (bug 12716) Unprotecting a non-protected page leaves a log entry
361 * Log username blocks with canonical form of name instead of input form
362 * (bug 11593, 12719) Fixes for overzealous invocation of thumb.php.
363   Non-image handlers and full-size images may now decline it, fixing
364   mystery failures when using $wgThumbnailScriptPath.
365 * (bug 12327) Comma in username no longer disrupts mail headers
366 * (bug 6436) Localization of Special:Import XML parser Error message(s).
367 * Security fix for API on MSIE
368 * (bug 12768) Database query syntax error in maintenance/storage/compressOld.inc
369 * (bug 12753) Empty captions in MediaWiki:Sidebar result in PHP errors
370 * (bug 12790) Page protection is not logged when edit-protection is used
371   and move-protection is not
372 * (bug 12793) Fix for restricted namespaces/pages in Special:Export
373 * Fix for Special:Export so it doesn't ignore the page named '0'
374 * Don't display rollback link if the user doesn't have all required permissions
375 * The comment of a time-limited protection now contains the date in the default
376   format
377 * (bug 12880) wfLoadExtensionMessages does not use $fallback from MessagesXx.php
378 * (bug 12885) Correction for Russian convertPlural function
379 * (bug 12768) Make DatabasePostgres->hasContraint() schema aware.
380 * (bug 12735) Truncate usernames in comments using mb_ functions.
381 * (bug 12892) Poor tab indexing on "delete file" form
382 * (bug 12660) When creating an account by e-mail, do not send the creator's IP
383   address
384 * (bug 12931) Fix wrong global variable in SpecialVersion
385 * (bug 12919) Use 'deletedrevision' message as content when deleting an old file
386   version
387 * (bug 12952) Using Nosuchusershort instead of Nosuchuser when account creation
388   is disabled
389 * (bug 12869) Magnify icon alignment should be adjusted using linked CSS
390 * Fixing message cache updates for MediaWiki messages moves
391 * (bug 12815) Signature timestamps were always in UTC, even if the timezone code
392   in parentheses after them claimed otherwise
393 * (bug 12732) Fix installer and searching to handle built-in tsearch2 for Postgres.
394 * (bug 12784) Change "bool" types to smallint to handle Postgres 8.3 strictness.
395 * (bug 12301) Allow maintenance/findhooks.php to search hooks in multiple directories.
396 * (bug 7681, 11559) Cookie values no longer override GET and POST variables.
397 * (bug 5262) Fully-qualified $wgStylePath no longer corrupted on XML feeds
398 * (bug 3269) Inaccessible titles ending in '/.' or '/..' now forbidden.
399 * (bug 12935, 12981) Fully-qualify archive URLs in delete, revert messages
400 * (bug 12938) Fix template expansion and 404 returns for action=raw with section
401 * (bug 11567) Fix error checking for PEAR::Mail. UserMailer::send() now returns
402   true-or-WikiError, which seems to be the calling convention expected by half
403   its callers already
404 * (bug 12846) IE rtl.css issue in RTL wikis special:Preferences when selecting an
405   LTR user language
406 * (bug 13005) DISPLAYTITLE does not work on preview
407 * (bug 13004) Fix error on Postgres searches that return too many results.
408 * (bug 10677) Add link to the file description page on the shared repository
409 * (bug 13084) Increase size of source/destination filename fields in upload form
411 == Parser changes in 1.12 ==
413 For help with migration to the MediaWiki 1.12 parser, please visit:
415 http://meta.wikimedia.org/wiki/Migration_to_the_new_preprocessor
417 The parser pass order has changed from
419    * Extension tag strip and render
420    * HTML normalisation and security
421    * Template expansion
422    * Main section...
426    * Template and extension tag parse to intermediate representation
427    * Template expansion and extension rendering
428    * HTML normalisation and security
429    * Main section...
431 The main effect of this for the user is that the rules for uncovered syntax
432 have changed.
434 Uncovered main-pass syntax, such as HTML tags, are now generally valid, whereas
435 previously in some cases they were escaped. For example, you could have "<ta" in
436 one template, and "ble>" in another template, and put them together to make a
437 valid <table> tag. Previously the result would have been "&lt;table&gt;".
439 Uncovered preprocessor syntax is generally not recognised. For example, if you
440 have "{{a" in Template:A and "b}}" in Template:B, then "{{a}}{{b}}" will be
441 converted to a literal "{{ab}}" rather than the contents of Template:Ab. This
442 was the case previously in HTML output mode, and is now uniformly the case in
443 the other modes as well. HTML-style comments uncovered by template expansion
444 will not be recognised by the preprocessor and hence will not prevent template
445 expansion within them, but they will be stripped by the following HTML security
446 pass.
448 Bug 5678 has been fixed. This has a number of user-visible effects related to
449 the removal of this double-parse. Please see the wiki page for examples. 
451 Message transformation mode has been removed, and replaced with "preprocess"
452 mode. This means that some MediaWiki namespace messages may need to be updated,
453 especially ones which took advantage of the terribly counterintuitive behaviour
454 of the former message mode. 
456 The header identification routines for section edit and for numbering section
457 edit links have been merged. This removes a significant failure mode and fixes a
458 whole category of bugs (tracked by bug #4899). Wikitext headings uncovered by
459 template expansion will still be rendered into a heading tag, and will get an 
460 entry in the TOC, but will not have a section edit link. HTML-style headings 
461 will also not have a section edit link. Valid wikitext headings present in the 
462 template source text will get a template section edit link. This is a major 
463 break from previous behaviour, but I believe the effects are almost entirely 
464 beneficial.
466 The main motivation for making these changes was performance. The new two-pass
467 preprocessor can skip "dead branches" in template expansion, such as unfollowed
468 #switch cases and unused defaults for template arguments. This provides a
469 significant performance improvement in template-heavy test cases taken from
470 Wikipedia. Parser function hooks can participate in this performance improvement
471 by using the new SFH_OBJECT_ARGS flag during registration.
473 The pre-expand include size limit has been removed, since there's no efficient
474 way to calculate such a figure, and it would now be meaningless for performance
475 anyway. The "preprocessor node count" takes its place, with a generous default
476 limit.
478 The context in which XML-style extension tags are called has changed, so
479 extensions which make use of the parser state may need compatibility changes.
481 The new preprocessor syntax has been documented in Backus-Naur Form at:
483 http://www.mediawiki.org/wiki/Preprocessor_ABNF
485 The ExpandTemplates extension now has the ability to generate an XML parse 
486 tree from wikitext source. This parse tree corresponds closely to the grammar
487 documented on that page.
489 === API changes in 1.12 ===
491 Full API documentation is available at http://www.mediawiki.org/wiki/API
493 * (bug 11275) Enable descending sort in categorymembers
494 * (bug 11308) Allow the API to output the image metadata
495 * (bug 11296) Temporary fix for escaping of ampersands inside links in
496   pretty-printed
497   help document.
498 * (bug 11405) Expand templates implementation in the API
499 * (bug 11218) Add option to feedwatchlist to display multiple revisions for each
500   page.
501 * (bug 11404) Provide name of exception caught in error code field of internal
502   api error messages.
503 * (bug 11534) rvendid doesn't work
504 * Fixed rvlimit of the revisions query to only enforce the lower query limit if
505   revision content is requested.
506 * Include svn revision number (if install is checked-out from svn) in siteinfo
507   query.
508 * (bug 11173) Allow limited wikicode rendering via api.php
509 * (bug 11572) API should provide interface for expanding templates
510 * (bug 11569) Login should return the cookie prefix
511 * (bug 11632) Breaking change: Specify the type of a change in the recentchanges
512   list as 'edit', 'new', 'log' instead of 0, 1, 2, respectively.
513 * Compatibility fix for PHP 5.0.x.
514 * Add rctype parameter to list=recentchanges that filters by type
515 * Add apprtype and apprlevel parameters to filter list=allpages by protection
516   types and levels
517 * Add apdir parameter to enable listing all pages from Z to A
518 * (bug 11721) Use a different title for results than for the help page.
519 * (bug 11562) Added a user_registration parameter/field to the list=allusers
520   query.
521 * (bug 11588) Preserve document structure for empty dataset in backlinks query.
522 * Outputting list of all user preferences rather than having to request them by
523   name
524 * (bug 11206) api.php should honor maxlag
525 * Make prop=info check for restrictions in the old format too.
526 * Add apihighlimits permission, default for sysops and bots
527 * Add limit=max to use maximal limit
528 * Add action=parse to render parser output. Use it instead of action=render
529   which has been removed
530 * Add rvtoken=rollback to prop=revisions
531 * Add meta=allmessages to get messages from site's messages cache.
532 * Use bold and italics highlighting only in API help
533 * Added action={block,delete,move,protect,rollback,unblock,undelete} and
534   list={blocks,deletedrevs}
535 * Fixed sessionid attribute in action=login
536 * Standardized limits. Revisions and Deletedrevisions formerly using
537   200 / 10000, now 500 / 5000, in line with other modules.
538 * Added list=allcategories module
539 * (bug 12321) API list=blocks reveals private data
540 * Fix output of wfSajaxSearch
541 * (bug 12413) meta=userinfo missing <query> tag
542 * Add list of sections to action=parse output
543 * Added action=logout
544 * Added cascade flag to prop=info&inprop=protections
545 * Added wlshow parameter to list=watchlist, similar to rcshow
546   (list=recentchanges)
547 * Added support for image thumbnailing to prop=imageinfo
548 * action={login,block,delete,move,protect,rollback,unblock,undelete} now must be
549   POSTed
550 * prop=imageinfo interface changed: iihistory replaced by iilimit, iistart and
551   iiend parameters
552 * Added amlang parameter to meta=allmessages
553 * Added apfilterlanglinks parameter to list=allpages, replacing
554   query.php?what=nolanglinks
555 * (bug 12718) Added action=paraminfo module that provides information about API
556   modules and their parameters
557 * Added iiurlwidth and iiurlheight parameters to prop=imageinfo
558 * Added format=txt and format=dbg, imported from query.php
559 * Added uiprop=editcount to meta=userinfo
560 * Added list=users which fetches user information
561 * Added list=random which fetches a list of random pages
562 * Added page parameter to action=parse to facilitate parsing of existing pages
563 * Added uiprop=ratelimits to meta=userinfo
564 * Added siprop=namespacealiases to meta=siteinfo
565 * Made multiple values for ucuser possible in list=usercontribs
566 * (bug 12944) Added cmstart and cmend parameters to list=categorymembers
567 * Allow queries to have a where range that does not match the range field
569 === Languages updated in 1.12 ===
571 * Afrikaans (af)
572 * Akan (ak) (new)
573 * Amharic (am) (new)
574 * Aragonese (an)
575 * Old English (ang) (new)
576 * Arabic (ar)
577 * Aramaic (arc)
578 * Mapudungun (arn) (new)
579 * Assamese (as)
580 * Asturian (ast)
581 * Avaric (av)
582 * Kotava (avk) (new)
583 * Aymara (ay)
584 * Samogitian (bat-smg)
585 * Boarisch (bar)
586 * Bikol Central (bcl)
587 * Belarusian (be)
588 * Belarusian Taraskievica orthography (be-tarask)
589 * Bulgarian (bg)
590 * Bislama (bi) (new)
591 * Bamanankan (bm)
592 * Bengali (bn)
593 * Bishnupriya Manipuri (bpy)
594 * Breton (br)
595 * Buginese (bug) (new)
596 * Catalan (ca)
597 * Zamboangueño (cbk-zam) (new)
598 * Min Dong (cdo) (new)
599 * Chechen (ce)
600 * Cebuano (ceb) (new)
601 * Cherokee (chr) (new)
602 * Corsican (co) (new)
603 * Crimean Tatar (Cyrillic) (crh-cyrl) (new)
604 * Crimean Tatar (Latin) (crh-latn) (new)
605 * Czech (cs)
606 * Cassubian (csb)
607 * Old Church Slavonic (cu)
608 * Welsh (cy)
609 * Danish (da)
610 * German (de)
611 * German (de-formal) (new)
612 * Zazaki (diq) (new)
613 * Lower Sorbian (dsb) (new)
614 * Middle Dutch (dum) (new)
615 * Divehi (dv)
616 * Ewe (ee) (new)
617 * Greek (el)
618 * Emiliano-Romagnolo (eml)
619 * English (en)
620 * Spanish (es)
621 * Estonian (et)
622 * Euskara (eu)
623 * Extremaduran (ext)
624 * Finnish (fi)
625 * Persian (fa)
626 * Fulah (ff)
627 * Võro (fiu-vro)
628 * Fijian (fj) (new)
629 * Faroese (fo)
630 * French (fr)
631 * Cajun French (frc)
632 * Franco-Provençal (frp)
633 * Frisian (fy)
634 * Irish (ga)
635 * Gagauz (gag) (new)
636 * Gön-gnŷ (gan) (new)
637 * Scottish Gaelic (gd) (new)
638 * Galician (gl)
639 * Gilaki (glk) (new)
640 * Guarani (gn)
641 * Gothic (got) (new)
642 * Ancient Greek (grc) (new)
643 * Swiss German (gsw)
644 * Hakka (hak)
645 * Hawaiian (haw) (new)
646 * Hebrew (he)
647 * Croatian (hr)
648 * Upper Sorbian (hsb)
649 * Haitian Creole French (ht)
650 * Hungarian (hu)
651 * Armenian (hy)
652 * Interlingua (ia)
653 * Indonesian (id)
654 * Interlingue (ie) (new)
655 * Igbo (ig) (new)
656 * Eastern Canadian (Unified Canadian Aboriginal Syllabics) (ike-cans) (new)
657 * Eastern Canadian (Latin) (ike-latn) (new)
658 * Ingush (inh) (new)
659 * Ido (io) (new)
660 * Icelandic (is)
661 * Italian (it)
662 * Japanese (ja)
663 * Jutish (jut) (new)
664 * Georgian (ka)
665 * Kara-Kalpak (kaa)
666 * Kabyle (kab)
667 * Kazakh (kk)
668 * Kazakh Arabic (kk-arab) (new)
669 * Kazakh (China) (kk-cn)
670 * Kazakh Cyrillic (kk-cyrl) (new)
671 * Kazakh (Kazakhstan) (kk-kz)
672 * Kazakh Latin (kk-latn) (new)
673 * Kazakh (Turkey) (kk-tr)
674 * Kalaallisut (kl) (new)
675 * Kannada (kn)
676 * Korean (ko)
677 * Kölsch (ksh)
678 * Kurdish (Arabic) (ku-arab)
679 * Kurdish (Latin) (ku-latn)
680 * Cornish (kw) (new)
681 * Kirghiz (ky) (new)
682 * Latin (la)
683 * Ladino (lad) (new)
684 * Luxembourgish (lb) (new)
685 * Lingua Franca Nova (lfn) (new)
686 * Lak (lbe) (new)
687 * Ganda (lg)
688 * Limbugian (li)
689 * Líguru (lij) (new)
690 * Lozi (loz) (new)
691 * Lingala (ln)
692 * Lao (lo)
693 * Lithuanian (lt)
694 * Maithili (mai) (new)
695 * Moksha (mdf) (new)
696 * Malagasy (mg) (new)
697 * Malayalam (ml)
698 * Macedonian (mk)
699 * Marathi (mr)
700 * Malay (ms)
701 * Erzya (myv) (new)
702 * Nauru (na) (new)
703 * Nahuatl (nah)
704 * Min-nan (nan)
705 * Napolitan (nap)
706 * Low Saxon (nds)
707 * Dutch Low Saxon (nds-nl)
708 * Nepali (ne)
709 * Newari (new) (new)
710 * Dutch (nl)
711 * Norwegian (nynorsk) (nn)
712 * Norwegian (bokmål)‬ (no)
713 * Novial (nov) (new)
714 * Northern Sotho (nso) (new)
715 * Occitan (oc)
716 * Pangasinan (pag) (new)
717 * Pampanga (pam) (new)
718 * Papiamento (pap) (new)
719 * Deitsch (pdc) (new)
720 * Pfälzisch (pfl) (new)
721 * Polish (pl)
722 * Piemontèis (pms)
723 * Pontic (pnt) (new)
724 * Pashto (ps)
725 * Portugese (pt)
726 * Quechua (qu)
727 * Rhaeto-Romance (rm) (new)
728 * Romanian (ro)
729 * Russian (ru)
730 * Megleno-Romanian (ruq) (new)
731 * Megleno-Romanian (Cyrillic script) (ruq-cyrl) (new)
732 * Megleno-Romanian (Greek script) (ruq-grek) (new)
733 * Megleno-Romanian (Latin script) (ruq-latn) (new)
734 * Sakha (sah)
735 * Sardinian (sc)
736 * Sicilian (scn)
737 * Scots (sco) (new)
738 * Sindhi (sd)
739 * Sassarese (sdc) (new)
740 * Seri (sei) (new)
741 * Sango (sg) (new)
742 * Tachelhit (shi)
743 * Sinhalese (si) (new)
744 * Slovak (sk)
745 * Samoan (sm) (new)
746 * Southern Sami (sma) (new)
747 * Serbian (Cyrillic) (sr-ec)
748 * Swati (ss) (new)
749 * Southern Sotho (st) (new)
750 * Saterland Frisian (stq) (new)
751 * Sundanese (su)
752 * Swedish (sv)
753 * Swahili (sw) (new)
754 * Tamil (ta)
755 * Teluga (te)
756 * Tetun (tet) (new)
757 * Tajik (tg)
758 * Thai (th)
759 * Tagalog (tl) (new)
760 * Tonga (to) (new)
761 * Turkish (tr)
762 * Tuvinian (tyv)
763 * Uyghur (ug)
764 * Uzbek (uz)
765 * Venitian (vec)
766 * Vietnamese (vi)
767 * West Flemish (vls)
768 * Volapük (vo)
769 * Walloon (wa)
770 * Wolof (wo)
771 * Wu (wuu) (new)
772 * Xhosa (xh) (new)
773 * Mingrelian (xmf) (new)
774 * Yiddish (yi)
775 * Yoruba (yo) (new)
776 * Cantonese (yue)
777 * Zhuang (za)
778 * Zealandic (zea)
779 * Chinese (zh)
780 * Old Chinese/Late Time Chinese (zh-classical)
781 * Chinese (Simplified) (zh-hans)
782 * Chinese (Traditional) (zh-hant)
783 * Chinese (Taiwan) (zh-tw)
784 * Zulu (zu) (new)
786 == Compatibility ==
788 MediaWiki 1.12 requires PHP 5 (5.1 recommended). PHP 4 is no longer supported.
790 PHP 5.0.x fails on 64-bit systems due to serious bugs with array processing:
791 http://bugs.php.net/bug.php?id=34879
792 Upgrade affected systems to PHP 5.1 or higher.
794 MySQL 3.23.x is no longer supported; some older hosts may need to upgrade.
795 At this time we still recommend 4.0, but 4.1/5.0 will work fine in most cases.
798 == Upgrading ==
800 1.12 has several database changes since 1.11, and will not work without schema
801 updates.
803 If upgrading from before 1.7, you may want to run refreshLinks.php to ensure
804 new database fields are filled with data.
806 If upgrading from before 1.11, and you are using a wiki as a commons repository,
807 make sure that it is updated as well. Otherwise, errors may arise due to
808 database schema changes.
810 If you are upgrading from MediaWiki 1.4.x or earlier, some major database
811 changes are made, and there is a slightly higher chance that things could
812 break. Don't forget to always back up your database before upgrading!
814 See the file UPGRADE for more detailed upgrade instructions.
817 === Caveats ===
819 Some output, particularly involving user-supplied inline HTML, may not
820 produce 100% valid or well-formed XHTML output. Testers are welcome to
821 set $wgMimeType = "application/xhtml+xml"; to test for remaining problem
822 cases, but this is not recommended on live sites. (This must be set for
823 MathML to display properly in Mozilla.)
825 For notes on 1.11.x and older releases, see HISTORY.
828 === Online documentation ===
830 Documentation for both end-users and site administrators is currently being
831 built up on MediaWiki.org, and is covered under the GNU Free Documentation
832 License (except for pages that explicitly state that their contents are in
833 the public domain) :
835   http://www.mediawiki.org/wiki/Documentation
838 === Mailing list ===
840 A MediaWiki-l mailing list has been set up distinct from the Wikipedia
841 wikitech-l list:
843   http://lists.wikimedia.org/mailman/listinfo/mediawiki-l
845 A low-traffic announcements-only list is also available:
847   http://lists.wikimedia.org/mailman/listinfo/mediawiki-announce
849 It's highly recommended that you sign up for one of these lists if you're
850 going to run a public MediaWiki, so you can be notified of security fixes.
853 === IRC help ===
855 There's usually someone online in #mediawiki on irc.freenode.net