MediaWiki 1.27/wmf.8/Changelog

Core changes

 * - Make edit stashing use named DB locks
 * - Updated mediawiki/core
 * - Updated mediawiki/core
 * - Updated mediawiki/core
 * - Updated mediawiki/core
 * - Update CentralNotice
 * - Updated mediawiki/core
 * - Updated mediawiki/core
 * - Updated mediawiki/core
 * - Fix bad regex in 6fe2f48df
 * - Add per-partition JobQueueRedis aggregation
 * - Updated mediawiki/core
 * - Updated mediawiki/core
 * - Updated mediawiki/core
 * - Updated mediawiki/core
 * - Updated mediawiki/core
 * - Updated mediawiki/core
 * - Updated mediawiki/core
 * - Timing::measure: handle missing marks better
 * - Bump VisualEditor submodule for T120975
 * - Updated mediawiki/core
 * - Updated mediawiki/core
 * - Updated mediawiki/core
 * - Updated mediawiki/core
 * - Updated mediawiki/core
 * - Updated mediawiki/core
 * - Updated mediawiki/core
 * - Updated mediawiki/core
 * - resourceloader: Migrate from msg_resource table to object cache
 * - Fixing branch for submodule extensions/Wikidata
 * - Submodule bump for Wikidata
 * - Updated mediawiki/core
 * - Updated mediawiki/core
 * - Updated mediawiki/core
 * - Updated mediawiki/core
 * - Updated mediawiki/core
 * - Updated mediawiki/core
 * - Updated mediawiki/core
 * - Updated mediawiki/core
 * - Submodule change for Wikidata master -&gt; wmf/1.27.0-wmf.8
 * - Add skipped branched extensions
 * - Renamed confusing initial $status var in doEditContent
 * - Fix edge case in onTransactionIdle
 * - Use wgCanonicalNamespace instead of wgNamespaceIds[key] in JS
 * - mediawiki.api: fix badtoken handling with legacy token types
 * - Remove unused $wgStatsMethod and related UDPProfiler variables
 * - objectcache: Improve entry point docs and fix typo in READ_LATEST
 * - Remove obsolete showCacheStats.php and showCacheStats.php
 * - Fix phpunit for wikis with $wgResourceLoaderValidateJS = false
 * - Fix some language depending phpunit tests by using MediaWikiLangTestCase
 * - resourceloader: Log warning if module produces an invalid version hash
 * - Add magic word for protection expiry
 * - Split out edit/create methods from doEditContent
 * - SpecialWatchlist: Don't display '0' in the selector when 'all' is chosen
 * - Special:Statistics: Change link target for content pages to hide redirects
 * - tests: Remove unused $wgMemc resets
 * - Allow auto suggestion for subpages of some special pages
 * - SpecialContributions: Fix whitespace in tagfilter
 * - Add user autocomplete and autofocus to Special:ActiveUsers
 * - Fill getSubpagesForPrefixSearch of Special:Tags
 * - objectcache: Make protected WANObjectCache::makePurgeValue non-static
 * - mediawiki.ForeignStructuredUpload: Always use '|1=' for description templates
 * - Deduplicate input in Special:Contributions
 * - Remove obsolete category links code
 * - Fix PHPDoc for getTimeAndDelay
 * - Fix some FileRepo IDEA errors
 * - Fix IDEA error in intervalsSinceGregorianBinary
 * - Add UUIDv1 function to UIDGenerator
 * - Fix phpdoc of wfArrayToCgi
 * - Make ForkController destroy redis instances too
 * - registration: Remove type validation for &quot;config&quot; items
 * - Fix get/getMulti check key race condition in WANObjectCache
 * - Convert ApiStashEdit to PSR-3
 * - Follow-up for Iba0138a6d: remove now-unused MWHookException class
 * - Remove DeferredUpdates::forceDeferral testing hack
 * - Add $wgMaxUserDBWriteDuration to limit user-generated transactions
 * - Remove redundant testGetMulti assertion
 * - Fix phpdoc of StatusValue::merge
 * - Make RefreshLinksJob de-duplication more robust
 * - Don't install a custom error handler for hooks
 * - Use wgNamespaceIds constants instead of hard-coded numbers
 * - Make CDN purge calls use DeferredUpdates
 * - Add mergeable update support DeferredUpdates
 * - Add pre-send update support to DeferredUpdates
 * - Add user autocomplete and autofocus to Special:Emailuser
 * - Change wording of 'wlshowtime' for ease of localisation
 * - SpecialWatchlist: Remove random unnecessary `&lt;hr&gt;`
 * - SpecialWatchlist: Add an option to automatically reload the page when a filter was changed
 * - Fix categories with a namespace prefix in the cat name for CatWatch
 * - Add warning comment on formatLinksInComment
 * - Move Special:ChangeContentModel to the pagetools special page group
 * - Don't load WikiPage (w/ READ_LATEST) if search-update is not supported
 * - Cast numeric cat names back to string in api output
 * - tests: Clean up use of mt_rand
 * - tests: Remove unused TableCleanupTest class
 * - Fix CatMemberChanges for numeric category names
 * - Move category membership RC updates to CategoryMembershipChangeJob
 * - Make getCacheSetOptions and WAN cache handle broken replication
 * - Defer the redirect table update in WikiPage::insertRedirect
 * - API: Allow querying central user info
 * - Fix relayPurge IDEA warnings
 * - Add a central ID lookup service
 * - objectcache: Add $holdoff parameter to WANObjectCache::touchCheckKey
 * - objectcache: Move WANObjectCache holdoff from get to purge value
 * - Fix case for special pages (was breaking tests)
 * - Extracted some code from PrefixSearch for re-usability by other search engines.
 * - Consolidate Title normalization code in SearchUpdate
 * - Connect OOjs UI to MediaWiki's localisation system
 * - Do SearchUpdate::indexTitle after search-update is supported check
 * - API: Add isset to avoid PHP warning
 * - Add more BacklinkJobUtils comments
 * - Fix some IDEA errors in BacklinkJobUtils
 * - Improved personal toolbar for logged-out users
 * - tests: let us select/exclude ParserTests
 * - Remove unused WikiPage::getLastNAuthors method
 * - Add a wikipage.diff hook
 * - Make HTMLCacheUpdate always use the job queue
 * - Make HTMLCacheUpdate callers more consistent
 * - Fix incorrect annotation
 * - Minor api doc fix
 * - Remove RELEASE-NOTES-1.26 from master as it is now a release.
 * - Do not set autofocus for valid target input on Special:UserRights
 * - Fix &quot;Undefined property: DiffEngine::$seq&quot; under HHVM in DairikiDiff.php
 * - Fixup MW for HHVM Repo Authorative mode
 * - mediawiki.ForeignStructuredUpload: Behave correctly when '=' appears in a description
 * - SpecialMovepage: Don't change button text when moving over existing page
 * - SpecialMovePage: Display introduction text even after the form was submitted
 * - Special:Contribs: autofocus to 'target' if target hasn't been specified or in non-newbies mode
 * - Fix packet reduction in SamplingStatsdClient
 * - Enhance SamplingStatsdClient::sampleData return doc
 * - Add mediawiki.api.messages module to easily retrieve a set of messages
 * - SpecialMovepage: Remove amusing comment about MySQL 4
 * - Update liuggio/statsd-php-client to 1.0.18
 * - Split out WikiPage 'page' field for EditPage
 * - Add support for blacklisting common passwords
 * - Add comments to EditPage::getBaseRevision
 * - Update ApiBase::PARAM_* comments
 * - Added Rakefile
 * - Use normal space instead of &amp;#160; in &quot;white-space: nowrap
 * - Update OOjs UI to v0.14.0
 * - Remove MWException use from UIDGenerator
 * - Last 2 wfBaseConvert to Wikimedia\base_convert
 * - Rename wfBaseConvert.php maintenance script
 * - Mark wfBaseConvert as deprecated.
 * - Replace wfBaseConvert with Wikimedia\base_convert
 * - Accessor to get EditPage parent revision ID
 * - jquery.accessKeyLabel: Update Opera access keys
 * - Add unit tests for mw.format
 * - resourceloader: Optimise mw.loader.register
 * - resourceloader: Don't create redundant timers in addEmbeddedCSS
 * - mw.widgets.CategoryCapsuleItemWidget: Explicitly stringify link 'title'
 * - Add script to fix content model of JSON pages
 * - Mark ApiQueryBase::getDirectionDescription as deprecated
 * - Supports schema revision id in avro binary formatter
 * - Fixes for &quot;External libraries&quot; release notes section
 * - Add 0 hold-off TTL support to WANObjectCache::delete
 * - Make $.fn.updateTooltipAccessKeys less expensive
 * - Disallow associative arguments in ObjectFactory
 * - Support named arguments in ObjectFactory
 * - Remove redundant escaping for namespace references in documentation
 * - Doxygen: Rewrite mwdoc-filter to fix bug with slashes in comments
 * - fbbc737c86b500c11bbb471ec1001c50ab8853c
 * - Fix typo in doc comment on MWSaltedPassword.php
 * - StringUtils: Fixup Doxygen warnings
 * - Doxygen: Disable verbose output
 * - SpecialWatchlist: Rewrite cutoffselector using XmlSelect
 * - mw.widgets.CategoryCapsuleItemWidget: Improve marking of missing categories
 * - Special:Watchlist: Add user preference to &quot;Show last&quot; options, fix float comparison
 * - Upgraded composer/semver to 1.2.0
 * - Added reversed as acceptable attribute for ol
 * - Allow maintenance/cdb.php to look up keys with spaces in them.
 * - Fix typo: mapp -&gt; map
 * - removed duplicate line for api-error-duplicate-archive
 * - Call DB::timestampOrNull in WatchedItem::resetNotificationTimestamp
 * - Improve error message for failing HTTP requests
 * - Make SpecialRecentChanges::getFeedQuery protected
 * - RELEASE-NOTES-1.27: Bugzilla is dead, long live Phabricator!
 * - Move 3f1e9fa268cd release notes into 1.27 file
 * - Move 617d59fcb326b release notes into 1.27 file
 * - Move ceab69238d2b release notes into 1.27 file
 * - Follow up de6cbaf65298a, move release notes into 1.27 file
 * - Move 90e1b22166b0 release notes to 1.27 file, and fix @since tag
 * - Move 4a3fd2e42a1d release notes into 1.27 file
 * - Add unit tests for MessageBlobStore
 * - Move a05971dfc7fd release notes into 1.27 file
 * - Fudge testGetWithSeveralCheckKeys in both directions to be deterministic
 * - Add release notes for extension.json changes in 1.26
 * - Use Database::fetchRow instead of array cast
 * - Skip User name-&gt;id cache on READ_LATEST
 * - Update cached user ID after user is added to the database
 * - Use User::getId instead of trying to fix the ID in BlockTest
 * - Fix undefined variable passed by reference to a hook
 * - resourceloader: Remove redundant back-compat in mw.loader.addSource
 * - resources: Upgrade jquery.i18n from 1.0.3 to 1.0.4
 * - Fix conflicting configuration name in TitleInputWidget
 * - Reduce usage of inline &lt;span style=&quot;white-space: nowrap&quot;&gt;
 * - SpecialWatchlist: Keep checkboxes and their labels together
 * - API DB commit and sticky DC cookie fixes
 * - TitleSearchWidget: Use OO.ui.mixin.RequestManager
 * - TOC: Restore missing underlines in Firefox
 * - Add a new message key on watchlist for &quot;Hide&quot;
 * - Improve docs for lag related DB functions
 * - mediawiki.jqueryMsg: Extend mw.Message with new #parseDom method
 * - namespaceDupes: Ignore duplicate key errors in link table updates
 * - SquidUpdate doc cleanups
 * - phpcs: Assignment expression not allowed
 * - mediawiki.api: Use action=query&amp;meta=tokens instead of action=tokens
 * - Allow findHooks.php to compare parameter references of hooks
 * - API: Remove dbg, txt, and yaml formats
 * - Allow findHooks.php to compare parameter count of hooks
 * - profileinfo: Suppress frivolous warning about usort callback
 * - Update OOjs UI to v0.13.3
 * - Use makeGlobalKey directly instead of wfGlobalCacheKey
 * - mediawiki.action.edit.preview: Remove ref to non-existant 'tooltip-p-lang' message
 * - ForeignStructuredUpload.BookletLayout: Add direct dependency on 'moment'
 * - Remove deprecated wgRateLimitLog
 * - resourceloader: Include 'raw' in ResourceLoaderContext hash
 * - resourceloader: Reformat code around member grouping in ResourceLoaderContext
 * - resourceloader: Omit getDirection ResourceLoaderContext hash
 * - Follows-up 3a252efa: Update docs around $wgUseLocalMessageCache
 * - MessageCache: Remove $ucfirst and clean up getMessageFromFallbackChain
 * - Add structured API request debug logging
 * - Make JobRunner::commitMasterChanges check getServerCount
 * - Remove redundant null-handling for Title::newFromText
 * - Race condition fixes for refreshLinks jobs
 * - Don't &quot;preview&quot; (i.e. execute) user JS on non-preview requests
 * - Have SquidUpdate::newFromTitles use getSquidURLs
 * - Extract file name from thumbnail only from first occurrence
 * - Use $foo.msg( 'bar' ) rather than $foo.html( mw.message( 'bar' ).parse )
 * - Implement HTMLComboboxField
 * - Move details of import logs into log params

Vendor

 * - Update liuggio/statsd-php-client to 1.0.18
 * - Update OOjs UI to v0.14.0
 * - Update firebase/php-jwt to 3.0.0
 * - Update composer/semver to 1.2.0
 * - Monolog: Backport Attempt to recover from json encoding errors
 * - Update OOjs UI to v0.13.3

AbuseFilter

 * - Replace wfBaseConvert with Wikimedia\base_convert
 * - Remove unnecessary getPageTitle methods from special pages
 * - Remove unnecessary checks for MW_SUPPORTS_CONTENTHANDLER
 * - Remove unnecessary check for MW_SUPPORTS_CONTENTHANDLER
 * - Remove unnecessary check for MW_SUPPORTS_CONTENTHANDLER
 * - Remove EditFilterMerged BC code
 * - Fix typo in comment and remove unnecessary BC

BounceHandler

 * - Notifications presentation models

CentralAuth

 * - Add and use CentralAuthUser::getMasterInstance method
 * - Implement CentralIdLookup for CentralAuth
 * - Make onAbortNewAccount use READ_LATEST
 * - Add flag to make CentralAuthUser objects use the master DB
 * - Allow for CentralAuthUser::loadState to generally use DB slaves
 * - Add license-name to extension credits
 * - Return integer for editcount in API

CheckUser

 * - Replace wfBaseConvert with Wikimedia\base_convert

CirrusSearch

 * - Include language detection results in control bucket
 * - Add $wgCirrusSearchMasterTimeout to deal with master slowdowns
 * - Make post-move insertion more robust
 * - Disable check for Jenkins.php browser tests entry point
 * - Add identity as additional tab to CirrusSearchUserTesting log
 * - Remove unused imports
 * - Add 2 map&lt;string,string&gt; payloads to CirrusSearchRequestSet
 * - Use Accept-Language headers to detect language of query
 * - Record if language detection occured in UserTesting logs
 * - Try interwiki search if we have less that N (default 3) results

Cite

 * - composer test entry point
 * - Detect duplicate &lt;ref&gt; definitions inside &lt;references&gt; too
 * - build: Test JS code with jshint and jscs via npm

CiteThisPage

 * - composer test entry point

Citoid

 * - Use enableModuleContentVersion instead of tracking getScript manually
 * - VE: Use MWPreviewElement instead of PreviewElement
 * - Detect MWNumberedExternalLinkNode as convertible

CodeEditor

 * - Avoid accessing undefined context
 * - Enable the &quot;Go to line nummer&quot; button on read-only pages
 * - Use $.map from jQuery
 * - Use module &quot;mediawiki.api.options&quot; to save options
 * - Add jshint and jscs to npm, Also add composer.json
 * - Do not try to save options for anonymous user
 * - Fix error message in set user options fail
 * - Update Ace to 29-10-2015

CodeReview

 * - Replace DB begin/commit with startAtomic/endAtomic as needed
 * - Replace DB begin/commit with startAtomic/endAtomic as needed
 * - Replace DB begin/commit with startAtomic/endAtomic as needed
 * - Replace injectSpinner/removeSpinner with jquery.spinner
 * - Update CodeReview tests

ConfirmEdit

 * - Add AUTHORS file and update authors for Special:Version
 * - Expand extension description for FancyCaptcha
 * - Add grunt-jscs package
 * - Update grunt-jsonlint to 1.0.6

ContentTranslation

 * - Fix check for JWT
 * - Do not rely on draft param to restore a draft
 * - ext.cx.draft: typo correction
 * - Move the ext.cx.draft module to ext.cx.translation.draft
 * - Update firebase/php-jwt to 3.0.0

DonationInterface

 * - Catch error queueing final status message
 * - pared down iframe stylesheet
 * - correct iframe target
 * - make adyen use test url like other adapters
 * - Use SHA-256 HMAC for Adyen
 * - [TEMPORARY] Instrument to tickle error streams
 * - Remove whitebox wiki template from forms
 * - Replace rubbish data in currency code
 * - Reset adapter account config in test setup
 * - minor adyen iframe css changes
 * - commit screen.css
 * - make iframe behave more like worldpay
 * - Return from function after redirect
 * - Move default currency fallback to data normalization
 * - tabs/spaces

Echo

 * - Unbreak notformat=text|html in the API
 * - Follow-up 65638384: update calls to normalizer functions
 * - Add Czech alias of Special:Notifications
 * - Balance brackets in en.json
 * - Add gender support for the viewing user for mention notification
 * - Normalize links in Special:Notifications formatter
 * - Allow grouping for getBundleCount
 * - Get bundled notifications count
 * - EventPresentationModel: Cache the result of getBundledEvents
 * - Special:Notifications formatter
 * - Follow-up b85f978ddd: don't check for the non-existent CentralAuth class
 * - Require a User object to be passed to EchoEvent::userCan
 * - Add accessor for bundled events in EventPresentationModel
 * - Add a global overlay to Echo
 * - Add secondary link details: icon &amp; description
 * - Track what wikis a user has unread notifications on
 * - Expose more data through API
 * - Change the naming of 'notification option' to 'notification item' widgets
 * - Unstub $wgLang in BasicFormatter::getLanguage too
 * - Add a NetworkHandler as a central API authority to Echo
 * - EventMapper::fetchByUserBundleHash: Always return an array
 * - Prevent link color on hover for the body (&quot;payload&quot;) as well as the header
 * - Remove styling for nonexistent mw-echo-title-heading class
 * - Extract `getMessageWithAgent`
 * - 'Load more' check should be based on retrieved data, not what could render
 * - Remove &quot;learn more&quot; link from user-rights notification in flyout
 * - Presentation model for email-user

EducationProgram

 * - Remove brackets from require_once
 * - Remove unused imports
 * - Notifications presentation models

EventLogging

 * - Add server/ as a git submodule pointing at https://gerrit.wikimedia.org/r/#/c/254030/
 * - Remove server/ directory

ExtensionDistributor

 * - Add missing @author tags
 * - Fix a typo in the message extdist-created-skins
 * - Add maint script for forcing a stat cache purge
 * - Retrieve PopularList directly from graphite if configured
 * - Improve some i18n messages
 * - Add basic special page tests
 * - Get rid of ResourceLoaderRegisterModules hook
 * - Don't require individual branches to have different messages
 * - Display a list of top extensions and skins
 * - Fix typo in comment

FlaggedRevs

 * - Remove pointless begin/commit pair

Flow

 * - FlowPopulateRefId.php: Only process the current wiki
 * - Remove hardcoded token from patrol link
 * - Minor phpdoc/coding standards fixes or code optimizations
 * - Remove unused imports
 * - [SECURITY] Escape HTML characters in topic titles
 * - Unduplicate 'this page is an archive' message on converted pages
 * - Add composer test with just php-parallel-lint
 * - Minor importer fixes
 * - Fix history pagination and give user the number of entries they requested
 * - Stop tracking composer.lock
 * - Keep known results in memory
 * - Remove some unused variables
 * - Replace wfBaseConvert with Wikimedia\base_convert
 * - Browser tests: moderation dialog changed from textarea to text_field
 * - Import Flow data dump
 * - Dump Flow data
 * - Browser tests: use Selenium user instead of Admin for local
 * - Replaced Flow moderation textarea with input
 * - Fix &quot;desciption&quot; typo
 * - Fix regression in log formatting from &quot;links in topic title&quot; patch
 * - Update translation for Korean
 * - Make counts in FlowPopulateRevId.php output more useful
 * - Surface permission errors
 * - Add support for edit summary formatting in topic titles
 * - SECURITY: Evict topics from Squid/Varnish cache when board is deleted
 * - Revert &quot;Revert &quot;Adapt to Parsoid/RESTbase renaming scrubWikitext to scrub_wikitext&quot;&quot;
 * - Move Flow ExternalStore entries to separate cluster

Gadgets

 * - Fix double &quot;MediaWiki:MediaWiki:&quot; namespace on Special:Gadgets
 * - Bump MediaWikiGadgetsDefinitionRepo cache version
 * - Add column for active users to Special:GadgetUsage
 * - Implement Gadgets definition namespace repo
 * - Update Jenkins tests

Gather

 * - Added Rakefile
 * - Deprecation warnings in mobile beta
 * - build: Updating development dependencies

GlobalBlocking

 * - Replace wfBaseConvert with Wikimedia\base_convert

GlobalUsage

 * - Make post-move insertion more robust

Graph

 * - Add tracking category for obsolete Vega1.0 graphs
 * - Fix graphs overlapping with next line in readmode
 * - Revert &quot;reverting until train is sorted out&quot;
 * - reverting until train is sorted out
 * - Fix icon position in Play button
 * - Interactive graphs button cleanup
 * - Fix Click-to-Interact not working on MobileFrontend
 * - Fix FOUC: Make graph styles load ahead of HTML
 * - VE: Use MediaSizeWidget with restricted dimensions
 * - Custom vega to support headers in xhr
 * - Consolidate JS code in /modules/ dir
 * - Simplify HTML logic, fix dupl img+live
 * - Fixed incorrect data loaded via api
 * - Prevent graph multi-click, show status
 * - Fixed regression crash on graphless pages
 * - Bumped vega to 2.4, d3 to 3.5.10
 * - Dynamic interactive graph loading
 * - Implement vega 2.0 support
 * - Fixed previous api module commit
 * - Implements action=graph api to get graph by id
 * - Updated Vega URL in all i18n messages
 * - Remove deprecated calls to ve.ui.TextInputWidget.isValid
 * - Resizable graph nodes
 * - Edit graph size in VisualEditor
 * - Only load Vega with VE on pages containing graphs
 * - Bar graphs displaying properly after a save

ImageMap

 * - $title is not always defined.

InputBox

 * - composer test entry point

LiquidThreads

 * - Fix duplicate function parameters

Math

 * - MathRestbaseInterface: Only read properties we know exist
 * - Focus the math dialog input after the symbols promise has returned
 * - Use Restbase rendering in MathML mode
 * - Make math dialog menu content scrollable
 * - Use RestBase to check input tex rather than texvccheck
 * - Restbase based texvc input check
 * - Fix error in checking logic
 * - Add Restbase interface
 * - Add phpcbf script to fix whitespace problems
 * - Focus input and move cursor to end when MathDialog opens
 * - Ensure the formula preview in MathDialog is vertically centered
 * - Modify updateMwData in MathDialog to update display and id attributes
 * - Set autocomplete options for math dialog input
 * - Make math dialog with clickable list of formula fragments
 * - SVG/CSS generator: Ignore duplicates and 'notWorking' buttons
 * - SVG/CSS generator: Make faster by skipping already-fetched icons
 * - VE: Correct name of script in header

MobileApp

 * - Roll out RESTBase usage to Android Beta app: 55%
 * - Roll out RESTBase usage to Android Beta app: 30%
 * - Roll out RESTBase usage to Android Beta app: 10%

MobileFrontend

 * - API: Use page_touched for cache invalidation
 * - Ensure the parser cache varies on images disabled and 'light' images
 * - Vary HTML output by NetSpeed designation
 * - Improve disableImages cookie code
 * - Provided more friendly wording for &quot;Beta&quot; explantation
 * - Remove previously stored session IDs
 * - Fix mobile.toast styles in desktop skins
 * - Push search styles to stable
 * - Disable the optin to beta message / make it configurable
 * - Remove the unneeded view-border-box class from the watchlist
 * - getSessionId's value should only last for session duration
 * - Select headlines by class=&quot;mw-headline&quot; instead of &lt;span&gt; element
 * - Hygiene: Remove un-needed content addition in qunit test
 * - [SECURITY] Fix XSS vector when using fallback for displayTitle
 * - Restore skin styles to profile page
 * - Add missing #onUpdateState method to OO.ui.Tool subclasses
 * - Update packages

MoodBar

 * - Replace DB begin/commit with startAtomic/endAtomic as needed
 * - [MoodBar] Update Jenkins tests

MultimediaViewer

 * - Do not set up the overlay on irrelevant hash changes
 * - Upgrade browser tests to the latest version of mediawiki_selenium Ruby gem
 * - Optimize SVGs

NavigationTiming

 * - Make the CP (connection properties) cookie regex stricter

Nuke

 * - Use $dbr-&gt;buildLike instead of manual LIKE

OAuth

 * - Use CentralIdLookup when available
 * - Fix DAO brokenness with respect to auto-increment fields
 * - Pass actual message keys to MWOAuthException
 * - Update backend/schema/sqlite/OAuth.sql
 * - Update firebase/php-jwt to 3.0.0
 * - Remove proxyunbannable
 * - Use JWT.php from composer or mediawiki/vendor
 * - Avoid errors when passing null as user in onChangeTagCanCreate

OpenStackManager

 * - OpenStackManager: remove obsolete isVirtual handling
 * - OSM trying not to create empty groups
 * - Migrate to the new Echo Presentation Model

PageTriage

 * - Fixed Style/RegexpLiteral RuboCop offense
 * - Fixed Style/StringLiterals RuboCop offense
 * - Updated RuboCop to the latest version
 * - Updated mediawiki_selenium Ruby gem to the latest version

ParserFunctions

 * - composer test entry point

PdfHandler

 * - Fixed Style/StringLiterals RuboCop offense
 * - Updated RuboCop to the latest version
 * - Update mediawiki_selenium Ruby gem to the latest version

Poem

 * - composer test entry point

ProofreadPage

 * - Fix RTL positionning and icon for navigation
 * - Add composer test entry point

QuickSurveys

 * - Added Rakefile

RelatedArticles

 * - Disable RelatedArticles when editor enabled
 * - RelatedArticles load after half window scroll
 * - Update packages
 * - Add browser tests for ReadMore
 * - Configure footer and sidebar placements
 * - [Hygiene] Reorganise hooks to reflect placements
 * - Correctly show related articles on desktop
 * - Make RelatedArticles available as a beta feature
 * - Fix RelatedPagesGateway unit test failures
 * - Add simple README
 * - Make RelatedArticles soft-depend on Cards
 * - [Hygiene] Rename internal uses of &quot;article&quot; to &quot;page&quot;
 * - Limit the number of pages to 3
 * - Optionally disable Read More using extension data
 * - build: Simplify Grunt configuration
 * - Remove CustomData extension dependency
 * - Add event logging to read more
 * - Run JSHint and JSCS against tests
 * - Put Read More behind a feature flag
 * - Fall back to CirrusSearch's morelike: feature

Score

 * - Replace wfBaseConvert with Wikimedia\base_convert

SecurePoll

 * - Merge arbcomlist.php back into makeSimpleList.php
 * - arbcomlist.php: add '--mainspace-only' option
 * - Make it possible to resume crashed arbcomlist.php runs
 * - Use Database::selectRowCount to check editcount-based eligibility

SemanticForms

 * - Fixed handling of URL values in #forminput
 * - Removed last of pre-RL compatibility
 * - Have &quot;values dependent on&quot; also work for combobox and token types
 * - HTML &amp; JS fixes to allow pipes in free text and section inputs
 * - Version 3.4.1
 * - Removed support for unnamed params for #forminput
 * - Improved setting of HTML for #forminput
 * - Fix for Page Schemas if &quot;Form&quot; checkbox unselected
 * - Removed long-unnecessary handling for pre-SFH_OBJ_ARGS MW versions
 * - &quot;checkbox&quot; can now &quot;show on select&quot; more than one div
 * - Changed parsing of &quot;default&quot; value to not parse URLs, wikitext
 * - Fixed pipe validation to also allow links

SpamBlacklist

 * - Don't check edits that don't contain links
 * - composer test entry point

SyntaxHighlight_GeSHi

 * - Drop dependency on kzykhys/pygments

Thanks

 * - ApiFlowThank: Update for topic title changes in Flow
 * - Hide thanks button for botedits if bots are not allowed to receive thanks in mobile as well

TimedMediaHandler

 * - Add VideoJS as an alternative player
 * - Stop using Title::mTextform
 * - Update grunt-jscs to 2.4.0
 * - Add author Derk-Jan Hartman (TheDJ) to the extension credits

TitleBlacklist

 * - composer test entry point

Translate

 * - Inherit SpecialPageTranslationMovePage from MovePageForm
 * - Added $1[a-z]+ as an insertables
 * - Reuse language object
 * - Stop doing unnecessary message index queries
 * - Move document-ready to the bottom
 * - Clean up token handling

TranslationNotifications

 * - Remove i18n shim
 * - Add jshint and jscs to grunt
 * - Run PHPCS from composer
 * - Add composer test entry point

UniversalLanguageSelector

 * - Update OpenDyslexic from 2.1.0+git060dc841 to 2.1.0+git03aa683
 * - Fix syntax error in Akkadian font.ini.
 * - Update jquery.ime from master
 * - Update jquery.i18n to v1.0.4
 * - Looks like Style/AccessModifierIndentation RuboCop offense has been fixed earlier
 * - Fixed Style/CaseIndentation RuboCop offense
 * - Fixed Style/HashSyntax RuboCop offense
 * - Fixed Style/SpaceInsideHashLiteralBraces RuboCop offense
 * - Fixed Style/SpaceInsideParens RuboCop offense
 * - Fixed Style/IndentationWidth RuboCop offense
 * - Fixed Style/StringLiterals RuboCop offense
 * - Fixed Style/Tab RuboCop offense
 * - Updated RuboCop to the latest version
 * - Update mediawiki_selenium Ruby gem to the latest version

UploadWizard

 * - mw.UploadWizardDetails: Don't fail when 'description' is given, but 'descriptionlang' isn't
 * - Fix minor typo in comment
 * - Remove begin/commit from onTitleMoveComplete hook
 * - mw.UploadWizardDetails: Do not double-escape campaign fields' labels
 * - mw.UploadWizardDetails: Remove reference to non-existent field
 * - Move uw.ui.Step subclasses into a subdirectory
 * - Expand location fields if they are set in prefill
 * - Add maximum file sizes to chunked preference
 * - Improve FlickrChecker docs, use promises
 * - Re-enable button after failed Flickr submission
 * - Various Flickr interface fixes
 * - Move remainder of UI creation into JS
 * - Use promises instead of triggers for Flickr
 * - Create arrow steps in JavaScript
 * - Update wording of 'mwe-upwiz-tooltip-date' for new date selector
 * - Remove parameter from prevent-close message
 * - uw.DateDetailsWidget: Only emit 'change' on mode switch if value was actually changed
 * - Remove dependency on jquery.tipsy
 * - Use OOjs UI PopupElement for &quot;Skip tutorial&quot; checkbox
 * - uw.CategoriesDetailsWidget: Unhide warnings about no categories being selected
 * - uw.CategoriesDetailsWidget: Use the warning system for non-existent category warning
 * - Remove all jquery.validate code
 * - Remove now-unused $.fn.requiredFieldLabel and $.fn.addHint
 * - Use OOjs UI FieldLayouts and validation for deeds
 * - mw.UploadWizardDeedOwnWork: Only use one authorInput and move it when needed
 * - Separate other classes from resources/mw.UploadWizardDeed.js
 * - mw.UploadWizardDeed: Change text fields to be OOUI
 * - Remove some dead code
 * - Move #mwe-upwiz-details-error-count element generation to JavaScript
 * - Use FieldLayout's 'help' popups rather than jquery.tipsy hints where possible
 * - Use OOUI 'required' indicator for required fields where possible
 * - Split off uw.CampaignDetailsWidget from UploadWizardDetails (and OOUI-ize)
 * - uw.TitleDetailsWidget: Restore blacklist error message details
 * - Split off uw.OtherDetailsWidget from UploadWizardDetails (and OOUI-ize)
 * - Split off uw.LocationDetailsWidget from UploadWizardDetails (and OOUI-ize)
 * - Split off uw.TitleDetailsWidget from UploadWizardDetails (and OOUI-ize)
 * - Split off uw.DescriptionsDetailsWidget from UploadWizardDetails (and OOUI-ize)
 * - Split off uw.CategoriesDetailsWidget from UploadWizardDetails (improve warnings)
 * - Remove unused dependency on jquery.suggestions
 * - Fix upload spinner background color when hovering odd rows
 * - Remove unused file 24px-spinner-black.gif
 * - Split off uw.DateDetailsWidget from UploadWizardDetails (introduce uw.DetailsWidget)

VisualEditor

 * - Update VE core submodule to wmf/1.27.0-wmf.8 HEAD (96ef5ad)
 * - MWTemplatePage: Re-word the no-description text to reflect being always there
 * - GalleryInspector: Use namespace id constant
 * - Update VE core submodule to master (06c5ed7)
 * - MediaDialog: Remove useless empty object arg to media size widget
 * - Update VE core submodule to master (73810c1)
 * - Use wgNamespaceIds constants instead of hard-coded numbers
 * - Update VE core submodule to master (d6f2d75)
 * - MWMediaDialog: Add a margin back to the border checkbox
 * - Update VE core submodule to master (71cbcff)
 * - Update VE core submodule to master (d72270f)
 * - Fix the beta feature image
 * - AUTHORS.txt: Be more strict about 'principal' authors and update addresses
 * - .mailmap: Add some extra addresses and change default for rmoen
 * - Update VE core submodule to master (3ab893c)
 * - Avoid embedding Git metadata in ext.visualEditor.data
 * - Add autocomplete options to AceEditorWidget config options
 * - MWMediaDialog: Use OOUI's 'clock' icon rather than a home-brew one
 * - Create MWPreviewElement which adds the mw-body-content class
 * - Update VE core submodule to master (0e19dde)
 * - When adding a label to a numbered link, force the selection
 * - Update VE core submodule to master (e8c6f7d)
 * - MW Examples: Fix test message
 * - Add tests for RESTBase ID comparison
 * - Improve tests of data-parsoid annotation comparisons
 * - Update VE core submodule to master (5b07e0c)
 * - Use ES5 trim instead of jQuery
 * - Re-fix in-page loading
 * - Prevent switching from unedited section directly into VE
 * - AceEditorWidget: Ensure loadingPromise is set when setupEditor runs
 * - Make selectRange method of AceEditorWidget focus the input
 * - Add method to toggle the AceEditorWidget print margin
 * - Make focus method of AceEditorWidget chainable
 * - Introduce MWExtensionPreviewDialog
 * - Update VE core submodule to master (68f9f5e)
 * - Follow-up Iee4cc52b: Add missing 'media' icon pack dependencies
 * - MWSignatureTool: Restrict command to linear selections
 * - Wikitext paste: Fail if result has no visible content
 * - AceEditorWidget: Implement getRange
 * - Update VE core submodule to master (a62fe36)
 * - Image/gallery icons: Rename and use new upstream versions
 * - Edit mode switching: Auto-close jQuery.UI dialogs before switching
 * - AceEditorWidget: Implement selectRange
 * - Make dependencies of jquery.uls.data more specific
 * - Make 'moment' a dependency of just 'mwimage', not all of VE-MW

WikiEditor

 * - Fix ie 8 support in js follows-up: I039bc4c17fbba3c74a5050066b20af05434ca482
 * - Update packages

Wikidata

 * - Wikibase: Item/ Property id values need separate validators
 * - Update Wikibase:

WikidataPageBanner

 * - Convert title to its language variant
 * - Save banner properties in page_props for api use
 * - WPB show no banner when images disabled

WikimediaEvents

 * - Only report timing.editResponseTime if start/end measures are present

WikimediaMaintenance

 * - refreshMessageBlobs: MessageBlobStore::clear is not static
 * - Update refreshMessageBlobs.php to match MessageBlobStore changes in core
 * - Remove WikimediaMaintenance specific classes
 * - Move code up a bit to avoid IDEA errors about $total
 * - Don't do a wfWaitForSlave call on every row in refreshMessageBlobs.php
 * - Use CentralAuthUser::READ_LATEST in a few places
 * - Remove unused clearMessageBlobs.php
 * - Remove cleanupSkinPrefs
 * - Add changeSkinPref

WikimediaMessages

 * - Add &quot;Identifiers&quot; section heading for wikidata.org
 * - Update ExtensionDistributor messages for 1.26 release
 * - Created new directory for files with overrides not meant to be included on translatewiki.net
 * - Alphasort messages in wikimediaoverrides en and qqq
 * - Alphasort array values in onMessageCacheGet

cldr

 * - Remove i18n shim
 * - Update jenkins tests

MonoBook

 * - composer test entry point

Vector

 * - Make placeholder in logged-out personal bar greyed out
 * - git no more ignore /composer.json
 * - Make tabs, actions and search usable in Responsive Vector
 * - collapsibleTabs: Defer DOM changes via requestAnimiationFrame
 * - collapsibleTabs: Debounce resize event at 100ms instead of 500ms