MediaWiki 1.21/wmf8

The latest version (labeled "1.21wmf8") of MediaWiki, the software that powers Wikipedia and its sister sites, is being deployed to all Wikimedia sites in stages, starting on Wednesday, 16 January 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

 * - Update PageImages to catch up https://gerrit.wikimedia.org/r/#/c/44556/
 * - Update WikiEditor onto 1.21wmf8 branch
 * - Update MoodBar to allow tooltip configurability.
 * - Add GuidedTour extension
 * - Backport fix for Wikibase Client edit link
 * - Update Wikibase with fix for
 * - Change GettingStarted to commit removing split test.
 * - [FileRepo] Lazy load large metadata from the DB.
 * - Backport --max-time patch for wikibase dispatching changes
 * - Update TrustedXFF to get Yandex Turbo addresses
 * - Let nextJobDB.php narrow down the type based on a set.
 * - Fixed slave check when the job type is not specified.
 * - Improved handling of pending queue delisting.
 * - Improved some thumb.php error messages.
 * - Update extensions needed by labsconsole
 * - API imageinfo correctly handle redirects
 * - Update MobileFrontend to tip of production
 * - Updating MobileFrontend to tip of production branch
 * - backporting fix for mw.user.isAnon JS error in wikibase
 * - Update Wikibase to mw1.21-wmf8 branch of extension:
 * - Fix failing qunit test for mediawiki.jqueryMsg
 * - Small whitespace cleanup
 * - FauxRequest leaks cookie data from primary request
 * - Test for (indented pre syntax)
 * - Test table captions with attributes
 * - Revert &quot;Live preview no longer experimental&quot;
 * - disable live preview on user .js/.css pages
 * - Add support for RC_EXTERNAL type in api
 * - Cleanup HTML of imagepage: avoid empty &lt;ul&gt;&lt;/ul&gt;
 * - API Cleanup: renamed '_badcontinue'-&gt;'badcontinue', one die
 * - [JobQueue] Optimized JobQueueGroup::pop.
 * -  Two wikilink types and.
 * - Test (escaped) HTML entities in text content and attributes
 * - SpecialEditWatchlist: Don't re-escape html option values.
 * - Fixed empty return values in MemcLockManager.
 * - Fix spelling mistake
 * - Implement wall clock time limits for shell commands
 * - Fix erroneous check in refreshLinks.php
 * - Set RAII $scope variable in DB job queue.
 * - allow arbitrary user preferences prefixed with 'userjs-'
 * - Add wfProfileOut missing in 74f581e34
 * - Reorganise the functions doing wfProfileOut and returning on all if branches.
 * - - showJobs.php broken
 * - Don't apply IP blocks to users with &quot;ipblock-exempt&quot; rights when creating an account
 * - Minor cleanup
 * - Test some more partly template-generated wikilink targets
 * - Update doc comments and code formatting.
 * - Remove $wgBug34832TransitionalRollback
 * - Title no longer relies on entries already being in LinkCache
 * - Add $CHANGEDORCREATED back for custom template
 * - Make Block::newFromTarget work again when passing only a vague target
 * - Includes $query in SkinTemplate::tabAction if $title doesn't exist
 * - Fix converttitles param in api.php?action=query
 * - raise timeout for ApiCreateAccountTest::testValid
 * - Added account creation API.
 * - adjust release note about I45b077cf
 * - [JobQueue] Minor documentation improvements.
 * - Made NullJob support ignoring duplicates.
 * - [JobQueue] Added wfIncrStats for job recycling.
 * - Fix access to other wiki's job queue.
 * - Added merge function to BagOStuff for CAS-like functionality.
 * - PHPUnit Makefile is now compatible with BSD make.
 * - Add some more template-affected wiki link variants
 * - Overriding Vector's footer margin when in print mode
 * - Add mw-navigation to CSS for display:none on print.
 * - improve doc
 * - [JobQueue] Improved de-duplication stat calls.
 * - Only show rollback links if they work
 * - Replace hardcoded native language names with core parser function
 * - Supress the root namespacing from DBQueryError.
 * - Add message documentation and message key to maintenance file
 * - Tidy up declaration of $wgSiteTypes
 * - [JobQueue] Minor doc cleanup.
 * - Added test for special link trail case
 * - Fixed return type doc
 * - Catch excpt to avoid fatal in Message::__toString
 * - Added transclusion count to InfoAction.
 * - Live preview no longer experimental
 * - Removed useless keys function from BagOStuff.
 * - [JobQueue] Added support for using an external DB.
 * - dblClickEdit/rightClickEdit: Trigger ca-edit click.
 * - Language::listToText cleanup with unit test
 * - [JobQueue] Some tweaks to reduce claimRandom retries.
 * - Update docs
 * - php maintenance/language/rebuildLanguage.php --lang=en
 * - Follow-up I0e5d3cfb: Spelling consistency update
 * - Disable protection in case there aren't any restriction types
 * - (minor) Make ORMTable handle failed queries nicely.
 * - Allow preferences that need not be rendered in Special:Preferences
 * - Make EditFilterMergedContent more generic.
 * - Revert &quot;Also delete the page information cache when invalidating cache of a non-existing page&quot;
 * - Remove docs for hook LoggableUserIPData
 * - Don't bother creating a new context in SpecialPageFactory::getUsablePages
 * - Miscellaneous profiling fixes
 * - Remove orphan call to wfProfileOut
 * - Added category information to InfoAction.
 * - Use ResultWrapper::numRows instead of DatabaseBase::numRows
 * - Add &quot;modifyExtensionField&quot; utility function
 * - fixed timestamp validation for api
 * - Some fixes for Ia2782d64 (2f60cd2)
 * - New methods to drop or rename extension index in DatabaseUpdater
 * - [JobQueue] Increment stats for jobs ignored as duplicates.
 * - Made the profilers that output text not break js.
 * - Partial normalisation of hooks.txt
 * - recentchanges.rc_ip is used for retroactive autoblocks
 * - Use nocookiesfornew on account creation if no cookies
 * - Use Database::addQuotes instead of hardcoded quotes
 * - Explicitely add two undocumented hooks
 * - Partial normalisation of hooks.txt
 * - Don't block non-existent users via the API
 * - Reuse the WikiPage object to save a db query
 * - Move logentry-* messages from newusers and rights log near the other ones
 * - (zhtable) Add zh2Hans: '这么' =&gt; '这么' for better segmentation
 * - Follow-up Idf308e82 (e88b0fb): use wfMessage and numParams
 * - Don't convert blue categorylinks to another variant.
 * - zhtable maintenance
 * - Use getPageViewLanguage instead of getPageLanguage in firstHeading.
 * - Localize autosummary of page protecting
 * - Makes WebRequest::detectProtocolAndStdPort take HTTP_X_FORWARDED_PROTO headers into account
 * - Add months and years to Timestamp::getHumanTimestamp
 * - [JobQueue] Made showJobs.php work for non-DB queues.
 * - Block::parseTarget accepts and can return null
 * - Add test for substitution of params with multiple digits
 * - Show changed bits on file version (oldimage) revdel logs.
 * - - Increase size of ug_group in user_groups table
 * - [JobQueue] Clarified documentation a bit.
 * - Pass $user from WikiPage::getContent to Revision::getContent
 * - Eliminate dummy Language instances from being created
 * - Fix Sqlite upgrade test when profiling to database is enabled
 * - Set $mLoadedItems to true in User::loadFromId
 * - [FileBackend] Suppress most file warnings but log them to an FSFileBackend log.
 * - Use Html::rawElement instead of hardcoded string in Special:Contributions
 * - Add support for mulitpart mime email to email sending code
 * - Follow-up I9c7aa3b2 (b28c7a8): fix one more validation error
 * - Don't run database updates for shared tables unless --doshared is provided
 * - Cursor of enhancedchangelist wrong for non-toggle lines
 * - Cleaned up and optimized wfBaseConvert;
 * - Normalise inline comment markers to &quot;//&quot; in WikiPage.php
 * - Also delete the page information cache when invalidating cache of a non-existing page
 * - Update CREDITS
 * - Remove &quot;read&quot; from list of allowed actions on special pages
 * - Use proper function recursiveConvertTopLevel in recursive conversion
 * - [FileBackend] Improved some header related docs.
 * - make MovePage aware of whether redirects are supported.
 * - Follow-up I5f7f6da0 (cefb9ef): pass the User parameter to more LogEventsList::getExcludeClause calls
 * - Parser test to test language conversion around HTML tags.

AbuseFilter

 * - add conditional article_views variable
 * - Let AbuseFilter work with 1.19
 * - Properly integrate $wgAbuseFilterValidGroups
 * - Adding a Link back to Abuse filter management page Added the navigation bar Set page title to 'Editing Abuse filter'
 * - Add hooks to AF that allow altering User and Title specific vars

ArticleFeedbackv5

 * - - Article Feedback - Default Warning Message for Abuse Filter
 * - New wgArticleFeedbackv5SpecialWatchlistUrl value
 * - Update to match new/fixed AbuseFilter code

Babel

 * - Add function to get the user languages

CheckUser

 * - Remove &quot;LoggableUserIPData&quot; hook
 * - SQLite schema compatibility

ConfirmEdit

 * - Removed redundant width/height tags to avoid getimagesize call.
 * - Consistency tweak: Use &quot;...&quot; instead of '...' in message text

ContributionReporting

 * - schema updates via hook

DataValues

 * - (minor) some valueview widgets no longer fail when calling destroy twice
 * - (minor) function for checking whether value would be most suitable for view
 * - Work on value parsers
 * - (minor) function for checking whether value would be suitable for valueview
 * - Get rid of singleton pattern in ValueValidatorFactory
 * - Get rid of incorrect usage of interfaces in ValueValidators
 * - Removed ValueParsers Error interface
 * - Removed ValueFormatters Result interface
 * - Update commonsMedia widget value on suggester's close event
 * - Accept ValueParser instance in definition so one with options can be set
 * - Also use equality method if the object implements comparable
 * - Add info to test error message
 * - Added temporary method to obtain allowed values from validator
 * - Fixed access level
 * - Get rid of ValueParsers\Result interface
 * - ValueParsers do not need to parse to a DataValue
 * - fix doc
 * - Added docs that accidentally got removed
 * - Some work on the datatype interface

Diff

 * - Version 0.4 release
 * - Moar tests, for great justice!
 * - Added test to check if serialization handling remains compatible with v0.3
 * - Added compatibility with Diff &lt; 0.4 in Diff::unserialize
 * - Refactor tests after splitting of of patching code from diff
 * - Fixed issues with isAssoc methods, added docs, and added a lot of tests
 * - Fixed check for assoc diffs

DonationInterface

 * - Removing last vestiges of hard-coded defaults in forms. Switching the forms to use class=&quot;optional&quot; for required, but hidden elements.
 * - Two spaces in translation message

E3Experiments

 * - Delete flapping tests; declare 'medium' test group.
 * - Default entry point for Jenkins tests
 * - remove obsolete schemas and functions

Echo

 * - Update ArticleSaved hook to use correct request object
 * - Support for limiting notifications to a specific user group or groups
 * - making sure that badge is only applied to immediate child
 * - Turn off article-linked email notif so users need to opt-in
 * - Redirect should not trigger 'article-linked' notification
 * - Docking overley to notifications link rather than side of window
 * - Setting the line-height for the notification content area
 * - - LinkedPage was linked by 127.0.0.1 from page

EducationProgram

 * - Temporarily disable special:educationprogram due to

FlaggedRevs

 * - Use mw.config instead of global.  Also:

GeoCrumbs

 * - - GeoCrumbs: Call to a member function getParserOutput on a non-object

GettingStarted

 * - Remove split test.
 * - Fix incorrect comment and unnecessary variable.

GlobalBlocking

 * - Use full URL (protocol relative) instead of canonical one on the global block list

GuidedTour

 * Newly deployed extension

LabeledSectionTransclusion

 * - Fixup minor style issues

LandingCheck

 * - Making sure the defaults apply with empty GET params.
 * - Rename calls to wfArrayToCGI to wfArrayToCgi

LdapAuthentication

 * - Use wgLDAPPreferences rather than hardcoded values

LiquidThreads

 * - Update LiquidThreads OldChangesListRecentChangesLine hook in accordance with Ib8f297b3

MoodBar

 * - Add configuration field (default true) for showing tooltip.
 * - adds plural support

Narayam

 * - Gurmukhi phonetic keyboard character sequence fixes

OpenStackManager

 * - Add Echo notification for instance deletions
 * - Generate a shell request during new account creation.
 * - Fix puppet group modification access for sysadmins
 * - Ban some vm image and image types
 * - Fix 500 error in SpecialNovaSudoer

PageImages

 * - initImageData.php perf tweaks

PageTriage

 * - Order of tags

ParserFunctions

 * - Add square root (sqrt) function
 * - Remove double definition of empty array
 * - Init $name

Renameuser

 * - Fix incorrect usage of array_shift.

Scribunto

 * - Fix mw.allToString( nil )
 * - Add Scribunto_LuaInterpreter::isLuaFunction method
 * - Add Scribunto_LuaInterpreter::wrapPhpFunction
 * - Make loader available to console, interface modules
 * - Allow the profiler to be configured or disabled

TemplateSandbox

 * - Remove double space

TimedMediaHandler

 * - Remove width rule for the &quot;copy code&quot; button
 * - seek up to 3 seconds before seekpoint to extract frames

Translate

 * - Adjust z-index for action bar to avoid overlapping with message editor
 * - Remove deprecated FCFontFinder::find
 * - Make action bar to float when needed
 * - Fixes for the inline documentation editor
 * - Selectable facets for search page

TranslationNotifications

 * - Showing Special:NotifyTranslators is restricted
 * - Add plural on notified number of languages in log
 * - Add explicit GENDER support in user messages

TrustedXFF

 * - Added Yandex Turbo addresses

UniversalLanguageSelector

 * - Version update
 * - Try to avoid messing wrong request contexts
 * - WebFonts font drop-down menu has &quot;Opendyslexic&quot; instead of &quot;OpenDyslexic&quot;
 * - Fix variable name

UploadWizard

 * - Drop misleading &quot;donate&quot; term
 * - increase concatenation and publishing timeout to 10 minutes
 * - removed mwe-upwiz-thanks-caption
 * - description should go into the suggested caption
 * - set chunk size to 5MB or max php size

Vector

 * - fix noncollapsible sidebar due to HTML changes

VisualEditor

 * - Make ve.dm.AnnotationFactory a named function rather than an anonymous function
 * - Major ve.ui rewrite, especially ve.ui.LinkInspector
 * - JSDuck: Fix warnings
 * - MetaBlockNode should be a BranchNode, not a LeafNode
 * - Make stub nodes inherit correctly
 * - Fix test breakage in 90f046799
 * - Ignore Eclipse files
 * - Removed code for and links to unused libraries
 * - More {String} -&gt; {string} conversions in documentation
 * - Kill ve.ce.Meta{Block,Inline}Node, not needed.
 * - Triple-Click Detection for IE
 * - Initialization error when canceling load
 * - JSDuck: Generated code documentation!
 * - Inline tags like &lt;span&gt; are block-alienated sometimes
 * - BugID 43076 - Fixes to alien and phantom corner cases
 * - Trivial wording change to disclaimer meant to be done before launch
 * - Set title attributes for internal and external links.

WikiEditor

 * - Add jQuery event trigger for when the initial sections are done
 * - Losslessly compress images
 * - Remove source images and just store compressed images in the folders
 * - Georgian bold toolbar icon reworked. Followed by general style.
 * - Added toolbar icon for Ossetian language. Added Ossetian to toolbar configuration.

Wikibase

 * - Fix edit link message, using the old wbc prefix
 * - fix edit links link to include namespace
 * - use prefixed text for title when adding edit link
 * - OCD attention to details! fix some tabs :)
 * - add --max-time param to dispatchChanges
 * - Adding mediawiki.user dependency to entityViewInit
 * - due to, temporarily disabling the anon warning
 * - check rc_params is array in client
 * - adjust watchlist query to use rc_this_oldid=page_latest
 * - Selecting a Snak type will show UI changes
 * - &quot;change&quot; event and snakType function for SnakTypeSelector
 * - fix autocomment for connecting an item with a client page
 * - enable continuation in ApiSearchEntities again
 * - Basic error handling for claim/snak UI
 * - Enabling object to be passed to Tooltip extension's setTooltip
 * - add toggle for wikibase edits in watchlist
 * - Removed tihgly coupled parse pulling in global state from snak factory
 * - Added test to check if default casensitivity works for termcache implementations
 * - Removed staticness from test providers
 * - (minor) Moved native event handler code into its own file
 * - Create a max length constraint for language strings
 * - (minor) Changed jQuery.NativeEventHandler to better work with jQuery.Widget
 * - bug: 43858 Do not select the whole terms table and then do a query for each row
 * - Correct parameter order in AutocompleteInterface
 * - marking specific selenium tests as experimental
 * - Tooltips for claim view widget
 * - (minor) simpler way to maximize browser during selenium tests
 * - (hotfix) fix calls to getEntityNamespaces
 * - dispatcher script for change propagation.
 * - remove $wgUser global and get user from context
 * - Fix anonymouseditwarning message key
 * - possibility to filter experimentals in selenium tests
 * - (minor) small change to statements rake tasks in selenium
 * - (minor) always start selenium tests in fullscreen
 * - (42954) selenium tests for ip warning message
 * - (hotfix) removed unnecessary parameter
 * - (minor) add wb.Snak.prototype.toMap and wb.Snak.newFromMap
 * - link to Special:SetLabel from EntityView
 * - (minor) add wb.Snak.equal
 * - Adjusting wikibase JS API to changes made in Snak.toJSON
 * - update docs, type hint and pass by ref in client hooks
 * - Anonymous user edit warning on create item/property pages
 * - Anonymous user edit warning on entity page
 * - Prevent interface event propagation
 * - (hotfix) $prefs should be passed by reference
 * - Entity selector: Internally used _setEntity method
 * - (minor) corrected json output of PropertyValueSnaks in JavaScript
 * - (minor) Snak.toJSON now uses 'property' instead of 'propertyId' for snaktype
 * - (minor) increase waitingtime in clientrepo seleniumtest when un/deleting item
 * - (minor) Snak.toJSON now uses 'snaktype' instead of 'type' for snaktype
 * - Register parser for wikibase-item datatype
 * - move entityNamespace setting and namespace utils to repo
 * - (minor) keep window focus during running qunit with selenium
 * - (minor) removed todo from selenium statements tests
 * - Put EntityId parsing code into its own class
 * - add Selenium tests to check error-reporting
 * - Moved snak type selector for snakview widget into its own widget
 * - Using textarea in wikibaseItem widget
 * - Make recent changes respect Wikibase Client namespace setting
 * - (hot fix) follow-up to l4afd88c8 which broke some selenium tests
 * - Passing entity stub object to entity selector widget
 * - minor cleanup
 * - Uncomment and fix testAplly in EntityDiff and ItemDiff tests
 * - Added docs
 * - Work on cleaning up EntityDiff
 * - Snak type selector for snakview widget
 * - Added snakview variation definition for handling of SomeValueSnaks
 * - Added snakview variation definition for handling of NoValueSnaks
 * - Passing entity store object to the entity selector widget
 * - Fixed IE incompatible code in TemplatedWidget
 * - Refactoring of Snakview variations registration
 * - Mechanism for supporting different Snak types in the user interface
 * - Revert &quot;Added requirements to README&quot;
 * - Added requirements to README
 * - Simplified xpath declarations in alias Selenium module
 * - (minor) Introduced new base widget for template based widgets
 * - Add TitleGetRestrictionTypes hook
 * - Remove shared table setting from example settings
 * - Call EditFilterMergedContent from EditEntity.
 * - (minor) adjust selenium tests for new snak type selectr DOM
 * - Changed DOM for snak type selector
 * - Minor site links table layout improvements
 * - Improved site links table layout fixation
 * - more selenium tests for statements UI
 * - Improved aliases pixel precision
 * - Strict check so empty strings and strings with just 0 get handled correctly
 * - Correctly focus next claim's edit button when removing a claim
 * - Empty labels weren't recognised correctly
 * - Set client page id in recent changes table
 * - Put language code &quot;en&quot; in quotes
 * - Moved data type selector ui code into own class to facilitate testing and reuse and make special newproperty simpler
 * - Fix referenced constant that no longer exists
 * - Entity selector: Setting input value when setting entity
 * - Removed overwriting entity selector's input value
 * - (minor) Fixating site links table layout
 * - (minor) Fix for broken site link table layout after adding a link in IE
 * - (minor) Make onLinkBegin robust against broken objects.
 * - link correctly to non-main namespace pages in recent changes
 * - kill use of wgUser in EntityView
 * - minor doc tweak
 * - Fixed label+description uniqueness test when creating a new entity
 * - Added to label+description uniqueness restraint test
 * - move repo-dependent CachingEntityLoader to repo, mark skipped test for client
 * - wbUsedEntities now contains information about Items's used entities
 * - (minor) removed test for item label/description uniqueness
 * - (minor) Handling suggester's select event in AutocompleteInterface
 * - (minor) Correct placeholder text for property input box
 * - (minor) add some tests for SiteLinkTable
 * - (minor) check on alias when validating entity selector input
 * - Refactor and test LangLinkHandler.
 * - Replace Claims interface by ClaimList. Old interface made little sense
 * - killed VIEW_TYPE in EntityView
 * - Improved error on invalid datatype on special newproperty

WikimediaMaintenance

 * - Need to query based on the keys, not the values
 * - Created a maintenance script to create the tables for Translate
 * - Output a newline after the total in getJobQueueLengths.php

cldr

 * - set a CLDR_VERSION constant to use in extension credits and elsewhere