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.
=== New features in 1.12 ===
-* Add a warning for non-descriptive filenames at Special:Upload
+* (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 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
+* Clarify instructions given when an exception is thrown
+* AuthPlugin added strictUserAuth() method to allow per-user override
+ of the strict() authentication behavior.
+* (bug 7872) Deleted revisions can now be viewed as diffs showing changes
+ against the previous revision, whether currently deleted or live.
+* Added tooltips for the "Go" and "Search" buttons
+* (bug 11649) Show input form when Special:Whatlinkshere has no parameters
+* isValidEmailAddr hook added to User method of that name, to allow, e.g., re-
+ stricting e-mail addresses to a specific domain
+* Removed "Clear" link in watchlist editor tools, as people were afraid to
+ click it. Existing clear links will fall back to the raw editor, which is
+ very easy to clear your watchlist with.
+* (bug 1405) Add wgUseNPPatrol option to control patroling for new articles
+ 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
+* 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.
+* BeforeWatchlist hook added for filtering or replacing watchlist.
+* SkinTemplateTabAction hook added for altering the properties of tab links.
+* OutputPage::getRedirect public method added.
+* (bug 11848) Allow URL parameters 'editintro' and 'preload' in Special:Mypage
+ and Special:Mytalk
+* Add ot=raw to Special:Allmessages
+* Support for Hebrew calendar
+* 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
+* Added --override switch for disabled pages in updateSpecialPages.php
+* 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 fixes in 1.12 ===
* 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 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 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
+* Fix namespace selection after submit of Special:Newpages
+* Make input form of Special:Newpages nicer for RTL wikis
+* (bug 11462) Fix typo in LanguageGetSpecialPageAliases hook name
+* (bug 11474) Fix unintentional fall-through in math error handling
+* (bug 11478) Fix undefined method call in file deletion interface
+* (bug 278) Search results no longer highlight incorrect partial word matches
+* Compatibility with incorrectly detected old-style DJVU mime types
+* (bug 11560) Fix broken HTML output from weird link nesting in edit comments.
+ Nested links (as in image caption text) still don't work _right_ but they're
+ less wrong
+* (bug 9718) Remove unnecessary css from main.css causing spacing issues on
+ some browsers.
+* (bug 11574) Add an interface message loginstart, which, similarly to loginend,
+ appears just before the login form. Patch by MinuteElectron.
+* Do not cache category pages if using 'from' or 'until'
+* Created new hook getUserPermissionsErrors, to go with userCan changes.
+* Diff pages did not properly display css/js pages.
+* (bug 11620) Add call to User::isValidEmailAddr during accout creation.
+* (bug 11629) If $wgEmailConfirmToEdit is true, require people to supply an
+ email address when registering.
+* (bug 11612) Days to show in recent changes cannot be larger than 7
+* (bug 11131) Change filearchive width/height columns to int for Postgres
+* Support plural in undeleted{revisions,revisions-files,files}
+* (bug 11343) If the database is read-only, ensure that undelete fails.
+* (bug 11690) Show revert link for page moves in Special:Log to allowed users
+ only
+* Initial-lowercase prefix checks in namespaceDupes.php now actually work.
+* Fix regression in LinkBatch.php breaking PHP 5.0
+* (bug 11452) wfMsgExt uses sometimes wrong language object for parsing magic
+ words when called with options ''parsemag'' or ''content''.
+* (bug 11727) Support plural in 'historysize' message
+* (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 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
+* Limit text field of deletion, protection and user rights changes reasons to
+ 255 characters (already restricted in the database)
+* In the deletion default reasons, calculate how much text to get from the
+ article text, rather than getting 150 characters (which may be too much)
+* Add two messages for Special:Blockme which were used but undefined
+* (bug 11921) Support plural in message number_of_watching_users_pageview
+* If an IP address is blocked as part of a rangeblock, attempting to unblock
+ the single IP should not unblock the entire range.
+* (bug 6695) Fix native language name of Southern Sotho (Sesotho) (st)
+* Make action=render follow redirects by default
+* If restricted read access was enabled, whitelist didn't work with special
+ pages which had spaces in theirs names
+* If restricted read access was enabled, requests for non-existing special pages
+ threw an exception
+* Feeds for recent changes now provide correct URLs for the change, not just
+ the page
+* 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
+
+== 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
+ 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 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.
+* (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.
+* 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 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 11588) Preserve document structure for empty dataset in backlinks query.
+* Outputting list of all user preferences rather than having to request them by name
+* (bug 11206) api.php should honor maxlag
=== Languages updated in 1.12 ===
+* Afrikaans (af)
+* Akan (ak) (new)
+* Amharic (am) (new)
+* Aragonese (an)
+* Old English (ang) (new)
* Arabic (ar)
+* Aramaic (arc)
* Mapudungun (arn) (new)
+* Assamese (as)
+* Asturian (ast)
+* Aymara (ay)
+* Samogitian (bat-smg)
+* Boarisch (bar)
* Bikol Central (bcl)
* Belarusian Taraskievica orthography (be-tarask)
+* Bulgarian (bg)
+* Bislama (bi) (new)
+* Bamanankan (bm)
* Bengali (bn)
+* Bishnupriya Manipuri (bpy)
+* Breton (br)
+* Buginese (bug) (new)
* Catalan (ca)
+* Zamboangueño (cbk-zam) (new)
+* Chechen (ce)
+* Cebuano (ceb) (new)
* Czech (cs)
* Cassubian (csb)
+* Old Church Slavonic (cu)
* Welsh (cy)
* Danish (da)
* German (de)
-* Lower Sorbian (dsb)
+* Lower Sorbian (dsb) (new)
+* Divehi (dv)
+* Ewe (ee) (new)
* Greek (el)
+* English (en)
* Spanish (es)
* Extremaduran (ext)
+* Finnish (fi)
* Persian (fa)
+* Fulah (ff)
* Võro (fiu-vro)
-* Frisian (fy)
+* Faroese (fo)
* French (fr)
+* Cajun French (frc)
+* Franco-Provençal (frp)
+* Frisian (fy)
+* Irish (ga)
+* Gön-gnŷ (gan) (new)
+* Galician (gl)
+* Gilaki (glk) (new)
+* Ancient Greek (grc) (new)
+* Swiss German (gsw)
+* Hakka (hak)
* Hebrew (he)
+* Croatian (hr)
* Upper Sorbian (hsb)
+* Hungarian (hu)
+* Armenian (hy)
+* Interlingua (ia)
* Indonesian (id)
+* Ingush (inh) (new)
* Icelandic (is)
+* Italian (it)
+* Japanese (ja)
+* Georgian (ka)
+* Kara-Kalpak (kaa)
+* Kabyle (kab)
* Kazakh (kk)
+* Kannada (kn)
* Korean (ko)
+* Kölsch (ksh)
+* Kurdish (Latin) (ku-latn)
+* Cornish (kw) (new)
+* Latin (la)
+* Luxembourgish (lb) (new)
+* Lak (lbe) (new)
+* Limbugian (li)
+* Lozi (loz) (new)
+* Lingala (ln)
+* Lithuanian (lt)
+* Malayalam (ml)
+* Macedonian (mk)
+* Malay (ms)
+* Erzya (myv) (new)
+* Nahuatl (nah)
+* Min-nan (nan)
* Low Saxon (nds)
+* Dutch Low Saxon (nds-nl)
+* Newari (new) (new)
* Dutch (nl)
+* Norwegian (no)
+* Occitan (oc)
+* Deitsch (pdc) (new)
+* Polish (pl)
+* Piemontèis (pms)
+* Pontic (pnt) (new)
+* Pashto (ps)
+* Portugese (pt)
+* Quechua (qu)
+* Rhaeto-Romance (rm) (new)
+* Romanian (ro)
* Russian (ru)
* Sakha (sah)
+* Sardinian (sc)
* Sicilian (scn)
+* Scots (sco)
+* Sindhi (sd)
+* Sassarese (sdc) (new)
+* Seri (sei) (new)
+* Tachelhit (shi)
* Slovak (sk)
* Serbian (Cyrillic) (sr-ec)
+* Swati (ss) (new)
+* Saterland Frisian (stq) (new)
* Sundanese (su)
+* Swedish (sv)
* Tamil (ta)
+* Teluga (te)
* Tetun (tet) (new)
+* Tajik (tg)
+* Tagalog (tl) (new)
+* Turkish (tr)
+* Tuvinian (tyv)
+* Uyghur (ug)
+* Venitian (vec)
+* Vietnamese (vi)
+* West Flemish (vls)
+* Volapük (vo)
* Walloon (wa)
+* Wolof (wo)
+* Wu (wuu) (new)
+* Yiddish (yi)
+* Cantonese (yue)
* Zhuang (za)
* Zealandic (zea)
+* Old Chinese/Late Time Chinese (zh-classical)
+* Chinese (Simplified) (zh-hans)
+* Chinese (Traditional) (zh-hant)
== Compatibility ==