it from source control: http://www.mediawiki.org/wiki/Download_from_SVN
=== Configuration changes in 1.12 ===
+* Marking edits as bot edits with Special:Contributions?bot=1 now requires the
+ markbotedit permission, rather than the rollback permission previously used.
+ This permission is assigned by default to the sysop group.
+* MediaWiki now checks if serialized files are out of date. New configuration
+ variable $wgCheckSerialized can be set to false to enable old behavior (i.e.
+ to not check and assume they are always up to date)
+* The rollback permission is now assigned by default to all logged-in users. It
+ can also now be rate-limited using the normal mechanism.
+* New configuration variable $wgExtraLanguageNames
=== New features in 1.12 ===
* (bug 10735) Add a warning for non-descriptive filenames at Special:Upload
* Add {{filepath:}} parser function to get full path to an uploaded file,
complementing {{fullurl:}} for pages.
-* (bug 11136) If using Postgres, search path is explicitly set if wgDBmwschema is
- not set to 'mediawiki', allowing multiple mediawiki instances per user.
+* (bug 11136) If using Postgres, search path is explicitly set if wgDBmwschema
+ is not set to 'mediawiki', allowing multiple mediawiki instances per user.
* (bug 11151) Add descriptive <title> to revision history page
* (bug 5412) Add feed links for the site to all pages
* (bug 11353) Add ability to retrieve raw section content via action=raw
-* Show relevant deletion log lines when uploading a previously deleted file
-* On SkinTemplate based skins (like MonoBook), omit confusing "edit"/"view source"
- tab entirely if the page doesn't exist and the user isn't allowed to create it
+* (bug 6909) Show relevant deletion log lines when uploading a previously
+ deleted file
+* On SkinTemplate based skins (like MonoBook), omit confusing "edit"/"view
+ source" tab entirely if the page doesn't exist and the user isn't allowed to
+ create it
* Clarify instructions given when an exception is thrown
* AuthPlugin added strictUserAuth() method to allow per-user override
of the strict() authentication behavior.
on Special:Newpages
* LogLine hook added to allow formatting custom entries in Special:Log.
* Support for Iranian calendar
-* (bug 1401) Allow hiding logged-in users, bots and patrolled pages on Special:Newpages
+* (bug 1401) Allow hiding logged-in users, bots and patrolled pages on
+ Special:Newpages
* ChangesListInsertArticleLink hook added for adding extra article info to RC.
* MediaWikiPerformAction hook added for diverting control after the main
globals have been set up but before any actions have been taken.
* Support for Hebrew numerals in dates and times
* (bug 11315) Signatures can be configured in [[MediaWiki:Signature]] and
[[MediaWiki:Signature-anon]]
-* Signatures for anonymous users link to Special:Contributions page rather than user page
+* Signatures for anonymous users link to Special:Contributions page rather than
+ user page
* Added --override switch for disabled pages in updateSpecialPages.php
-* Provide a unique message (ipb_blocked_as_range) if unblock of a single IP fails
+* Provide a unique message (ipb_blocked_as_range) if unblock of a single IP
+ fails
because it is part of a blocked range.
* (bug 3973) Use a separate message for the email content when an account is
created by another user
+* dumpTextPass.php can spawn fetchText.php as a subprocess, which should restart
+ cleanly if database connections fail unpleasantly.
+* (bug 12028) Add Special:Listbots as shortcut for Special:Listusers/bot
+* (bug 9633) Add a predefined list of delete reasons to the deletion form
+* Show a warning message when creating/editing a user (talk) page but the user
+ does not exists
+* (bug 8396) Ignore out-of-date serialised message caches
+* (bug 12195) Undeleting pages now requires 'undelete' permission
+* (bug 11810) Localize displayed semicolons
+* (bug 11657) Support for Thai solar calendar
+* (bug 943) RSS feed for Recentchangeslinked
+* Introduced AbortMove hook
=== Bug fixes in 1.12 ===
* (bug 4021) Fix for MySQL wildcard search
* (bug 10699) Fix for MySQL phrase search
* (bug 11321) Fix width of gallerybox when option "width=xxx" is used
-* (bug 7890) Special:BrokenRedirects links deleted redirects to a non-existent page
+* (bug 7890) Special:BrokenRedirects links deleted redirects to a non-existent
+ page
* Fix initial statistics when installing: add correct values
* (bug 11342) Fix several 'returnto' links in permissions/error pages which
linked to the main page instead of targetted page
-* Strike the link to the redirect rather than using an asterisk in Special:Listredirects
+* Strike the link to the redirect rather than using an asterisk in
+ Special:Listredirects
* (bug 11355) Fix false positives in Safe Mode and other config detection
when boolean settings are disabled with 'Off' via php_admin_value/php_value
-* (bug 11292) Fixed unserialize errors with Postgres by creating special Blob object.
+* (bug 11292) Fixed unserialize errors with Postgres by creating special Blob
+ object.
* (bug 11363) Make all metadata fields bytea when using Postgres.
-* (bug 11331) Add buildConcat() and use CASE not IF for DB compatibility. Make oldimage
- cascade delete via image table for Postgres, change fa_storage_key TEXT.
+* (bug 11331) Add buildConcat() and use CASE not IF for DB compatibility. Make
+ oldimage cascade delete via image table for Postgres, change fa_storage_key
+ TEXT.
* (bug 11438) Live Preview chops returned text
* Show the right message on account creation when the user is blocked
* (bug 11450) Fix creation of objectcache table on upgrade
* (bug 11744) Incorrect return value from Title::getParentCategories()
* (bug 11762) Fix native language name of Akan (ak)
* (bug 11722) Fix inconsistent case in unprotect tabs
-* (bug 11795) Be more paranoid about confirming accept-encoding header is present
+* (bug 11795) Be more paranoid about confirming accept-encoding header is
+ present
* (bug 11809) Use formatNum() for more numbers
* (bug 11818) Fix native language name of Inuktitut (iu)
* Remove all commas when parsing float numbers in sorted tables
* Check for if IP is blocked as part of a range when unblocking (see above bug-
fix) was faulty. Now fixed.
* Fixed wpReason URL parameter to action=delete.
+* Do not force a password for account creation by email
+* Ensure that rate-limiting is applied to rollbacks.
+* Make a better rate-limiting error message (i.e. a normal MW error,
+ rather than an "Internal Server Error").
+* Do not present an image bigger than the source when 'frameless' option is used
+ (to be consistent with the 'thumb' option now)
+* Support {{PLURAL}} for import log
+* Make sure that the correct log entries are shown on Special:Userrights even
+ for users with special characters in their names
+* The number of watching users in watchlists was always reported as 1
+* namespaceDupes.php no longer dies when coming across an illegal title
+* (bug 12143) Do not show a link to patrol new pages for non existent pages
+* (bug 12166) Fix XHTML validity for Special:Emailuser
+* (bug 11346) Users who cannot edit a page can now no longer unprotect it.
+* (bug 451) Add a generic Traditional / Simplified Chinese conversion table,
+ instead of a Traditional conversion with Taiwan variant, and a Simplified
+ conversion with China variant.
+* (bug 12178) Fix wpReason parameter to action=delete, again.
+* Graceful behavior for updateRestrictions.php if a page already has records
+ in the page_restrictions matching its old page_restrictions field.
+ May help with odd upgrade issues or race condition.
+* (bug 11993) Remove contentsub "revision history"
+* (bug 11952) Ensure we quote_ident() all schema names as needed
+ inside of the DatabasePostgres.php file.
+* (bug 12184) Exceptions now sent to stderr instead of stdout for command-line
+ scripts, making for cleaner reporting during batch jobs. PHP errors will also
+ be redirected in most cases on PHP 5.2.4 and later, switching 'display_errors'
+ to 'stderr' at runtime.
+* (bug 12148) Text highlight wasn't applied to cleanly deleted and added
+ lines in diff output
+* (bug 10166) Fix a PHP warning in Language::getMagic
+* Only mark rollback edits as minor if the user can normally mark edits as minor.
+* Escape page names in the move successful page (e.g. for pages with two
+ apostrophes).
+
+== Parser changes in 1.12 ==
+
+The parser pass order has changed from
+
+ * Extension tag strip and render
+ * HTML normalisation and security
+ * Template expansion
+ * Main section...
+
+to
+
+ * Template and extension tag parse to intermediate representation
+ * Template expansion and extension rendering
+ * HTML normalisation and security
+ * Main section...
+
+The main effect of this for the user is that the rules for uncovered syntax
+have changed.
+
+Uncovered main-pass syntax, such as HTML tags, are now generally valid, whereas
+previously in some cases they were escaped. For example, you could have "<ta" in
+one template, and "ble>" in another template, and put them together to make a
+valid <table> tag. Previously the result would have been "<table>".
+
+Uncovered preprocessor syntax is generally not recognised. For example, if you
+have "{{a" in Template:A and "b}}" in Template:B, then "{{a}}{{b}}" will be
+converted to a literal "{{ab}}" rather than the contents of Template:Ab. This
+was the case previously in HTML output mode, and is now uniformly the case in
+the other modes as well. HTML-style comments uncovered by template expansion
+will not be recognised by the preprocessor and hence will not prevent template
+expansion within them, but they will be stripped by the following HTML security
+pass.
+
+The rules for template expansion during message transformation were
+counterintuitive, mostly accidental and buggy. There are a few small changes in
+this version: for example, templates with dynamic names, as in "{{ {{a}} }}",
+are fully expanded as they are in HTML mode, whereas previously only the inner
+template was expanded. I'd like to make some larger breaking changes to message
+transformation, after a review of typical use cases.
+
+The header identification routines for section edit and for numbering section
+edit links have been merged. This removes a significant failure mode and fixes a
+whole category of bugs (tracked by bug #4899). Wikitext headings uncovered by
+template expansion or comment removal will still be rendered into a heading tag,
+and will get an entry in the TOC, but will not have a section edit link.
+HTML-style headings will also not have a section edit link. Valid wikitext
+headings present in the template source text will get a template section edit
+link. This is a major break from previous behaviour, but I believe the effects
+are almost entirely beneficial.
+
+The main motivation for making these changes was performance. The new two-pass
+preprocessor can skip "dead branches" in template expansion, such as unfollowed
+#switch cases and unused defaults for template arguments. This provides a
+significant performance improvement in template-heavy test cases taken from
+Wikipedia. Parser function hooks can participate in this performance improvement
+by using the new SFH_OBJECT_ARGS flag during registration.
+
+The pre-expand include size limit has been removed, since there's no efficient
+way to calculate such a figure, and it would now be meaningless for performance
+anyway. The "preprocessor node count" takes its place, with a generous default
+limit.
+
+The context in which XML-style extension tags are called has changed, so
+extensions which make use of the parser state may need compatibility changes.
=== API changes in 1.12 ===
* (bug 11275) Enable descending sort in categorymembers
* (bug 11308) Allow the API to output the image metadata
-* (bug 11296) Temporary fix for escaping of ampersands inside links in pretty-printed
+* (bug 11296) Temporary fix for escaping of ampersands inside links in
+ pretty-printed
help document.
* (bug 11405) Expand templates implementation in the API
-* (bug 11218) Add option to feedwatchlist to display multiple revisions for each page.
-* (bug 11404) Provide name of exception caught in error code field of internal api
- error messages.
+* (bug 11218) Add option to feedwatchlist to display multiple revisions for each
+ page.
+* (bug 11404) Provide name of exception caught in error code field of internal
+ api error messages.
* (bug 11534) rvendid doesn't work
* Fixed rvlimit of the revisions query to only enforce the lower query limit if
revision content is requested.
-* Include svn revision number (if install is checked-out from svn) in siteinfo query.
+* Include svn revision number (if install is checked-out from svn) in siteinfo
+ query.
* (bug 11173) Allow limited wikicode rendering via api.php
* (bug 11572) API should provide interface for expanding templates
* (bug 11569) Login should return the cookie prefix
-* (bug 11632) Breaking change: Specify the type of a change in the recentchanges list
- as 'edit', 'new', 'log' instead of 0, 1, 2, respectively.
+* (bug 11632) Breaking change: Specify the type of a change in the recentchanges
+ list as 'edit', 'new', 'log' instead of 0, 1, 2, respectively.
* Compatibility fix for PHP 5.0.x.
* Add rctype parameter to list=recentchanges that filters by type
-* Add apprtype and apprlevel parameters to filter list=allpages by protection types and levels
+* Add apprtype and apprlevel parameters to filter list=allpages by protection
+ types and levels
* Add apdir parameter to enable listing all pages from Z to A
* (bug 11721) Use a different title for results than for the help page.
-* (bug 11562) Added a user_registration parameter/field to the list=allusers query.
+* (bug 11562) Added a user_registration parameter/field to the list=allusers
+ query.
* (bug 11588) Preserve document structure for empty dataset in backlinks query.
-* Outputting list of all user preferences rather than having to request them by name
+* Outputting list of all user preferences rather than having to request them by
+ name
* (bug 11206) api.php should honor maxlag
+* Make prop=info check for restrictions in the old format too.
+* Add apihighlimits permission, default for sysops and bots
+* Add limit=max to use maximal limit
+* Add action=parse to render parser output. Use it instead of action=render which is deprecated.
+* Add rvtoken=rollback to prop=revisions
+* Add meta=allmessages to get messages from site's messages cache.
+* Use bold and italics highlighting only in API help
+* Added action={block,changerights,delete,move,protect,rollback,unblock,undelete} and list={blocks,deletedrevs}
+* Fixed sessionid attribute in action=login
+* Standardized limits. Revisions and Deletedrevisions formerly using 200 / 10000,
+ now 500 / 5000, in line with other modules.
+
=== Languages updated in 1.12 ===
* Buginese (bug) (new)
* Catalan (ca)
* ZamboangueƱo (cbk-zam) (new)
+* Min Dong (cdo) (new)
* Chechen (ce)
* Cebuano (ceb) (new)
+* Corsican (co) (new)
+* Crimean Tatar (Cyrillic) (crh-cyrl) (new)
+* Crimean Tatar (Latin) (crh-latn) (new)
* Czech (cs)
* Cassubian (csb)
* Old Church Slavonic (cu)
* Danish (da)
* German (de)
* Lower Sorbian (dsb) (new)
+* Middle Dutch (dum) (new)
* Divehi (dv)
* Ewe (ee) (new)
* Greek (el)
* English (en)
* Spanish (es)
+* Estonian (et)
+* Euskara (eu)
* Extremaduran (ext)
* Finnish (fi)
* Persian (fa)
* Armenian (hy)
* Interlingua (ia)
* Indonesian (id)
+* Interlingue (ie) (new)
* Ingush (inh) (new)
+* Ido (io) (new)
* Icelandic (is)
* Italian (it)
* Japanese (ja)
* Erzya (myv) (new)
* Nahuatl (nah)
* Min-nan (nan)
+* Napolitan (nap)
* Low Saxon (nds)
* Dutch Low Saxon (nds-nl)
* Newari (new) (new)
* Dutch (nl)
* Norwegian (no)
+* Novial (nov) (new)
* Occitan (oc)
* Deitsch (pdc) (new)
* Polish (pl)
* Sakha (sah)
* Sardinian (sc)
* Sicilian (scn)
+* Scots (sco) (new)
* Sindhi (sd)
* Sassarese (sdc) (new)
* Seri (sei) (new)
* Turkish (tr)
* Tuvinian (tyv)
* Uyghur (ug)
+* Uzbek (uz)
* Venitian (vec)
* Vietnamese (vi)
* West Flemish (vls)
* Cantonese (yue)
* Zhuang (za)
* Zealandic (zea)
+* Chinese (zh)
* Old Chinese/Late Time Chinese (zh-classical)
* Chinese (Simplified) (zh-hans)
* Chinese (Traditional) (zh-hant)
+* Chinese (Taiwan) (zh-tw)
== Compatibility ==