MediaWiki 1.21/wmf3

Deployment of MediaWiki 1.21wmf3 to Wikimedia sites
The latest version (labeled "1.21wmf3 ") of MediaWiki, the software that powers Wikipedia and its sister sites, will soon be deployed to all Wikimedia sites in stages.

Deployment will start on Monday, October 29 and continue until Wednesday, November 7 (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.

The biggest changes

 * 1) ResourceLoader integration into MobileFrontend now enabled (discussion on wikitech-l).

Core changes

 * - Update WikimediaMaintenance
 * - $.tablesorter fix when wgDefaultDateFormat is unrecognized
 * - Update VisualEditor to pick up 3502144
 * - Fix regression in API edit of redirect
 * - * Follow-up I551a90b0 (c2172d4): fix fatal error in PoolWorkArticleView::doWork
 * - Follow-up I551a90b0 (c2172d4): add one more check for null content
 * - Beware that getContent may return null
 * - Added GET profiling to pecl memcached (like the PHP one has).
 * - Add UserMerge
 * - Move PageContentLanguage hook to Content class
 * - Add 10 new wikivoyage related extensions
 * - Supply Title object to Revision if possible.
 * - Fix undelete.
 * - [JobQueue] Fixed while loop in claimOldest function.
 * - [JobQueue] Reduced deadlocks in claim function.
 * - Update branch
 * - Fixed nextJobDB.php to handle recent job queue changes.
 * - Fix handling of prot-rel URLs in SiteObject.
 * - [JobQueue] Make use of the isEmpty function caching in pop.
 * - Revert 1.21wmf3 to the state of 1.21wmf2
 * - Tone down sanity check, just warn, don't die.
 * - Update VisualEditor
 * - (Big 41436) Make sure Revision knows page Title.
 * - Add PostEdit and EventLogging
 * - Re-add Wikidata related extensions to 1.21wmf3 due to being missing from make-wmf-branch
 * - Symlink README.mediawiki to README so Github renders it as wikitext.
 * - Add the page content language to the page information
 * - Add GENDER support to Special:EmailUser
 * - Stash global only once per test case.
 * - tests: rm duplicate code in language classes
 * - Preemptively add image-set to our sanitizer.
 * - Option to use group members on Special:UserRights
 * - Cache the result of User::getDefaultOptions
 * - Implement Special:Version/Credits
 * - Link in password reset is broken
 * - PHP Fatal error: Cannot break/continue 2 levels in maintenance/runJobs.php on line 94
 * - Fix unmatched profiling calls
 * - rm unused $egWBRemoteTitleNormalization var from MediaWikiSite.php
 * - A little cleanup in gender
 * - Avoid duplicate &quot;null&quot; change journal entries.
 * - The class is named Revision, no need to shout its name :) Remove a couple of unused globals.
 * - Set be as fallback language for be-tarask.
 * - document Skin::buildSidebar per own experience
 * - fix sidebar HTML escaping in CologneBlue (again)
 * - Minor documentation fix.
 * - Rewritten $wgAdaptiveMessageCache
 * - Fix tabs inside/between statements/text
 * - Fix indentation whitespace errors
 * - Fix rc_logid in RecentChange::loadFromCurRow
 * - re-apply I9a56b7c6, Don't parse the section's name in the summary
 * - raise timeout for UserTest::testEditCount
 * - [FileBackend] More improvements to README file.
 * - Fix regression in diffs while editing old revisions
 * - Fix warnings and enforce conventions in ContentHandler tests.
 * - Move cache purging out of doUpdates
 * - [JobQueue] Added support for approximate FIFO job queues.
 * - : Handle optionally-closed HTML tags
 * - add some brackets in RecentChange.php
 * - Seems we have error conditions where fa_storage_key == ''
 * - fix code style violations in RecentChange.php
 * - sql.php in interactive no more exit on DBerror
 * - alter sql.php prompt on line continuation
 * - sql.php with readline eats semicolon
 * - accessor for database delimiter
 * - Revert &quot;Function for &quot;pretty timestamps&quot; that are human readable and understandable.&quot;
 * - deprecate make(Known?)LinkObj methods
 * - Make action=query&amp;list=users use User::getRights
 * - revert gerrit change 29597 for TextContent constructor
 * - restore pre-ContentHandler version of mergeChangesInto
 * - [JobQueue] README file for job queue classes.
 * - Add additional job columns to PostgreSQL as well.
 * - mediawiki.searchSuggest: Reorder code + fix selectors
 * - Some minor fixes to README file.
 * - partial fix: re-apply Id4d5504a
 * - Use ParserOptions::newFromUserAndLang in tests
 * - partial fix: re-applying Id7b331e1b
 * - partial fix: re-apply I9441a277
 * - Correct documentation for EditFilter hook parameter
 * - Consistency tweak: Monobook -&gt; MonoBook
 * - Swap isSpecialPage for canExist
 * - Detect CSV/array values in $_SERVER['REMOTE_ADDR'].
 * - tests: always call parent setUp
 * - Additional parser tests to spec parser behavior and test Parsoid.
 * - Localize parentheses in Linker::formatTemplates
 * - Moved core Job classes under includes/job/jobs.
 * - Removed reference to * from docs.
 * - fix sidebar HTML escaping in CologneBlue
 * - [FileBackend] Give warnings when metadata is missing from swift.
 * - Use Html class instead of Xml where possible in Special:Contributions
 * - [FileBackend] Created README file for the file backend classes.
 * - miscellaneous doxygen warnings
 * - doxygen now recognizes README and .txt files
 * - Remove duplicate files, no point in loading them twice
 * - CologneBlue rewrite: fix talkLink to use generic nav links
 * - Cache performer of a LogEntry to load it only once from the database
 * - RecentChangesLinked: 'tagfilter' option already set in parent
 * - When deleting old thumbnails, actually increment $i
 * - Remove float from config-settings-block
 * - add comments about the purpose of skins/common/common*.css files
 * - Setting $wgContLang without changing $wgLanguageCode accordingly is a very bad idea.
 * - Remove a bunch of trailing spaces and unneeded newlines
 * - Remove a bunch of trailing spaces and unneeded newlines
 * - Add filearchive.fa_sha1 to PostgreSQL as well.
 * - - api prop=imageinfo broken on PHP 5.4
 * - getParamValue defaults to current page only if url undefined
 * - Add additional specs + Parsoid-centric tests to keep Parsoid in line.
 * - Remove a bunch of trailing spaces and unneeded newlines
 * - Remove a bunch of trailing spaces and unneeded newlines
 * - Revert &quot;Revert &quot;Show a &quot;(blocked)&quot; hint on Special:ListUsers/ActiveUsers&quot;&quot;
 * - Icon for PSD (Adobe Photoshop) file types.
 * - Add some debug logging to ContentHandler
 * - Release note for ApiQueryORM class
 * - Revert excessive indenting from 28433
 * - Protect against Xdebug overloading var_dump.
 * - Updated release notes for job queue refactoring.
 * - Removed outdated FileRepo docs.
 * - Add id to the toolbox page info link
 * - [] Record links on CSS/JS pages in the DB.
 * - Fixup some returns, documentation
 * - Refactor User::edits and User::incEditCount
 * - Unit test for User::getEditCount
 * - Work in progress on ResourceLoader mobilification
 * - reinstating Change Ifb1f6125...
 * - Deprecate static User::edits in favour of User::getEditCount
 * - Show cascading protection info on action=info
 * - Follow-up I186669a5 (4b62b03): reorder hooks alphabetically
 * - Fixup some method documentation return types
 * - Followup I15843fab: don't show &amp;page=1 in file link
 * - [JobQueue] Fixed misuse of array type cast.
 * - Set $wgContentHandlerUseDB to false by default for now
 * - [FileBackend] Added more tests and fixed some local copy/reference bugs.
 * - Minor action=info redirect changes
 * - sort method for jquery.tablesorter
 * - [JobQueue] Added type-guard checks to JobQueueGroup::push.
 * - Fixed dependencies for jquery.collapsibleTabs
 * - [JobQueue] Added more b/c wrapper functions.
 * - Warn when flushing inside an explicit transaction.
 * - Fix various boundary cases in IcuCollation::findLowerBound
 * - Fixed the caching of redirects in Squid
 * - Moved ContentHandler deriving classes into their own files for better discoverability and more manageable line count per file
 * - Added a pile of missing docs and fixed a few incorrect ones
 * - Added docu headers to content(handler) files
 * - update @since tags
 * - Tweaked code comment from 557a68838c594ea98bd233f6cc05ff44d80e901e
 * - Added MAX_JOB_RANDOM constant and replace one bad instance.
 * - [FileBackend] Added chaining ability to some TempFSFile methods.
 * - Adding a base query API module that allows very easily creating query modules for tables that have an associated ORMTable class
 * - Use 'flush' flag to end automatic transactions.
 * - Fix typo in contenthandler documentation
 * - Reject invalid titles as sitelinks
 * - [JobQueue] Job queue refactoring and generalizing.
 * - Added ugly nesting and template interaction tests (to stress Parsoid).
 * - restore wgDebugTimestamps in testDebugFunctionTest
 * - Remove unused 'qbpageinfo'
 * - Avoid using $wgUser in TitlePermissionTest
 * - On action=info show where this page redirects to and whether it's a content page or not.
 * - SI standards for time units
 * - Fix MediaWiki:Continue-editing
 * - Stop php strict error warnings from MemcachedClient::_flush_read_buffer
 * - Fix RevisionStorageTest with non-wikitext NS_MAIN
 * - Fixing dump tests for non-wikitext in NS_MAIN.
 * - Function for &quot;pretty timestamps&quot; that are human readable and understandable.
 * - Use Linker::link instead of Linker::linkKnown when having options
 * - fix fatal error in HttpTest
 * - [FileBackend] Added tiny getContainerStoragePath convenience function.
 * - Removed READ_LATEST default from Revision::newFromTitle.
 * - define RC_EXTERNAL type for recent changes
 * - Replaced some !count with explicit and more efficient check
 * - don't overwrite $item['single-id'] in makeListItem in SkinTemplate

AbuseFilter

 * - Don't revert global log actions

ArticleFeedback

 * - Add plural for 'articlefeedback-report-ratings'
 * - Like 24325, disable click tracking. Blame Ori for this change too ;)
 * - Remove empty ext.articleFeedback.dashboard.js

Babel

 * - Fix docs
 * - HTML5 compliant Babel code.

Calendar

 * Newly deployed extension

CentralAuth

 * - Attmepted fix for - Unable to edit wikisets
 * - Document that centralauth-block-already-locked supports gender
 * - Change centralauth-block-already-locked message to include Special:CentralAuth link
 * - Show a note at Special:Block when the user is globally locked.
 * - Disable editing for non-global accounts

CentralNotice

 * - Fixing CentralNotice
 * - Track how many banners have been seen
 * - CentralNotice bugfix for Bugzilla #41862
 * - Country, Language, Project to all RecordImpression Calls
 * - Removal of CN API Caching
 * - Use geoiplookup.wikimedia.org for IPv6 users (client-side version)
 * - Adding WikiVoyage and WikiData to CN Projects

Cite

 * - Removing obsoleted system message
 * - Cite anchors should be numbered starting at 1

Collection

 * - Fix Special:Books and load book content again
 * - - Missing argument 1 for wfAjaxCollectionGetPopupData
 * - Revert &quot;Revert &quot;Follow-up Ia01c9da5: Fix many escaping issues.&quot;&quot;
 * - Revert &quot;Revert &quot;Collection maintenance.&quot;&quot;
 * - Revert &quot;Fix revert artefact&quot;
 * - Fix revert artefact
 * - Revert &quot;Collection maintenance.&quot;
 * - Revert &quot;Follow-up Ia01c9da5: Fix many escaping issues.&quot;
 * - - Collection: Invalid argument supplied for foreach
 * - PHP fatal error in /usr/local/apache/common-local/php-1.21wmf1/extensions/Collection/Collection.templates.php line 351: Call to undefined function number_format_Render
 * - - Collection array_push expects parameter 1 to be array, null given
 * - - Collection.templates Call to a member function getFullURL on a non-object
 * - Follow-up Ia01c9da5: Fix many escaping issues.
 * - - Collection: Call to a member function getDBkey on a non-object
 * - Fix for Call to a member function getTimestamp on a non-object
 * - - Collection: Call to undefined method WikiPage::getOldID
 * - Use $wgExtensionAssetsPath instead of $wgScriptPath for the URL path to the extension.
 * - Collection maintenance.

ConfirmEdit

 * - Ensure a session is created when necessary for Captcha

CreditsSource

 * Newly deployed extension

CustomData

 * Newly deployed extension

DonationInterface

 * - Adding the AUTHENTICATIONINDICATOR node to all GC transactions, and defaulting to '0' as per their new instructions.
 * - Readding statics in setNormalizedOrderIDs
 * - Changing our not-so-random random number generator to a different random, and a minor bug fix.
 * - Absolute madness.
 * - Changing the way we do order ID generation, and the ways we can do it in the future.
 * - Cleaning up the new log line on end of transaction, and a lot of bugs I found looking at the output after the first pass.
 * - Fixing a typo that was filling up my php error log.
 * - Adding a final donation status log line, and fixing a couple minor bugs that this surfaced
 * - Removing opt-opt hidden field from the rest of the forms.
 * - Removing opt-out field. One form only for now.

DoubleWiki

 * - Pages with multi-wiki content haven't to be indexed by search engines.

E3Experiments

 * - Send down wgEditCount for logged-in users
 * - Per Maryana's request, log all visits to community portal
 * - Fix-up of OpenTask Experiment
 * - Enable EventLogging for OpenTask
 * - Add interactive validation of form fields

Echo

 * - $language-&gt;prettyTimestamp is expecting 3 arguments
 * - Fix a couple of email parameter issues.
 * - Fix a typo in array key
 * - Create special page aliases file
 * - syncing params between child and parent methods
 * - Add some useful hooks to Echo extension

EditPageTracking

 * - Normalize i18n file.

EducationProgram

 * - Drop &quot;My&quot; from &quot;My courses&quot; toplink
 * - Fix add/remove groups for sysops
 * - Fixed getArticleContent method to be compatible with ContentHandler
 * - Use short form for reason.
 * - Remove dead code
 * - Allow admins to assign and revoke EP rights
 * - Renamed groups based on request by sage ross

EventLogging

 * - Change 'optional' =&gt; 'required'; drop MAX url check
 * - Declare jquery.json as a dependency
 * - Not actually a dependency.

FlaggedRevs

 * - No longer in svn
 * - Normalize i18n files.
 * - Fix lack of parsing 'revert page back to' message on rejection confirmation page
 * - Fix stability log escaping HTML links to pages
 * - Track logged-in user stats internally (not shown yet).

GeoCrumbs

 * Newly deployed extension

GoogleNewsSitemap

 * - Normalize i18n file.

Insider

 * Newly deployed extension

LiquidThreads

 * - Set new messages css/js to top loading
 * - Add profiling for Threads::synchroniseArticleData
 * - Updated onLoadExtensionSchemaUpdates code

Listings

 * Newly deployed extension

MapSources

 * Newly deployed extension

Math

 * - Fixed file mode setting.

Narayam

 * - Remove useless array
 * - Fix Add Javanese transliteration map
 * - Enable Narayam on am.wikipedia

NewUserMessage

 * - More maintenance for NewUserMessage extension.

Nuke

 * - Use strict, add semi-colon and reformat code
 * - Add explicit GENDER support for all relevant messages.

ProofreadPage

 * - Add namespaces for frr.
 * - Fix a confusion in namespaces of br Wikisource: Author namespace where confused with index namespace.
 * - Add namespaces for Welsh
 * - Add namespaces for ca
 * - Fix a small bug in the new configuration system.
 * - Create index and page namespaces automatically if not set
 * - Rewriting of Index pages edit form in PHP
 * - Make the link to the image works with Tiff files.

RSS

 * - Normalize i18n file.

ReaderFeedback

 * - Fix fatal: $skin is not a Skin, but a SkinTemplate
 * - Catchable fatal error: Argument 1 passed to ReaderFeedbackHooks::ratingToolboxLink must be an instance of Skin, instance of VectorTemplate given in /usr/local/apache/common-local/php-1.21wmf3/extensions/ReaderFeedback/ReaderFeedback.hooks.php on line 178
 * - Normalize i18n file
 * - Maintenance for ReaderFeedback extension.

RelatedArticles

 * Newly deployed extension

RelatedSites

 * Newly deployed extension

Renameuser

 * - Use short form for reason.

SiteMatrix

 * - add wikivoyage
 * - don't act up on new dblist entries

SwiftCloudFiles

 * - - Allow X-Content-Duration to be set
 * - Broke up some long lines.
 * - Cleaned up metadata normalization issues.

TimedMediaHandler

 * - - s/mw.getConfig/mw.config.get/g
 * - don't follow # links
 * - - extract thumbs via http
 * - - escape filename in url
 * - Use bits cortado url for commons videos
 * - check for derivatives for shared files
 * - Parse timedmedia-subtitle-new-desc
 * - Add action-transcode-status message, shown when the user can't view Special:TimedMediaHandler
 * - Show an error on Special:TimedMediaHandler when the user doesn't have permission to see anything
 * - Remove duplicate array keys/messages from en
 * - Create special page aliases file
 * - - TMH: Call to a member function isLocal on a non-object
 * - fix for I1f31b5e903fa9caf4a27c1ce384fb6c450a15f2c
 * - fixed iframe embed controls, by updating position of videoHolder to relative
 * - allow float values as thumbtime
 * - Add messages for new user rights
 * - -- don't follow # link for select player
 * - prefixed table name with mw-filepage
 * - -- select wgUserLanguage by default
 * - Use builder for SrtHTML
 * - : 0 is a valid thumbtime
 * - fixes gallery boxed display of tall videos
 * - Fix php fatals and warnings
 * - Reduce queries inside of foreach loops
 * - remove transition workaround
 * - Related to, index transcode_key
 * - add option to disable TimedText
 * - one more variable issue
 * - fix db variable name
 * - check for double inserts after adding transcode
 * - avoid race condition creating two transcode jobs
 * - Revert &quot; - only define TimedText conditionally&quot;
 * - - only define TimedText conditionally
 * - fixes iframe urls for multiple players
 * - get transcode status from masterdb
 * - Fixes against .plainlinks a{ !important } css rule
 * - display formated time for transcoding errors
 * - output more information for failed encodes
 * - check if ogg files has streams before using them
 * - Allow transcoding processes to use more ram
 * - include more info in error if avconv fails

TitleBlacklist

 * - Fixing several issues with the titleblacklist API
 * - Parse the unacceptable new account name/move messages

TocTree

 * Newly deployed extension

Translate

 * - Avoid fatal errors with empty aggregate groups
 * - Work on ApiTranslationReview
 * - These tests are timeouting in jenkins regularly
 * - Get rid of lots of deprecated code
 * - Undefined $item
 * - Typofix
 * - Add Yandex Translation Helper support.
 * - Follow-up I6f93083e: Correct variable names and types
 * - Flesh out some method parameter type documentation
 * - Sort order of statstables is now included in the url
 * - Profile the HTTP calls made to external services
 * - Document SingleFileBasedMessageGroup properly
 * - Increase timeout for tests
 * - Reduce queries in WorkflowStatesMessageGroup
 * - Reduce database queries in WikiPageMessageGroup
 * - Reduce database queries
 * - Stop passing file contents to collections...
 * - Optimization to message table
 * - More profiling
 * - Little bit more info in debugging messages
 * - Various optimizations and fixes for (proofreading OOM)
 * - Timeout when trying to move a translatable page
 * - Also profile the store part
 * - Added tests to database fuzzy marker updates
 * - Provide context to getDescription in few places
 * - Hardcoded paths in PremadeMediawikiExtensionsGroups
 * - Introduce $context param to label and desc of message groups
 * - Desc messages not displayed for MediaWikiExtensionFFS
 * - Filter ignored messages on export
 * - Revert &quot;Revert &quot;Small performance improvement&quot;&quot;
 * - Revert &quot;Small performance improvement&quot;
 * - Small performance improvement
 * - Sort dropdown items on Special:AggregateGroups
 * - MediaWikiExtensionFFS and related changes
 * - Removing now unused script
 * - Undefined variable useCtxtAsKey
 * - Infinite loop in MediaWikiMessageChecker
 * - Prevent page scrolling when adding new groups
 * - Cleanups
 * - Special:AggregateGroups does nothing
 * - Clear any floats before the table
 * - Cleanup MessageIndexTest
 * - Added framework for key generation algorithms in GettextFFS
 * - Narayam integration with editors
 * - Lots of work on tests
 * - Only add instances of FileBasedMessageGroup
 * - Add 'translate-group-desc-frontlinesms'.
 * - Add option 'group' to processMessageChanges.php.

UniversalLanguageSelector

 * - Fix to reduce the ammount of settings text
 * - Update jquery.ime from upstream
 * - CSS fix for settings styling
 * - Fix a syntax error
 * - Option for disabling the IME system
 * - Update jquery.ime from upstream
 * - i18n for input method settings
 * - Update jquery.ime from upstream
 * - Avoid 404s in non-localized locales
 * - Add a more settings link instead of the help link
 * - Update jquery.ime from upstream
 * - Bring fix from upstream
 * - Update jquery.ime from upstream
 * - Move the IME customization code out of document.ready
 * - Cleanup
 * - Remove unused settingspanel.js
 * - Callback for preference save action is optional
 * - Save the ime preference when disabled
 * - Guard for web execution
 * - Show languages with Input methods in the language selector
 * - Update jquery.ime from upstream and a fix in default preferences
 * - CSS, tooltip fixes for the more button in IME selector menu.
 * - Refactor font selector creation code
 * - Avoid lazyloading when used for input method language selection.
 * - Update jquery.uls from upstream
 * - Input method integration with ULS
 * - Make the setting item toggle on click

UploadWizard

 * - Add GENDER support to upwiz-deeds-macro-prompt
 * - Black frame in UploadWizard
 * - Tweak some messages.
 * - Removing obsolete system message
 * - Dont use unicode characters in temorary name
 * - Check for completeness in confirmCloseWindow

UserMerge

 * Newly deployed extension

Vector

 * - Adjust right side alignment of insertChars container on editPage.
 * - Alignment for editOptions and insertChars when WikiEditor enabled
 * - fix indenting in footerCleanup.js
 * - Align edit options with text area

VisualEditor

 * - Also increase the server-side timeout to 100s
 * - Disable Table Editing
 * - Remove use of the Feedback tool for December release
 * - We'll want a 100s timeout, not 10s
 * - Ignore hidden-ness of visualeditor-enable preference
 * - Temporary quick fix for BugId 41223. It is just for release purpose and I will keep working on solid solution.
 * - Rewrite ve-parsoid API module
 * - Support for node HTML attributes
 * - Display overlay phantoms for inline blocks (no need to use shields).
 * - Alien Phantoms
 * - Disable change marking by default
 * - &lt;br&gt; isn't a block element
 * - Add support for adding outer length in ve.ce offset getters
 * - Nicely highlightable alien nodes
 * - Fix for ve.ce.BranchNode.setupSlugs - insert each slug only once
 * - Fix JS error in unlisting
 * - Add basic support for about groups
 * - Added some more key bindings for IE and Mozilla support
 * - Mapped tab key to indentation action
 * - Refactored commands into a registry
 * - Replaced command factory with new command class
 * - Fixing native selection rendering for floats
 * - Make the save button available immediately for oldid pages
 * - Made commandFactory tests not break anymore
 * - Flag pre nodes as having significant whitespace
 * - Made jquery.multiSuggest it's own RL module
 * - Removed introduction of global variable
 * - Fixed line-height variations between sa and mw integrations
 * - Add change marking for Parsoid's benefit
 * - Styling aliens with a yellow background; preventing absolute positioning
 * - Fixed font-size issues for monobook integration
 * - Improved the responsiveness of the context menu
 * - Integration revamp for December release
 * - Removed ve.init's dependencies on ve.ui styles
 * - Introduce meta-linmod
 * - Base for inspectors &amp; context menu to operate on 0 length selection.
 * - Cleanup tool API
 * - Fix ve.batchSplice to behave in line with docs
 * - Fix copyObject/copyArray behavior with null values
 * - Add InspectorFactory to tests
 * - Fix bug where link inspector / context overlay would no longer show.
 * - (bug #41434) Converting format across 2 lists with paragraphs in between fail
 * - Really properly initialize static member before adding stuff to it
 * - Properly initialize static member before adding stuff to it
 * - Add commands to ve.Surface
 * - Tools changes
 * - UI context reorganization, inspector rewrite, iframe refactor, icon generalization
 * - Add ve.Action, ve.ActionFactory, subclasses
 * - Add ve.dm.Surface.has{Past,Future}State, add docs
 * - Add ve.dm.Node.hasAttributes
 * - Add ve.dm.Node.hasMatchingAncestor
 * - Trying to edit a blank page fails
 * - Add ve.dm.SurfaceFragment.getAnnotations
 * - Whitespace and comment cleanup on ve.ce.SurfaceObserver
 * - Test: Enforce # of expected assertions.
 * - Fix JS error in ve.setProp
 * - Fix number of doc sync tests
 * - DocumentSynchronizer fix and cleanup
 * - Actually use nodeOuterRange, selectNodes has provided this forever
 * - Reorganize text-only replacement detection
 * - Guard transactions against double commit/rollback
 * - No longer copy data in ve.dm.Document constructor
 * - Remove 'internal' property from DM nodes
 * - Fix annotation object creation in SurfaceFragment
 * - Documentation fixes
 * - ve.ui.CommandFactory: Initial implementation
 * - Standards: Fix global variables and pass JSHint.
 * - Upstream: jQuery 1.8.2, QUnit 1.10.0.
 * - Rename property &quot;timeout&quot; to &quot;timeoutId&quot; - more descriptive.
 * - Removed htmlTagName and htmlAttributes from hash
 * - Add parentOuterRange to selectNodes output
 * - Make the debug tool (Dump all data) compatible with ve.AnnotationsSet (instead of array)
 * - Do reference comparison in selectNodes tests and fix test data
 * - Add ve.setProp
 * - Add missing var statement
 * - Fixing large content copy and paste from external source for Firefox/Windows
 * - Fix for native deletion - it was breaking document (model and view) when deleting really fast (holding the key for example). This solution completely fix the problem, however it is not optimal - stop and start is called more often than should be.
 * - Fix selectNodes bug reported by Inez
 * - &quot;Is there data?&quot; a.k.a. Insert data only if there is a data to be inserted.
 * - Fix bug in ve.ce.BrancNode.setupSlugs. It was removing slugs from the DOM, but not from the internal (this.slugs) collection, so getSlugAtOffset was returning incorrect information.
 * - Wrap inline elements properly
 * - Fixing location of ve.ce.CenterNode.js and adding comma between variable declarations
 * - Missing coma. Who knows how it happened...
 * - Whitespace and comment cleanup for dm annotation classes
 * - When getOffset is called for a slug offset there is no need to traverse DOM - we can simply just call getSlugAtOffset and use that information.
 * - Fixing cut
 * - Fix path issues with missing files, inconsistent subset in demo, test &amp; mediawiki.
 * - Get annotations from first character of a range
 * - Fix exception when deleting all text (Ctrl+A Backspace)
 * - Fix JS error in DocumentSynchronizer when adding to an empty document

WebFonts

 * - add Amiri for ar, too

WikiEditor

 * - Enabling editors to distinguish dashes in the WikiEditor

WikiLove

 * - Correcting object name in comments

Wikibase

 * - disable onPageContentLanguage hook in wmfphase1beta deployment branch
 * - Fix trx related error
 * - Introducing maintenance/populateSitesTable.php
 * - Point .gitreview at the correct branch
 * - Create option to disable wb_changes table
 * - Added script to import blacklisted items

WikimediaIncubator

 * - Reword the message to tell the user about the multilingual projects.
 * - Add Wikidata to the list of multilingual projects.
 * - Add support for Wikivoyage (cont'd)
 * - Remove redundant logo messages
 * - Adding support for Wikivoyage test projects on Incubator

WikimediaMaintenance

 * - Fix ipb_range_start and ipb_range_end sizes
 * - y -&gt; voy
 * - Use voy for wikivoyage NOT y
 * - removes jobs-loop.sh now provided by puppet
 * - Handle content newlines in the log dumps.
 * - Add CreditsSource to wikivoyage section
 * - Changed logfile param to logdir.
 * - Adding wikidata.org to global interwiki map (d: prefix)
 * - Adding support for Wikivoyage wikis.
 * - wikidata.org interwikis are now considered local
 * - Added script to fix rev_page entries.
 * - Added TMH table.
 * - More cleanup script fixes.
 * - More 404 script changes.
 * - Various cleanups for 404 fixing script.
 * - Added logging to script.
 * - Added a script to clean up file 404s.
 * - Removed old broken script.
 * - Create project specific database file additions
 * - Replace deprecated methods and remove unused variables

cldr

 * - Update with 22-1-d03 RC

wikidiff2

 * - Fix potential use of uninitialised stack variable