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

 * - style: normalize end of files
 * - New list and table attr. tests based on recent Parsoid bug fixes.
 * - Include Postgres tables and maintenance scripts for Change I23c47c2c
 * - Add column job_attempts and index job_cmd_token_id to PostgreSQL.
 * - [LockManager] Renamed getBucketFromKey -&gt; getBucketFromPath.
 * - [LockManager] Generallized wiki field to a domain field.
 * - Add return to HttpError::getStatusCode.
 * - Profiling for hook calls.
 * - Log profiling info from maintenance scripts.
 * - [LockManager] Split QuorumLockManager into its own file.
 * - [FileBackend] Added more documentation.
 * - Implement deleteEqualMessages.php
 * - [LockManager] Updated DBLockManager for cross-wiki support.
 * - Made nextJobDB.php respect $wgJobTypesExcludedFromDefaultQueue.
 * - Make cats which are redirects italic in category links.
 * - Fixed use of long memcached keys in AllPages.
 * - fix some spacing
 * - Make Sites::singleton actually return a singleton.
 * - Genderize user namespace for 'be' locale
 * - [JobQueue] Re-try jobs that fail normally.
 * - Respect --quiet in mergeMessageFileList.php
 * - -  The return value of realpath should be tested
 * - Installer: Fix double escaping of config-download-localsettings.
 * - Add getters to HttpError, to use it in tests.
 * - Fix double colons in api help output
 * - Better way for extensions to add to ParserOutput.
 * - Make jquery.client recognize Iceweasel
 * - fix hardcoded quote in Special:DoubleRedirects/BrokenRedirects
 * - Make HttpError set actual HTTP error code.
 * - .gitignore Composer related files
 * - Fix invalid link of `others` during installation
 * - Dump unit tests no longer fail if gzip is not available
 * - Sprinkle &lt;code&gt; over some strings for consistency
 * - test: helper to skip tests depending on 'gzip'
 * - raise PHPUnit default timeouts
 * - api: remove duplicate __contruct calls
 * - [FileRepo] Lazy load large metadata from the DB.
 * - [LockManager] Refactoring to allow proper cross-wiki support.
 * - Rename calls to wfArrayToCGI to wfArrayToCgi
 * - [FileRepo] Use getHandler is some places that should use it.
 * - [FileRepo] Lowered negative caching duration.
 * - Use tabs to indent lines
 * - Whitelisting publicly readable title with regex
 * - raise timeout for CdbTest::testCdb
 * - rename vars in SkinTemplate::outputPage
 * - test: some Revision tests depends on PHP zlib ext
 * - testPngNativetZtxt requires zlib extension
 * - test: helper to skip tests depending on a PHP ext
 * - pass codesniffer on tests/
 * - Implement Language::isKnownLanguageTag
 * - [FileBackend] Added duplicate backend check.
 * - Changed Message::content to pass $this to MessageContent.
 * - Drops possessive from watchlist header
 * - Spell checked docs/hooks.txt
 * - Sprinkle &lt;code&gt; over some strings.
 * - Remove obsolete entries in MessagesBh.php
 * - fix some spacing
 * - Let nextJobDB.php narrow down the type based on a set.
 * - Followup Id9f2fea7: Remove wall time restriction for readline.
 * - The use of function sizeof is forbidden; use count instead
 * - fix some spacing
 * - The static declaration must come after the visibility declaration
 * - The final declaration must precede the visibility declaration
 * - The abstract declaration must precede the visibility declaration
 * - fix some spacing
 * - Fixed the usage message text if parameters are missing.
 * - refactor Database::makeSelectOptions
 * - [ExternalStore] Refactored external store classes to use a base class.
 * - Check for existence of the timeout script in ulimit5.sh
 * - Allow '+' in MySQL database names.
 * - $wgContLang global unused in addNewUserLogEntry since b65893755
 * - More tests for mismatched attr quotes + entities in nowiki &amp; pre.
 * - 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
 * - Fix self link issues about titles in different or mixed variants
 * - 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.
 * - : Don't rollback after successful commit
 * - 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
 * - Avoid raw SQL queries in Maintenance::purgeRedundantText
 * - 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
 * -  use real links for search suggestions
 * - 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
 * - Followup I888c616e: Keep IRC line format unchanged.
 * - Followup I888c616e: one more string to localize.
 * - Force case-sensitivity on the LIKE operator, to ensure similar behaviour between MySQL and SQLite
 * - Cleanup to ImagePage::openShowImage
 * - Default to the current year in the history page filter form
 * - 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

AbuseFilter

 * - Add trailing newlines to wikitext before sending for diff
 * - Avoid fatal error for non-text content.
 * - Allow special pages as context for abuse filter.
 * - Added Older and Newer change link to Abusefilter diff
 * - Use Status object to report filter results.
 * - AbuseFilter + EditFilterMergedContent
 * - Fix the abusefilter array parser test

ApiSandbox

 * - use .hasOwnProperty when checking for presence of object keys
 * - Change description for grammar and clarity

ArticleFeedbackv5

 * - cleanup i18n messages
 * - AFTv5 controls not selectable with tab
 * - remove ClickTracking dependency

Babel

 * - Update code formatting

CategoryTree

 * - Do not re-implement http_build_query :-)

CentralAuth

 * - Fixup some old badly built SQL queries

CentralNotice

 * - Next Attempt at CN Namespace Foo

Cite

 * - Adapt the &lt;gallery&gt; parser test for $wgResponsiveImages

DataValues

 * - _getRawValue implementation in commonsMedia widget
 * - &quot;parse&quot; and &quot;afterparse&quot; events for valueview widget
 * - (minor) improved handling of invalid values in valueview Widget
 * - Added missing dependency
 * - Makes eachchange tests fully independent from Wikibase
 * - Moved jquery.eachchange from Wikibase since its needed here
 * - Added TimeValue
 * - Fix extension path
 * - Added test helper method to facilitate valueparsers that have required options
 * - Added extra tests
 * - Killed class I forgot to remove a few weeks ago
 * - Added ValueFormatterOptionsTest
 * - Added tests for set and get option in ValueParserOptions
 * - Added tests for Error objects
 * - ignore covreage of test registration
 * - &quot;change&quot; event for valueview widget
 * - Disable/enable methods for valueview widgets
 * - (minor) more flexible handling of valueview's value updating
 * - (minor) improve destruction of PersistentDomWidget valueviews
 * - (minor) focus/blur on some valueview widgets no longer fails in non-edit mode
 * - Adding eachchange dependency to dataTypes valueview module
 * - Fix test

Diff

 * - Object conversion for diff arrayalisation.
 * - Removed obsolete code
 * - Added tests that check for exceptions being thrown on invalid data
 * - bump version nr
 * - Improve documentation
 * - Don't use strict comparison for objects.
 * - Retain keys in Diff::toArray
 * - Added DiffOpFactory
 * - Added toArray method to DiffOp interface
 * - Added missing @throws tag
 * - Removed obsolete example code
 * - Fixed a bunch of incorrect @since tags
 * - Removed already done todo
 * - Removed deprecated Removed Diff::getApplicableDiff
 * - Use DiffOp rather then IDiffOp
 * - Add deprecation doc
 * - fix doc

DonationInterface

 * - Shunting the final status log line off to a gateway-indifferent syslog bucket of its very own, so we can tail everything at once.
 * - Logging Cleanup: Searched for log lines that deserved to be qualified as LOG_ERR or something more severe, and added what I feel is a vaguely appropriate log level. Added a setting that will, when unset, suppress the avalanche of LOG_DEBUG level statements that we usually don't want. Also some documentation. Gasp.
 * - Let's make Amazon work with the form chooser
 * - Making GatewayFormChooser work
 * - (FR #595) Adyen payment gateway
 * - Readding Exception Details
 * - Abstract out redirect method

E3Experiments

 * - Logging for GettingStarted/GuidedTour split test
 * - Delete space and PHPUnit tests pass!

Echo

 * - Add special page to the &quot;users&quot; section on Special:SpecialPages
 * - Allow events to specify that they should notify the agent.
 * - Using human-friendly relative timestamps rather than absolute timestamps
 * - Update 'cross referenced' to 'linked' for consistency
 * - Putting all the default user options together in the config

EducationProgram

 * - Creating or editing an ambassador profile prompts &quot;leave page&quot; warning
 * - Move description field below title and name fields.
 * - admins who are not campus/online volunteers should not be able to create Ambassador profiles
 * - Fix query error when there no orgs to select on
 * - Prevent fatal error when making a redirect to an education page
 * - experimental composer.json
 * - Add a few profiling calls to SpecialEducationProgram
 * - Remove broken test
 * - rem roadmap
 * - Students table should be included in the Table of Contents on course pages
 * - Fixed var that accidentally got renamed
 * - Fix notice when sysop key does not exist yet
 * - Fixed loading of default course description
 * - added &quot;current and planned&quot; option to the courses pager
 * - Added alias for Special:EducationProgram
 * - : remove the entry field for &quot;real name&quot; when students enroll in a course
 * - : default language for new courses should be the wikis content language
 * - : prevent people from acidentally running testing scripts and thus causing security issues and other badness
 * - Also list planned courses on Special:MyCourses
 * - : show mycourses link for enrollment of any role (not just students)
 * - : Only log edits by students enrolled in a course
 * - : always load needed resources
 * - Move description field to the top of course pages and remove header
 * - * Moved classes into EducationProgram namespace

EventLogging

 * - Re-write of lazy table reflection/generation.
 * - Fix broken test
 * - Fix-ups: correct module refs; timestamp to varchar
 * - Add UUID column &amp; engine-specific table options
 * - Unit tests: test flatten; better layout.
 * - Add unit tests to validate table structure
 * - Make modules target 'mobile'
 * - Database tests and test fixtures
 * - Explicitly UTF-8-encode strings before DB insert
 * - Establish and implement UUID convention for events
 * - Simplify JRM: Remove unused imports; re-write messy funcs.
 * - Relax conditions for inclusion of schema CSS.
 * - Fix-ups to column generation
 * - Adds SQLAlchemy TypeDecorator for MediaWiki Timestamps
 * - JSON-relational mapping. You saw it here first.
 * - Style JSON Schema on preview.
 * - Recursively validate events.
 * - Reject additional properties.
 * - Disallow additional fields in efSchemaValidate
 * - log AccountCreation's returnto &amp; -query params
 * - In server-side code, handle timestamps in ms.
 * - Timestamp in seconds, not ms.
 * - Add `encapsulate` param to get_schema
 * - Improve documentation; add M. Flaschen to authors.
 * - Adds more documentation to Python modules.
 * - json2sql fix-ups
 * - Add script for multiplexing multiple subscribers
 * - Use SCIDs to reference schema.
 * - Catch parse failures in LogParser.parse

FeaturedFeeds

 * - Rename calls to wfArrayToCGI to wfArrayToCgi

FlaggedRevs

 * - Removed references to bogus functions.
 * - Rename calls to wfArrayToCGI to wfArrayToCgi
 * - Avoid showing a page itself in the &quot;changed inclusion&quot; lists.

GettingStarted

 * - Split test for Special:GettingStarted and GuidedTour:
 * - Set master to the equivalent of the 1.21wmf8 deployment branch.
 * - Set gettingstarted tour cookie when they click an article.
 * - Fixes to allow more instant generic use
 * - Fix i18n issues on GettingStarted page tour.
 * - Restyle using Munaf Assaf's CSS and add GuidedTour steps/tour.

LiquidThreads

 * - Fix JSHint quotmark
 * - JSHint: Write some things in dot notation instead
 * - Rename calls to wfArrayToCGI to wfArrayToCgi
 * - Remove unclear unicode art from LQT new message bar
 * - remove unused lqt-quote and lqt-quote-intro messages
 * - JSHint: strict equalities for strings
 * - JSHint: missing curly braces
 * - JSHint: disable 'quotmark' check
 * - JSHint: ignore jquery/jquery.autogrow.js 3rd party
 * - JSHint: .jshintrc from MediaWiki core
 * - - WikiEditor Search and Replace dialog uses a nonexistent message key for &quot;replace next&quot;

Listings

 * - : use mediawiki:listings-template to override formatting

MWSearch

 * - Rename calls to wfArrayToCGI to wfArrayToCgi

Math

 * - JSHint: ignore modules/MathJax

OAI

 * - Rename calls to wfArrayToCGI to wfArrayToCgi

OpenStackManager

 * - Combine netadmin and sysadmin
 * - Set domain explicitly when getting config options
 * - Create default sudo policy for new projects.
 * - Add a checkbox to require sudo passwords.
 * - Use project groups rather than ALL for sudoers.
 * - Slight refactor of projectName handling.
 * - Fix typo

PageTriage

 * - Another userjs- API fix
 * - Fixing PageTriage option setting for list view.
 * - Don't add rationale into the mfd tag
 * - Kill double spaces
 * - Disable reviewing buttons for page creators.
 * - Improve localization in flyout of curation tool.
 * - make 'Pagetriage-tags-tooltip' less negative.
 * - Change the desc message of

PostEdit

 * - Duration of confirmation: 2 -&gt; 3 seconds.
 * - Adjust vertical offset for Monobook
 * - Expand activation area of PostEdit close btn
 * - Show PostEdit on edited page only.
 * - Fix position and size of container

ProofreadPage

 * - Add namespaces for is

Renameuser

 * - Add flag to RenameuserSQL to skip username check

Scribunto

 * - Lua library support functions
 * - Fix package.loaded and other cleanups
 * - Fix LuaStandalone nil handling
 * - Fix unit test parameter order
 * - Support __pairs and __ipairs
 * - Fix reference handling in LuaEnvironmentComparisonTest
 * - Fix string extending
 * - Refactor unit tests

SecurePoll

 * - Hide private data after election
 * - Rename calls to wfArrayToCGI to wfArrayToCgi

TimedMediaHandler

 * - Add support for audio derivatives
 * - Add special page to the &quot;media&quot; section on Special:SpecialPages
 * - Typos: fix browser support punctuation

TorBlock

 * - Added SSL verification when retrieving node list.
 * - Added Onionoo list loader and reorganized functions.
 * - Sanitized coding style and improved documentation.
 * - Put loadExitNodes.php into a Maintenance class.

Translate

 * - Expose mw.translate.getGroup
 * - Show unset as workflow status if no workflow set
 * - Search integration in message table
 * - Ajaxify message filters
 * - We have messages where whitespace is significant
 * - Fetch the workflow states for the group
 * - Get workflow state related information from APIs
 * - Make the inline editor functional
 * - Remove an outdated FIXME
 * - Correct event binding and update api.parse call
 * - Make translatewiki.net's work
 * - Update the group description upon a group change
 * - Show that Special:AggregateGroups is restricted
 * - Create /source-language unit pages for translatable pages
 * - Cleanup Special:PageTranslation more
 * - Use machine translation as translation suggestions
 * - Simplify Special:PageTranslation a bit
 * - experimental composer.json
 * - Make messageListScrollHandler less repetitive and more readable
 * - More space for edit link to take care of languages with long translations
 * - Add ext.translate.messagetable as dependency
 * - Workflow state selector
 * - Remove unneeded text-left classes and RTL hacks
 * - Cleanup
 * - Styling for paste from source actions
 * - Add a class to the paste button and hide it per the spec
 * - Update code formatting
 * - Refactor Translate editor
 * - Add a &quot;Paste original&quot; button
 * - Cleanup whitespace and reduce jQuery calls
 * - Fetch description of message group
 * - Return TUX warnings only on TUX pages
 * - Replace ok and err with .done and .fail in AJAX
 * - Clean up the use of isBeta
 * - Stale state displayed in Special:PageTranslation after (dis|en)couraging
 * - Use mw.Api more consistently and a bit of error handling
 * - Fix the preloading of message details
 * - Collapse same-value translation memory suggestions
 * - A little cleanup
 * - Avoid PHP warning when CDBMessageIndex has only one key
 * - Preload next message while opening a message editor
 * - WIP - Inline message editor on Search page
 * - Whitespace
 * - Change the save button label as per nature of translation
 * - Fix a js error, follow up Ie7aeab2b
 * - Use correct classes for optional, fuzzy, translated messages
 * - Change the URLs as per the group and language change
 * - Ajaxify the group selection and language selection
 * - Pass the current state of message to update the statsbar correctly
 * - Use a single data attribute message for the message items
 * - Link to full-page doc editing
 * - Instantly parse edited documentation
 * - Message documentation language name was always in English
 * - Remove deprecated TMessage::author
 * - Add hook for TranslationAids and small doc tweak
 * - Query recent groups only once per page load
 * - Load all messages from client side on page load
 * - Refactor messagetable
 * - Replace .hide and .show with class 'hide'
 * - Add placeholder message
 * - Disable translation text area when user has no translation rights
 * - Test fixes
 * - Default protwords.txt is useless
 * - Expose all properties via ApiQueryMessageCollection
 * - Remove setInFile calls that should not be used.
 * - Project selector tabs toggle when clicking twice
 * - Fix statsbar update trigger- typo fix
 * - Remove the default filter
 * - Set the direction of source and translation
 * - Cleanup whitespace and remove repeated jQuery calls
 * - Set correct title in the loaded translation editor

TranslationNotifications

 * - experimental composer.json

UniversalLanguageSelector

 * - Incorrect vertical alignment for Telugu web font
 * - Update code formatting
 * - Update to match core changes in Idc11b547
 * - Make disabling input methods work
 * - Update jquery.ime and jquery.webfonts from upstream

UploadWizard

 * - Only enable async if file is larger 10Mb
 * - Cleanup Firefogg integration
 * - Don't show invalid license wrongly
 * - Followup I883f6f44: Use XHTML compliant line break
 * -  Errant line break in &quot;Use a different license option&quot;
 * - Revert &quot;Disabled async publish per logging bug.&quot;
 * - Disabled async publish per logging bug.

UserMerge

 * - Add action-usermerge message

VisualEditor

 * - Fix bug where inline nodes didn't trigger wrapping
 * - Node cleanup
 * - i18n icons
 * - Remove trailing commas
 * - Make JSHint ignore the docs/ directory
 * - Introduce context object in getDataFromDom
 * - Use AnnotationSet rather than array in getDataFromDom
 * - Hybrid-ify MetaBlock/MetaInline
 * - Hybrid-ify AlienBlock/AlienInline
 * - Specify (but do not implement) the context parameter to toDataElement
 * - Fixed documentation warning
 * - Add Iceweasel to supported browsers list
 * - Added tests and fixed inconsistencies for empty text node handling
 * - Automatically prune empty text nodes
 * - Trigger refactor
 * - Added support for passing data into annotation constructors
 * - Add extension-specific types functionality to ModelRegistry
 * - Allow matchTagNames = null in ve.dm.Converter
 * - Added @source links to externals
 * - Add wrapper for Array.prototype.filter
 * - Actually use this.nodeFactory and this.annotationFactory in ve.dm.Converter
 * - Drop name parameter from ModelRegistry.register, use .static.name
 * - Move matching code from AnnotationFactory to ModelRegistry
 * - Fixed documentation errors
 * - Enable VisualEditor in MediaWiki integration for IE 9 and up.
 * - Make defaultAttributes a static property as well
 * - Convert node rules to static properties
 * - Add annotation-like static properties to nodes
 * - Replace nodeFactory invocations with direct static access
 * - Fix naming of phantoms
 * - Add TriggerRegistry to tests
 * - Introduced method replacePhantoms in ve.ce.Surface in order to avoid accessing ve.ce.Surface local variable ($phantoms) from ve.ce.AlienNode
 * - Convert &quot;var\t&quot; to &quot;var &quot;
 * - Fixes for typos and some missing documentation
 * - ImageNode Todos
 * - Add interplatform, i18n shortcuts to ui buttons.
 * - Double spaces optimization
 * - Reorganization of ve.ce.Surface methods
 * - Cleaned up paste target and surface styles
 * - Slug Todos
 * - Fix minor bug (typo - was: ve.ve, is: ve.ce)
 * - Minor cleanup.
 * - Inline ve.dm.Document.offsetContainsAnnotation
 * - Removing alienblock tag
 * - Remove range.normalize (not needed), use range.isCollapsed more often
 * - Major Documentation Cleanup

WikiEditor

 * - experimental composer.json
 * - fix ext.wikiEditor.publish so that it actually works

WikiLove

 * - Fixing WikiLove error handling for post-preview errors

Wikibase

 * - Limit labels etc to 250 characters.
 * - Statements are no longer an experimental feature
 * - Fix JS error if repoScriptPath or repoUrl settings not defined
 * - Make it optional to include claims in diff, saved to changes table
 * - added HashArray indicesAreUpToDate and rebuildIndices
 * - 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
 * - fix edit links link to include namespace
 * - (minor) change message for statementview 'sources' label
 * - removing references is working now
 * - moved claimview claim remove related API interaction in its own fn
 * - JS wb.RepoApi removeReferences
 * - Using trigger to trigger tooltip's afterhide event
 * - editing of existing reference
 * - Cleanup for listview.ListItemAdapter, constructor now expects options
 * - slightly adjustment to tests
 * - css: Correct claim container / statement view bottom padding
 * - Entity selector widget: Set entity when focusing suggestion
 * - Remove unused (and defunc) module ApiSearchByName
 * - Handle invalid values in statements ui
 * - Basic css for statement references
 * - statementview can display and add references now
 * - statementview: counter for number of references
 * - introduction of jQuery.wikibase.statementview
 * - fix refs to Settings class
 * - Entity selector: Option to trigger &quot;select&quot; event
 * - claimlistview can now serve a list of other widgets than claimview
 * - Changed Reference interface and ReferenceObject to just a Reference class
 * - Modified reference serialization to accomodate non-snaks elements such as the reference hash
 * - Minor updates to help URLS to make them correct and consistent
 * - Add needsToken, mustBePosted and isWriteMode
 * - reference related bugfix in wb.Claim.newFromJSON
 * - ReferencedEntitiesFinder::findClaimLinks aware about Statements now
 * - extend repoApi to support editing existing references
 * - repo API module for adding a reference
 * - introduction of wb.SnakList, a list containing a set of Snaks
 * - Add new _postAndPromiseWithAbstraction to repo API
 * - minor cleanup and optimization in repo API
 * - Change comments to avoid failures during test
 * - fixed SnakListTest::testToArrayRoundtrip
 * - up rel notes
 * - Added links to referenced entities in pagelinks table
 * - Fix exists check, array elements can be null
 * - fix type hint
 * - (testing) added selenium test for setAliases special page
 * - add bunch of profiling points for LangLinkHandler
 * - Fix name of dataproviders
 * - (testing) added Selenium tests for setDescription special page
 * - (hotfix) fixing SetLabel Selenium tests after refactoring
 * - Move jquery.eachchange to DataTypes since code there needs it
 * - minor fix at checkKey function
 * - Added special pages to special page group
 * - ( - ) New Special Pages to edit entities without javascript
 * - (minor) some documentation updates in old JS UI components
 * - (minor) added some documentation for SiteLinkEditTool + minor cleanup
 * - (minor) fix against crashes during certain console/debugging operations
 * - Add a plural message to avoid confusion
 * - Display error when site API not accessible
 * - Option to lock snakview elements
 * - (hotfix) fixing calls of Sites::singleton in ClientChangeHandler
 * - Fix populateSitesTable, use new SiteSQLStore class.
 * - Use wikibase- as prefix for all messages
 * - Updated entity id parser implementation
 * - Add some tests for ChangeNotificationJob.
 * - Correct SiteLinksEditTool table fixation
 * - Mark ChangesTable testSaveSelectCountAndDelete as skipped on Wikibase Client
 * - Make use of new sites code in core
 * - (minor) adjusting client selenium tests for dispatcher script
 * - wikibase.RepoApiError QUnit tests
 * - Making wb.Tooltip use wb.RepoApiError instead of custom object
 * - Using RepoApiError in EditableValue
 * - New RepoApiError constructor handling wikibase API errors
 * - add $wgContentHandlerUseDB = true; to example settings
 * - terms search key schema update for sqlite
 * - Updated site link table fixation for IE
 * - (hotfix) fixing entitieswithoutlabel-test in chrome
 * - (testing) selenium tests for label/description/aliases length constraints
 * - (hotfix) wrong order of parameters in messages
 * - (minor) selenium: only run client qunit tests on client
 * - (hotfix) fix to selenium protected page object
 * - Specify options for entityidparser that have all required fields set
 * - Added doc to apisetreference
 * - Provide text for filtering to AbuseFilter.
 * - (minor) moved jQuery.TemplatedWidget template related fields into options
 * - Introduce wb.RepoApi which queries the repo independent from the current wiki
 * - Moving baseclasses and preparing for reuse
 * - (minor) Add group medium to a test that otherwise complains
 * - merge runs of changes for RC.
 * - Replace toolbar with message while saving/removing
 * - display labels and descriptions in user languages
 * - (minor) optimization of claimview error handling
 * - Checking on initial snak when drawing property
 * - Trigger claimview widget's error handling out of claimlistview
 * - display labels and descriptions in user languages
 * - (hot fix) fixes broken 'add' button introduced in I14e89ecc
 * - (minor) stick closer to jQuery.Widget implementation of snakview disable/enable
 * - Simpler implementation of disable for SnakTypeSelector
 * - Honor $wgSend404Code for missing entities.
 * - docs++
 * - fix error in test (not spotted so far because test is not run on mysql installs)
 * - fix test failing on sqlite
 * - Added asserts in methods otherwise not performing any tests
 * - Rem test that fails on some setups
 * - Remove Statement interface and rename StatementObject to Statement
 * - (minor) fix for calling options in Widgets based on TemplatedWidget
 * - Disable input element and toolbar on saving/removing
 * - Define EntityChange::__toString
 * - (testing) snaktype selector seleneium tests
 * - (testing) method to exclude certain browsers in selenium tests
 * - Remove Claim interface and rename ClaimObject to Claim
 * - added selenium tests for localizing numbers
 * - claimview widget: Attach to valueview widget's change event
 * - Added Claims::getDiff tests
 * - Improved snakview error handling
 * - (minor) remove check for user.isAnon. Should always be set now
 * - Localized numbers in WikiBase js
 * - (testing) removing workarounds for in selenium tests
 * - (minor) cleanup of lib resources
 * - Added TODO in diff visualizer to prevent notices when visualizing diffs containing claims
 * - fix error detection in createclaim api
 * - Added claims to entity patching
 * - 'wikibase-item' data type now uses 'wikibase-entityid' data value
 * - Fix ExternalRecentChange::getParam
 * - add --max-time param to dispatchChanges
 * - Added claims diffing and added this to entitydiff
 * - Re-apply &quot;Added EntityId and EntityIdParser in JS&quot;
 * - (hotfix) selenium sitelinks tests fix
 * - selenium tests for statements UI errorhandling
 * - Corrected checks of emptiness of labels and descriptions
 * - (minor) snakview value didn't update view in all cases
 * - Claimview/Claimlistview: Set tooltip before setting error class
 * - Entity selector: Show id when focusing an entity without a label
 * - Entity selector: Check for entity id when validating input
 * - Making remove button state changeable
 * - rem unused use statements
 * - Adding mediawiki.user dependency to entityViewInit
 * - Special page group for Wikibase repo
 * - (minor) remember each variation's value when switching variation + re-use it
 * - (minor) in snakview, only show snak type selector if property is chosen
 * - Handling of changed data types
 * - Moving snak type selector to left of the value input
 * - Custom object constructor for templates
 * - A small addition about the database user login
 * - testing 0 as value for label/description/aliases
 * - ResourceLoader modules dependency clean-up
 * - use prefixed text for title when adding edit link
 * - check rc_params is array in client
 * - Entity selector: Setting entity on mousedown event
 * - suggester widget: Replace input value with suggestion list item
 * - (minor) workaround for failing qunit tests in firefox
 * - Show Git hash in Special:Version
 * - Prevent entity selector widget from resetting entity
 * - Only adapt first letter in AutocompleteInterface
 * - suggester jQuery widget: Option to adapt letter case
 * - (minor) proper destruction of certain snakview variations
 * - Revert &quot;Added EntityId and EntityIdParser in JS&quot;
 * - adjust watchlist query to use rc_this_oldid=page_latest
 * - make changes line hook more backwards compatible
 * - Added EntityId and EntityIdParser in JS
 * - (minor) re-organized 'jquery.wikibase.snakview' resource loader module

WikimediaMaintenance

 * - Change script for creating translate tables to more generic

WikimediaMessages

 * - Followup I6cddbdc6: Use protocol relative for creativecommons.org
 * - Add Wikidata license terms

ZeroRatedMobileAccess

 * - Add XL Axiata to i18n file for translatewiki to pick up
 * - fix missing variable

cldr

 * - experimental composer.json
 * - Add English local name for nds-nl

timeline

 * - fixes for install-ploticus.sh
 * - consistently use &lt;div class=&quot;error&quot;&gt; for user-visible errors