MediaWiki 1.21/wmf9

The latest version (labeled "1.21wmf9") of MediaWiki, the software that powers Wikipedia and its sister sites, is being deployed to all Wikimedia sites in stages, starting on Monday, 4 February 2013 (see the roadmap).

We will continue to deploy the latest software every two weeks. This is intended to minimize disruption and possible issues, and make it easier to identify the cause of problems, since the possibly problematic code will be much more recent.

Core changes

 * - Added typehint
 * - use strict null check
 * - Simplified code. Removed not needed if-else
 * - Improved BagOStuff docs.
 * - Fixed call signature for PingLimiter hook.
 * - Fixed typo
 * - Added new &quot;byemail&quot; action to the new users log
 * - add profiling points in SiteSQLStore
 * - Change name of section so it does not get confused with Wikidata
 * - set the site internal id when loading sites from the db
 * - Add link to the php manual to the IBM DB2 installer entry.
 * - Implement Language::isWellFormedLanguageTag
 * - Test improperly quoted attribute values in HTML tags and table cells
 * - Made a message more accourate by changing the word &quot;edit&quot; for &quot;action&quot;.
 * - Add a method to clear the site list programmatically.
 * - Clear caches automatically when changing site list.
 * - Added missing documentation to SiteStore interface
 * - Fix cache key used by SiteSQLStore.
 * - Implemented Serializable interface in Site
 * - Don't return invalid XML from paraminfo when one of parameter values is null
 * -  Enable subpages per default on Project and Help namespaces.
 * - [FileBackend] Fixed bug where &quot;false&quot; could be included in getDirectoryList.
 * - Preserve warnings on API error
 * - Make Job::toString handle non-primitive parameters.
 * - Make TextContentTest and WikitextContentTest work in all cases
 * - Do not flip partial keys in CSSJanus.
 * - Invalid value of &quot;link&quot; parameter in &lt;gallery&gt; no longer produces a fatal error
 * - Added a new &quot;api-error-publishfailed&quot; message.
 * - Improved concurrency of copyFileBackend.php with pipelined downloads.
 * - Address gender support issues in page enotif subject and intro
 * - API imageinfo correctly handle redirects
 * - Minor tweak to MediaWiki:Readonlywarning
 * - Design improvements to sites code
 * - make purgeRedundantText not fail on pre MW1.5 records
 * - [ExternalStore] Various cleanups to ExternalStore class.
 * - Remove references to non-existent 'execute' right in Title.php
 * - Use better variable name in CoreParserFunctions::pagesize
 * - Update doc comments and code formatting.
 * - [FileRepo] Flipped RENDER_FORCE check order to avoid stat.
 * - Account creation through API no longer leaks IP address of account creator
 * - Change InfoAction cache key to use SHA1.
 * - Add support for formatnum in jqueryMsg parser
 * - Add Language::isSupportedLanguage
 * - Use a LinkBatch for the creator/last editor user (talk) pages in InfoAction
 * - Fix changes for Ia1878588 to work with databases that use non-integer timestamps.
 * - Trim spaces on user supplied comments
 * - mediawiki.jqueryMsg: Fix regression and add tests.
 * - mediawiki.Uri: Fix parsing of URIs with @ in path.
 * - Use array for join condition
 * - Document that default timestamp is current time.
 * - ObjectCache changes break XCache 3.x support
 * - Align comment whitespace a bit.
 * - Mark slow unit test as @group medium
 * - Check for no title and throw an exception
 * -  should be able to return the status for pages besides the one it's on
 * - Http function logic cleanups and comments.
 * - Add ability to reset certain option kinds in API.
 * - Do not send data for 0 increment calls in wfIncrStats.
 * - Remove hardcoded quotes on integer
 * - Fix hardcode database quotes in Special:Watchlist
 * - API debugging flag $wgDebugAPI to disable some security checks
 * - remove api version string and parameter
 * - Use array for database fields
 * - Fix return type doc. On SQLite ResultWrapper is returned
 * - testDecodeTagAttributes now use a data provider
 * - normalize sanitizerTest and add coverage tips
 * - Correct method name in ContentHandler comment
 * - Disable template expansion in message &lt;autoblocker&gt;.
 * - Pass context to UserGetLanguageObject
 * - Fix message movepagetext: Move to a empty page not possible
 * - Made ORMTable and ORMRow non-abstract
 * - Adding SpecialSearchResultsPrepend/Append hooks
 * - Revert &quot;Overriding Vector's footer margin when in print mode&quot;
 * - Add guard to Resources.php
 * - Moved $function definition up to make IDE happy.
 * - [FileBackend] Added work-around for lack of temp url support in rgw.
 * - Added a read-only check to runJobs.php to avoid log spam.
 * - Skip screen sheets with media queries when printing
 * - mcc can now set memcached debug mode and has help
 * - Fix typo in exception message
 * - Make redirect update in refreshLinks.php bypass the redirect table
 * - [JobQueue] Added push convenience wrapper function.
 * - Make protect level messages clear and consistent
 * - We don't use SVN anymore
 * - Follow-up Id75401be (e32c8afe): no more need to prefix debug messages
 * - Minor tweaks to installer text
 * - Additional tests to catch Parsoid regressions.
 * - Pass database connection to SpecialWatchlist::countItems
 * - Fix ApiCreateAccountTest for $wgEnableEmail = false;
 * - More natural flow for the &quot;By e-mail&quot; feature
 * - Cleanup to ImagePage::openShowImage
 * - Further tweaks to pipe trick documentation (follow-up Iaf365e31)
 * - Links created by Linker::makeExternalLink didn't include rel=nofollow
 * - Include original URL params in variant links
 * - Simplify DatabaseBase::tableName