MediaWiki 1.21/wmf10

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

Most important changes

 * - Temporarily reverting change Ifbeae7e9 for 2 weeks to allow time to fix issues with TimedMediaHandler and other extensions.
 * - Deprecate in_string
 * - kill $wgUseDynamicDates
 * Extension - EventLogging
 * - Remove deprecated DevServer.php

Core changes

 * - Deal with garbage user_token values in the DB.
 * - Init the user token before adding users.
 * - Update Wikibase
 * - Fix siprop=protocols in XML format
 * - Update Scribunto for today's deployment
 * - Update Wikibase, Diff, DataValues and WikimediaMessages
 * - Fix documentation of DatabaseBase::fetchObject and DatabaseBase::fetchRow
 * - Fix copyright notice shown as Â© instead of ©
 * - Fix check of return value from SpecialPageFactory::resolveAlias
 * - fix hardcoded quote in BacklinkCache
 * - Add url param 'extended' to Special:Watchlist
 * - [Regression] Do not trim spaces on edit preview or show changes
 * - Cleanup of API:Account creation documentation.
 * - Revert &quot;Overriding Vector's footer margin when in print mode&quot;
 * - Move my name up to developers in the credits file
 * - Add a handful of missing @return
 * - Correct name in CREDITS, per request.
 * - [JobQueue] Avoid spamming the runJobs log with large blobs.
 * - Temporarily reverting change Ifbeae7e9 for 2 weeks to allow time to fix issues with TimedMediaHandler and other extensions.
 * - Check whether this request is a POST before allowing a query module to run, if required by the query module
 * - Return boolean from status object.
 * - move jquery.collapsibleTabs module to Vector extension
 * - [BagOStuff] De-breakified cas for SqlBagOStuff.
 * - Update formatting
 * - Update formatting
 * - Update formatting
 * - Update formatting
 * - Update formatting
 * - Update formatting
 * - Update formatting
 * - [LockManager] Created PostgreSqlLockManager class.
 * - [Database] Set bytea_output to match pg_unescape_bytea.
 * - [Database] Added support for lock/unlock in Postgres.
 * - Add siprop=protocols to SiteInfo API
 * - Update code formatting
 * - Update formatting
 * - Fix parentheses
 * - Update formatting
 * - Update formatting
 * - Update formatting
 * - InfoAction: Heading ID should not include # character.
 * - Fixed waitForSlave.php constructor.
 * - Better error message for invalid user name in cleanupSpam.php
 * - Update plural rules from CLDR, and correct Armenian plural rules
 * - phpcs: Pass DefaultSettings.php
 * - Revert &quot;phpcs: Convert var to public in SpecialUserlogin.php&quot;
 * - Set $wgUseTidy = false on TextContentTest
 * - QUnit testrunner: Fix extend call
 * - Added --all option and other features to purgeList.php
 * - Support WAI-ARIA's role=&quot;presentation&quot; inside of WikiText.
 * - Break long line.
 * - - Filename cannot be empty in SwiftFileBackend
 * - Don't pre-fill username when creating.
 * - Avoid Jenkins' CodeSniffer warnings for Userlogin
 * - Fixed unmatched begin/commit in SiteStatsUpdate.
 * - Fixed some comments and removed redundant constant.
 * - $.suggestions: make it possible to re-show suggestions
 * - Use and forward returntoquery parameter in Special:ChangePassword
 * - Russian grammar updates
 * - Avoid undefined offset for $wgImageLimits
 * - Set correct number separators for Northern Sami
 * - remove not needed return and break
 * - fix some spacing
 * - Do not attempt to send a real e-mail in ApiAccountCreationTest
 * - remove space before semicolon
 * - TRUE, FALSE and NULL must be lowercase
 * - Attribtue -&gt; Attribute
 * - Title.php: replace some '*' with explicit fields in selects
 * - Add some missing readonly checks:
 * - The right casing is IcuCollation
 * - Use OldLocalFile::selectFields
 * - Add ArchivedFile::selectFields and use it
 * - add a getter for ICU version to ICUCollation
 * - API PageSet allows generator for non-query modules
 * - Add null lock manager to parser tests to support code that uses it by default.
 * - apitests leaks wgUser
 * - Correct check whether the e-mail field was filled in Special:Userlogin/signup
 * - Add languages anp, ks, mai and pi to the line-height fix
 * - Add languages ne and new to the line-height adjustment
 * - fix logic introduced in addNewAccountInternal
 * - Reformatted to satisfy PHP_CodeSniffer
 * - API tests to verify basic query functionality (list &amp; props)
 * - Replace AJAX by search in 'mwsuggest-disable'
 * - Expand $wgLanguageCode documentation
 * - [ExternalStore] Made ExternalStoreMwstore use private containers.
 * - Fixed bogus function call.
 * - Clean up ApiQueryImageInfo continuation
 * - Made Page an interface, since it is only there to pass type checks.
 * - Use wfShellExec in UIDGenerator and style fixes.
 * - [ExternalStore] Small documentation tweaks.
 * - [ExternalStore] Added ExternalStoreMwstore class that uses a file backend.
 * - Added UIDGenerator class for getting statistically unique IDs.
 * - [JobQueue] Added unit tests for job queue code.
 * - Vector: Phase out one-pixel images.
 * - Removed cruft variable assignment.
 * - Improve description of paths/urls in the INSTALL file.
 * - Deprecate in_string
 * - style: fix up commas in function arguments
 * - [JobQueue] Improved job recycle rate for small queues.
 * - kill $wgUseDynamicDates
 * - Remove Preprocessor_HipHop
 * - Improve parser handling of nested braces.
 * - Swedish Collation (uppercase-sv). Swaps Ä and Æ
 * - Changes to composer.json.
 * - [JobQueue] Update &quot;empty&quot; cache key when jobs are recycled.
 * - API: Fix using the same module as generator and prop
 * - Added MediaWiki version to composer.json
 * - added wiki entry in support section of composer.json
 * - composer.json to register MediaWiki in Packagist
 * - [FileBackend] Documentation tweaks.
 * - API module manager and help rewrite
 * - add zone &quot;transcoded&quot; for audio/video
 * - Improve the shell cgroup feature
 * - limit memory via cgroups if available
 * - Replace php_sapi_name with PHP_SAPI
 * - fix some spacing
 * - fix some spacing
 * - fix some spacing
 * - fix some spacing
 * - fix some spacing
 * - Fixes to the &quot;reset password&quot; mode of Special:ChangeEmail
 * - Fixed E_STRICT notices in PostgresUpdater::renameIndex.
 * - Clarify move over redirect in movepagetext
 * - [JobQueue] Cross-wiki queue access cleanups.
 * - Drop parenthesis from no/nb/nn to match CLDR
 * - LanguageTest::testIsSupportedLanguage fails on Windows
 * - Show no size links on image pages with errors
 * - Remove unneeded noprint classes after CSS change.
 * - [FileBackend] Set ignore_user_abort in file operations.
 * - Initial input focus on Special:ListUsers isn't set
 * - Rename Image namespace to File for 'be' locale
 * - add a getter for ICU version to ICUCollation
 * - misc style issues
 * - Add message when there are few watchers
 * - Added deprecation comment to constant that when used throws deprecation exception
 * - make $.tablesorter treat alt attribute like text
 * - By default, keep users in HTTPS with wgSecureLogin
 * - generateId -&gt; mw.user.generateRandomSessionId
 * - [JobQueue] Added a JobQueueRedis class.
 * - Preserve tab selection after submit in Special:Preferences
 * - Initial focus on Special:Block is nowhere

AbuseFilter

 * - Add composer.json
 * - - AbuseFilter: Invalid argument supplied for foreach
 * - Remove in_string usage
 * - Escape AbuseFilter description properly (disallow wikitext)

AntiSpoof

 * - Add composer.json

ApiSandbox

 * - Explicit ltr direction for api-sandbox-output

CentralNotice

 * - refactor without code change
 * - defaultrebase=0
 * - Removing SVG Directory
 * - non-destructive refactor into classes
 * - php_sapi_name -&gt; PHP_SAPI
 * - Add a global to CN Init Script
 * - Making CN Pre-Content Handler Aware

CheckUser

 * - Fix Special:Checkuser for log entries pointing to special pages

DataValues

 * - Added property datavalue
 * - Register time datatype
 * - Using location protocol in commonsMedia widget
 * - Throw exception rather then doing an assert as this is input data and we have a test expecting an exception
 * - Throw exception rather then doing an assert as this is input data and we have a test expecting an exception

Diff

 * - make use of assertContainsOnlyInstancesOf
 * - Added comparison callback option to MapDiffer and added CallbackListDiffer
 * - Moved version defenition to more logical place and improved entry point checks
 * - add doc
 * - fix indenting in composer.json
 * - added version to composer.josn
 * - Added support to composer.json, fixed licence format and temporarily changed type to mediawiki-extension
 * - added suggestion for mediawiki packag in composer file
 * - added @since tag

DonationInterface

 * - Updating credits
 * - Removing false alarms resulting from calling set_html_file_path from what should be non-fatal places
 * - Adding UTM source to the missing form error log lines so we can tell where they're all coming from
 * - It would help if I had ever learned to read.
 * - Card 824 - Add Name and Email to EW/RTBT Payment Methods
 * - Adding log error information to RapidHTML form selection process
 * - Use email instead of e-mail
 * - (FR #823) remove address info unless using AVS
 * - Card 793 - Adding a new i18n message for bank transfer
 * - Fix typo: Paypal -&gt; PayPal
 * - (FR #508) New Paypal adapter
 * - feed getAllEnabledGateways
 * - Removing remnants of the name-email test
 * - Setting default personal information request to name and email only.
 * - Adding Special:SystemStatus
 * - Adding an address template for HK, adding street2 and removing postal code
 * - Adding new iDEAL bank to the adapter as well
 * - Adding new iDEAL bank: Knab

E3Experiments

 * - Change IDs again after approval from Dario.
 * - Bump ob3 to ob4, with associated schema id change.
 * - Housecleaning.
 * - Remove isPageAppropriate entirely.
 * - Use email instead of e-mail
 * - Remove e3.clickTrack and e3.isUserAnonymous
 * - jsDuck support

Echo

 * - make sure dismiss works across all supported types

EducationProgram

 * - Fix class name
 * - remove hardcoded table prefix in sql patch
 * - Improve settings system
 * - Fix MySQL incompatibility
 * - - Fix artciles typo in message keys
 * - Fix addition typo
 * - - Add review in wrong column
 * - else if =&gt; elseif
 * - - Fatal error: Class 'EducationProgram\Article' not found
 * - Fixed fatal db errors due to incorrect logic
 * - prevent page from jumping when clicking controls in the students table
 * - Return false in onclick handler to prevent page from jumping
 * - increase default limit of article pager to 200
 * - Do not show extra form if it does not contain any visible inputs
 * - Migrated DYK box from DYK extension and added msg.
 * - Added MenuTest
 * - Added TimelineTest
 * - Renamed EP classes to avoid confusion with core classes
 * - Use strpos rather then deprecated in_string
 * - Fix caching bug causing course pages to not be rebuilt for logged in users
 * - Added ep_events table to deletion script
 * - Change deletion script to actually drop rather then truncate
 * - SQLite compatbility changes
 * - Update use of Page interface for 7fa1aa7364a9f89669a457fd098a0cc51954529d
 * - fix message keys of ambassador profiles
 * - removed obsolete comment
 * - JSHint: Too many var statements

EventLogging

 * - Tidy up and document JavaScript API
 * - Shift responsibility for annotating events with UUID
 * - Holy grail: 'unquote_plus' w/consistent behavior
 * - Drop unused import
 * - Fix utf-8 decoding of client-side URLs
 * - capsule_uuid: return hex string, not UUID obj

ExtensionDistributor

 * - Losslessly compress image

FlaggedRevs

 * - - FlaggedRevs: Call to undefined method PageStabilityProtectForm::setReason

GuidedTour

 * - Update documentation to fully use jsduck; related refactoring
 * - Don't test for next being required. It's not, since 4d643b69.
 * - Document dependence on E3Experiments.
 * - Automatic flipping for LTR and RTL.  Also:

Interwiki

 * - Remove extraneous table close tag

LiquidThreads

 * - Fallback for custom namespace tabs with no nstab message
 * - Thread history page times should be user-adjusted
 * - Set initial focus on Special:MoveThread
 * - Fix &quot;You cannot post a blank message&quot; error on every summary edit
 * - Add LQT status to action=info
 * - JSHint: Catch some big fish.
 * - JSHint: unescaped square brackets in regex
 * - Fix weirdness in collapse threads

MoodBar

 * - Moodbar always assumed an AbuseFilter hit

Narayam

 * - Fix JS error
 * - Lekhani was tested by Subhashish and should be deployed

NewUserMessage

 * - Use the content language for all messages

ProofreadPage

 * - Add namespaces for fi

SwiftCloudFiles

 * - php_sapi_name =&gt; PHP_SAPI

TemplateSandbox

 * - Add messages for explanatory text to editpage form

TimedMediaHandler

 * - Use select form for language instead of input field
 * - dont show dimensions for audio files in download dialog
 * - use mw.msg for messages
 * - add wiki embed code to &quot;Share&quot; dialog
 * - playerAttribtues -&gt; playerAttributes
 * - else if -&gt; elseif in php files
 * - display time for audio embeds
 * - : cleaup credits for small embeds
 * - : show players only if we have more than one
 * - avoid index undefined warning by using isset
 * - store derivatives in &quot;transcoded&quot; zone
 * - add major_mime to query to use index

Translate

 * - Only export languages that can be translated
 * - Do not load messages on init
 * - Fix JS errors in Special:Translate with tux=0
 * - Add missing return values to jobs
 * - Avoid warnings when /en does not exist
 * - Refactor the loading of language stats
 * - Proofreading mode button label i18n
 * - Formatting updates
 * - MessageTable plugin
 * - Update string
 * - Unbreak messagetable search for me
 * - Do another sanity check in MessageHandle::isValid
 * - Reduce textarea state check delay
 * - Fix accesskey problems
 * - Focus on the textarea after using a suggestion
 * - Git rid of some CodeSniffer comments
 * - Improve the &quot;Hide translated&quot; button's behavior
 * - Remove !!FUZZY!! from translations
 * - Cleanup message loading and filter handling
 * - Fix typo in 'translate-manage-nochanges-other'
 * - Change apiURL to mw.Api
 * - Make '!translated' the really default filter
 * - Call mangler in AndroidXmlFFS
 * - Only ever create one editor for each message
 * - Always show &quot;unsaved&quot; label
 * - Paste source button now triggers resize
 * - Hide the message group selector when &quot;load all&quot; is clicked
 * - Avoid doing two calls to messagegroups api
 * - Simplify show/hide of groupselector
 * - Add a dirmark for correct display of source and translation
 * - Add a clear icon to the message list filter
 * - Group the workflow selector to the Translate header
 * - Whitespace fixes
 * - Do not show workflow selector twice
 * - Enable the save button on pasting source message
 * - Make the &quot;optional&quot; checkbox filter optional messages
 * - Simplify TuxMessageTable
 * - Fix the behavior of &quot;optional&quot; filter and the buttons near it
 * - Styling adjustments for workflow status selector
 * - General cleanup
 * - Cleanup whitespace and jQuery calls in editor.js
 * - Code cleanup
 * - Parse the priority reason.
 * - Update file comment
 * - Rename TranslatablePage::removeTags to unmarkTranslatablePage
 * - Update PHPDoc

TrustedXFF

 * - Privilege separation for TrustedXFF update

UniversalLanguageSelector

 * - Update jquery.uls from upstream
 * - Update jquery.ime from upstream
 * - Add 'ar' as a language supported by the Amiri font
 * - Update from upstream
 * - Styling of settings to fit the botom of the ULS
 * - Update jquery.uls from upstream

UploadWizard

 * - only set async if we want to enable async
 * - Update the right element while publishing a resource
 * - More workarounds for change Ifbeae7e9
 * - partially reverting Change I694e7ab1 to fix buttons
 * - add queued/publish states to i18n messages

Vector

 * - move jquery.collapsibleTabs module from MediaWiki core
 * - make collapsibleTabs more resilient to CSS changes in Vector skin

VisualEditor

 * - Abort activation when changing to view mode.
 * - Optimize ve.filterArray a bit
 * - Change the HTML attribute prefix from html/ to html/0/
 * - Check for instance of generic LinkAnnotation when querying target.
 * - docsgen: Fix error on Ubuntu
 * - Transactions for metadata modification.
 * - Add user interface widgets
 * - Added new icons
 * - Fix the problem with placing cursor by clicking next to article content.
 * - Add Ed
 * - Implement inline documentation examples.
 * - ve.dm.DocumentSlice does not extend ve.Node
 * - Use .static.isMeta to communicate meta-ness
 * - Annotate newly inserted target text as a link.

Wikibase

 * - Using compatible css class option name in suggester
 * - Fix fatal error due to unknown exception.
 * - Update copyright message for deployment
 * - Make wbclient.linkItem experimental for now + non-JS fallback
 * - Add check to see if we can test with Query class
 * - (minor) Define supports0Height in inputAutoExpand before it is first used.
 * - Escape diff output
 * - Further work on claim diff visualization
 * - Simple diff visualization
 * - enhanced claim diff visualizaion including refs
 * - Show copyright warning when editing language terms
 * - Fix missing namespace declarations.
 * - improvement for options handling of wb.ui.Base
 * - Removing &quot;experimental&quot; check for language terms
 * - Language terms reacting on page edit mode event
 * - (/hot fix) added EntitySerializer option setIncludeValuesWithMissingReferences
 * - (hotfix) Auto-comments: Show nothing rather than cryptic GUIDs.
 * - (, 44165, 44166) autocomments for claims.
 * - (, 44165, 44166) autocomments for claims.
 * - copyright warning now using its own message instead of EditPage::getCopyrightWarning
 * - copyright tooltip can now be disabled (using a cookie)
 * - Site links table: Attaching table headers earlier
 * - copyright tooltip will now always be shown
 * - css: Coloring for reference errors
 * - start/stopEditing events for claimview widget
 * - Add &amp;bot param to API modules that are missing it
 * - Robust serialization of change objects
 * - Fix ChangeHandler and ChangeHandlerTest.
 * - Add minwiki to sort order
 * - check for enhanced changes preference in more places
 * - copyright warning now also displayed when adding claims/references
 * - Collapsing references when there is at least one
 * - Added checks for permissions and blocked status
 * - Remove exception assertion from ItemTest constructor
 * - Improved interaction between toolbars
 * - Avoid fatal on changes to deleted item.
 * - notification with copyright warning in JavaScript UI
 * - cleanup to getContent in ViewEntityAction
 * - remove unused ref to deprecated interface
 * - Improved position of toggler icon
 * - Remove unused getLocalizedType
 * - rem me as author since most my stuff has been moved out
 * - suggester widget: Improved resizing the suggestion list
 * - The Query functionality is experimental, so moving it to expiremental config
 * - Entity selector widget: &quot;more&quot; link
 * - current revision of statements shown in old revision view
 * - first version of claim diff visualization in DiffView
 * - Make client robust against unknown sites.
 * - EntityView selectTerms simplified
 * - Use PLURAL uppercase consistently.
 * - Optimizing wbsearchentities and adding some documentation
 * - EntityView::selectTerms improvements
 * - Language names in language terms table now links to the entity in that language
 * - improved tooltip for language terms table in edit mode
 * - language terms table has now edit features in JavaScript UI
 * - mark wikibase edits as autopatrolled in client
 * - Omit wikidata changes from enhanced changes
 * - Call the repo &quot;Wikibase Repo&quot; rather then just &quot;Wikibase&quot;
 * - Add use of ID as implicit alias in wbsearchentity
 * - New setclaim API module that allows creating or updating an entire claim given JSON serialization
 * - Switching from use of getText to getFullText
 * - Improvements to serializer code to facilitate unserialization
 * - Step towards splitting the settings of lib, repo and client into dedicated interfaces
 * - Optional custom list item for suggester widget
 * - entityselector: Using messaging system if available
 * - Use plural for 'wikibase-comment-multi' and numParams
 * - Use XHTML breaks
 * - minor cleanup of EntityView::selectTerms
 * - Registered time datatype as being supported
 * - entityselector: Option to define custom aliases label
 * - using wb.utilities.buildPendingCounter for references counter now
 * - Fix qqq message for add links, re-add lost qqq message for RC pref
 * - Simple counter for statementview's references
 * - Adds setSquidMaxage( 10 ) to Special:EntitiesWithoutLabel
 * - Fix of mixup in signature and call to getResult
 * - (minor) fix show-wikidata-rc preferences message
 * - claimlistview: Correct list member widget error event name
 * - Refactoring of PropertyEditTool's counter into a more generic function
 * - remove ChangeNotifierTest.php, it's just an empty file
 * - Make the pages subclassing from SpecialWikibasePage respect i18n
 * - UI for linking articles to Wikidata items from the client
 * - Add ClaimTest to autoloader, as required by statement tests
 * - Preventing keydown event when disabled
 * - Removing keydown event when stopping edit mode
 * - Improving inputAutoExpand jQuery plugin's compatibility
 * - Improving template engine's compatibility
 * - add/removeListItem functions for wb.listview plus related events
 * - (minor) use CSS3 transformation for toggle icon
 * - Make test providers static
 * - Add ListDatatypes to wikibaserepo group.
 * - jQuery.wikibase.listview.ListItemAdapter value awareness
 * - selenium tests for references
 * - (, 44575) EntityData: filename-like syntax
 * - Limit labels etc to 250 characters.
 * - (hotfix) fixes sitelinks view: added missing return;
 * - hiding all ui-toolbars when not in editView
 * - (minor) using object instead of array for saving revisions
 * - removing experimental flag from statements selenium tests
 * - entity edit buttons not disabled when user has no rights
 * - Statements are no longer an experimental feature
 * - Fix JS error if repoScriptPath or repoUrl settings not defined
 * - More profiling points.
 * - Allows for toggling the 'source' sections of Statements
 * - introduction of wb.utilities.ui.buildToggle
 * - display jQuery.wikibase.snakview's property as link in nonedit mode
 * - introduction of wb.utilities.ui.buildEntityLink
 * - Entity ID is now available in 'id' field in each entity of wb.entities
 * - fix edit links link to include namespace
 * - References css improvement
 * - Selenium tests for claims edit conflicts
 * - Fix WikibaseLib.php in case not loaded in the default environment
 * - Changed ClaimAggregate::getClaims to return Claim[] rather then Claims
 * - fixed assertion violation caused by inconsistent state of Claims object
 * - use map diffing rather then list diffing for claim lists
 * - Fixed test failing after change to reference serialization
 * - added HashArray indicesAreUpToDate and rebuildIndices
 * - Removed reference to ReferenceObject
 * - (minor) referenceview will add 'wb-reference-&lt;hash&gt;' class to root element
 * - Include Wikibase.sql in schema update
 * - (minor) move Wikibase special pages into right group

WikimediaMaintenance

 * - Add the d IW link for wikidata to extra
 * - Bring back wikimedia/chapter even though it's a lie. Broke other wikimedia entries
 * - Remove d and chapter interwiki

WikimediaMessages

 * - Add messages used in the mediawiki.org ExtensionDistributor
 * - Add messages for new user group
 * - Added Wikidata license notice for pop up
 * - : Polish declesion for &quot;Wikipodróże&quot;
 * - Minor capitalisation change to wikimedia-copyrightwarning

ZeroRatedMobileAccess

 * - Add i18n entries for more carriers to Wikipedia Zero
 * - Add a technical README to ZeroRatedMobileAccess, targeted at maintainers

timeline

 * - omit the .ttf extension in default font name