MediaWiki 1.26/wmf24/Changelog

Core changes

 * - Moved LinksDeletionUpdate to a separate file
 * - Add the performer to the UserRightsChanged hook
 * - mediawiki.Upload: Return same data for upload &amp; stashed upload
 * - Set visibility of monolog tests setUp method to protected
 * - Also check Kafka class exists in KafkaHandlerTest
 * - Fix typo in KafkaHandlerTest
 * - Fix missing dependencies needed for tests.
 * - Follow-up 5cd0a43e5: Add SelectFileWidget's i18n to ResourcesOOUI
 * - Fix typo in AvroFormatterTest
 * - By default have Main page text on Main page tab
 * - jobqueue: A few small code cleanups to RefreshLinksJob
 * - Removed DeferredUpdates::addHTMLCacheUpdate
 * - Reduced the DOS potential of 404 page floods
 * - Removed deprecated $wgDeferredUpdateList
 * - Set getFeatures for MemoryFileBackend
 * - Produce monolog messages through kafka+avro
 * - Cleaned up $asyncWrites member variable in MultiWriteBagOStuff
 * - MultiWriteBagOStuff: require nonempty 'caches' param
 * - Added read affinity tests for FileBackendMultiWrite
 * - registration: Allow extensions to specify which MW core versions they require
 * - Refactor changeTypes in RecentChange
 * - Add i18n messages for ApiStashEdit
 * - Add tests for RecentChange::parse(To|From)RCType
 * - Add test for RecentChange::newFromRow
 * - Add test for RecentChange::isInRCLifespan
 * - Use setUp instead of __construct in RecentChangeTest
 * - Cleanup RecentChangeTest, move things out that don't belong
 * - Update UploadWizard-specific messages
 * - Prevent IDEA error in doOperationsInternal
 * - Removed unused LockManager var
 * - Added readAffinity flag to FileBackendMultiWrite
 * - Update documentation for EmailUser hooks
 * - Fix hook documentation for ArticleRevisionVisibilitySet
 * - Made some FileBackendMultiWrite docs more accurate
 * - Strip comments before gathering url(...) refs in CSS
 * - Fixed small IDE error in syncFileBackend.php
 * - Add localized &quot;Project&quot; namespace alias for Northern Luri
 * - DatabaseBase::deadlockLoop: Remove unused variables
 * - Support async writes to secondary MultiWriteBagOStuff stores
 * - Removed old &quot;noPush&quot; config hacks from FileBackendMultiWrite
 * - ResourceLoaderModule: cache file content hash
 * - resourceloader: Use MD4 to compute file hash rather than SHA1
 * - Do not double load gallery styles now cache has expired
 * - resourceloader: Run ResourceLoaderRegisterModules after wgResourceModules
 * - Update at-ease to v1.1.0, and OOjs UI to v0.12.8-atease
 * - Cleaned up getScopedFileLocks return value
 * - Fix another test broken by I826adf9
 * - Fix test broken by I826adf9
 * - Replace leafo/lessphp with oyejorge/less.php
 * - Add missing semicolon to mediawiki.filewarning.less
 * - SpecialChangeEmail: error if old email was entered in new email field
 * - Add new authentication-related hooks (and remove one) replacing some AuthPlugin methods
 * - Use User::equals where applicable in the class
 * - Database: Remove unused errorCount method
 * - Load the module mediawiki.page.watch.ajax only when needed
 * - Avoid unneeded memcached queries in showPatrolFooter
 * - Guard &quot;NotPatrollablePage&quot; negative caching against slave lag
 * - Small cleanups to WANObjectCache
 * - registration: Fix merging of array_plus
 * - API: Finish killing &quot;raw mode&quot;
 * - Browser test: avoid loading elements over network
 * - Drop zh-tw message &quot;saveprefs&quot;
 * - Fixed &quot;last modified&quot; date fudging on null edit
 * - Make feedlink icon visible by setting a size
 * - Explicitly float local search results left so they come first
 * - HttpError: Convert line breaks in text message to &lt;br&gt;
 * - Purge remaining oversight references from code
 * - Add line breaks between label and value in &quot;Username&quot; and &quot;Password&quot;
 * - Remove dead local var in MssqlInstaller
 * - mw.widgets.CalendarWidget: Simplify the logic for deciding animations
 * - mw.widgets.DateInputWidget: Ensure newly opened calendar shows current selection
 * - Avoid master queries on image history view
 * - Fixes for RedisBagOStuff when using twemproxy
 * - Moved some WANObjectCache number literals to constants
 * - Remove dead argument in EncryptedPassword.php
 * - FauxRequest: Avoid header leak
 * - Remove dead argument in SpecialEditTags
 * - Remove commented out code in SpecialExport
 * - Extend Title check in Skin for titles without associated titles
 * - resourceloader: Add missing argument to makeLoaderImplementScript
 * - Remove dead local vars in ApiRevisionDelete
 * - Add missing argument to dieDebug call so it does not die
 * - Add '@since 1.25' annotation to wfLoad* functions
 * - mediawiki.Title: Correct documentation
 * - Make MWExceptionHandler work with PHP7's exception changes
 * - When aborting EnhancedRC block line, block should reflect that
 * - Revert &quot;When aborting EnhancedRC block line, block should reflect that&quot;
 * - mediawiki.Title: Remove fileExtension option from newFromFileName
 * - resourceloader: Don't localise hidden exception
 * - ResourcesTest: Detect missing files in url(...) expressions
 * - resourceloader: Support absolute-path references in mw.loader.load
 * - resourceloader: Don't call wfExpandUrl on load.php urls
 * - Remove unused private methods in FauxRequest
 * - Remove WMF deployment hack for .feedlink from mediawiki.legacy.shared
 * - mediawiki.Upload.Dialog: Remove size config from example docs
 * - Allow Linker::formatComment to link to another wiki per default.
 * - Ignore exceptions from document.querySelector
 * - resourceloader: Log load.php exceptions to JavaScript console
 * - resourceloader: Proxy 'window.performance' to support Safari bug
 * - Provide VRS objects with a name for more informative debugging/logging
 * - Remove WikiReference::getHostname.
 * - Use XmlSelect in SpecialEditTags
 * - Enable multiple default values for XmlSelect
 * - Removing MediaWiki:Yourgender/de-formal
 * - SpecialPagesWithProp: convert implicit join into join_conds
 * - Add missing images used in installer's CSS
 * - Rephrase api-help-param-list for clarity
 * - SpecialUpload: Improve display of error messages
 * - Remove unused $wgAPIGeneratorModules from DefaultSettings.php
 * - mediawiki.Title: Add normalizeExtension method
 * - Fixed some IDEA doc warnings
 * - Add support for fragments to WikiMap
 * - Add tests for WikiMap and WikiReference
 * - mw.widgets.CategorySelector: Add configuration to limit number of results
 * - mw.widgets.CategorySelector: Return {string}[] from getNewMenuItems' promise
 * - resourceloader: Jobs created in request should wait for executing modules
 * - mw.widgets.TitleInputWidget: Set default for limit during config init
 * - resourceloader: Document internal mw.loader#jobs property
 * - Make signature of RaggettInternalHHVM::cleanWrapped compatible with RaggetBase's
 * - Add Html5Depurate tidy driver
 * - Abstract and refactor Tidy support
 * - Made uploadLinksBox use quickUserCan to avoid title blacklist queries
 * - mediawiki.less: wrap '\9' CSS hack in e call to pacify persnickety parsers
 * - Fix use of preg_match_all in MagicWord.php
 * - Remove dead local vars in UsercreateTemplate
 * - Remove unused private field in MagicWordArray
 * - Remove dead argument in LinkSearchPage
 * - Remove return of void method results
 * - jquery.tablesorter: Add ability for cells with colspan in tbody
 * - mw.widget.DateInputWidget: Correct docs for mustBeAfter and mustBeBefore
 * - Revert &quot;Load 'mediawiki.legacy.commonPrint' styles with a media type property&quot;
 * - Sync up with Parsoid parserTests.
 * - Revert &quot;Do not encode &quot;'&quot; as %27 (redirect loop in Opera 12)&quot;
 * - API: Add support for selected HTTP precondition headers
 * - Log useful error messages on SSL errors in PhpHttpRequest
 * - API: Improve list=random
 * - Measure string length once in Parser::replaceVariables
 * - Use more appropriate word in a Korean translation
 * - Rewrite OutputPage::addVaryHeader
 * - mw.widget.DateInputWidget: Add range validation
 * - mw.Upload.Dialog: Use getValidity instead of deprecated isValid
 * - Remove unused private field
 * - Fix TestingAccessWrapper private property access and parent classes
 * - Removed clearSharedCache hack in User.php
 * - Update OOjs UI to v0.12.8
 * - Document OutputPage::addVaryHeader
 * - wikimedia/cdb 1.2.0 → 1.3.0
 * - Enable autocompletion for Special:ListUsers
 * - ApiResult: Fix size checking
 * - wikimedia/cdb 1.0.1 → 1.2.0
 * - Move prefsection style to mediawiki.special.preferences.css
 * - Add mw.widgets.CategorySelector
 * - Use CSS columns instead of tables in Special:SpecialPages (2)
 * - resourceloader: Don't create empty objects for every module
 * - Drop message whatlinkshere-title/zh-tw
 * - Enhance debug log output for stacktraces
 * - Enhance stacktrace logging for fatals
 * - Sync up with Parsoid parserTests.
 * - Remove unused parameter in DjVuImage
 * - resourceloader: Expose fetch promise in addScript
 * - build: Upgrade grunt-banana-checker to v0.3.0
 * - resourceloader: Introduce new module state &quot;executing&quot;
 * - resourceloader: Move creation addLink function to shared mw.loader scope
 * - Remove dead local var in ApiQueryUserInfo
 * - Remove not needed global imports in BitmapHandler
 * - Remove dead local var in ApiQueryAllDeletedRevisions
 * - Remove unused private field in OutputPage
 * - Remove dead private methods
 * - Add PHP7 build to TravisCI
 * - Write TravisCI build matrix in more readable and extandable manner
 * - Update TravisCI config to use hhvm rather than hhvm-nightly
 * - build: Enable jscs jsDoc rule 'requireNewlineAfterDescription' and make pass
 * - build: Enable jscs jsDoc rule 'requireParamTypes' and make pass
 * - build: Enable jscs jsDoc rule 'requireReturnTypes' and make pass
 * - build: Enable altered jscs rule 'disallowQuotedKeysInObjects' and make pass
 * - Add // @codingStandardsIgnore around very very long line in Language.php
 * - Provide $.bracketedDevicePixelRatio convenience function
 * - Improve wording of imageinfo API userid prop
 * - In LocalFile normalize integer fields to integers
 * - In namespaceDupes.php, fix link tables
 * - mw.widgets.DateInputWidget: Add required config
 * - Use double-underscore instead of non-ASCII character for class name separator
 * - Decode Memcached keys before returning getMulti result
 * - Do not encode &quot;'&quot; as %27 (redirect loop in Opera 12)
 * - build: Enable jscs rules 'requireSpacesInside*Brackets' and make pass
 * - Rephrase apihelp-query+logevents-param-action
 * - Use system default location for cafile when using php fopen.
 * - Remove the SourceForge interwiki
 * - Add option to ApiFormatRaw to generate a HTTP errorcode
 * - ApiQueryDeletedRevisions: Optimize ascending title generation
 * - Clarify 'target' label on the Special:Log options.
 * - Add dependencies from template implementations to mediawiki.template
 * - Avoid some unused parameter IDEA errors in User.php
 * - resourceloader: Document mw.loader state machine
 * - Move print rule for .mw-metadata-show-hide-extended
 * - Add 'mediawiki.action.view.filepage' style module
 * - poolcounter: PoolCounterRedis doc cleanups
 * - resourceloader: Fully remove ResourceLoaderLESSFunctions
 * - resourceloader: Implement mwLoadEnd marker
 * - Avoid PHP warning if key is not set in getValidationHash
 * - resourceloader: Rename 'mediaWikiStartUp' mark to 'mwLoadStart'
 * - Only use FastStringSearch on PHP &lt;5.5
 * - build: Alter jscs rule 'requireDotNotation' to reflect need for ES3 compatibility
 * - Preferences: Fix issues from 6d3c65b5b0
 * - build: Enable jscs rule 'requireSpacesInsideParentheses' and make pass
 * - build: Bump grunt-jscs to 2.1.0 and make pass
 * - Fix issues spotted by jshint 2.9.0
 * - build: Update grunt-contrib-jshint to v0.11.3
 * - Remove id #colophon from print styles
 * - LivePreview: Prevent unnecessary DOM change for spinner
 * - registration: Allow custom prefixes for configuration settings
 * - Update test documentation, fix broken links
 * - ParserOptions: added comment regarding editsections usage.
 * - Default the &quot;watchlisttoken&quot; value to a derived HMAC value
 * - MessageCache: Don't try to log a ContentHandler object
 * - PrefixSearch: Avoid passing non-strings to Title::newFromText
 * - Avoid MessageCache rebuilds if replace was called recently
 * - Decline to cache preprocessor items larger than 1 Mb
 * - tests: Remove &quot;install&quot; target from makefile documentation
 * - More MessageCache locking/update cleanups
 * - resourceloader: Ensure startup module returns early for incompatible browsers
 * - In phpunit don't try to write to the source directory
 * - Update wikimedia/utfnormal to 1.0.3
 * - Sync up with Parsoid parserTests.
 * - Move style to mediawiki.special.changeslist.enhanced.css
 * - Fix comment in mediawiki.page.gallery.css
 * - Remove non-existing param PHPDoc tag from Title
 * - ApiLogin: Don't try to add block info if there's no block
 * - Support empty string for wgEmergencyContact/wgPasswordSender
 * - mediawiki.Upload: Consistently use getters rather than direct property access
 * - resourceloader: Use increment for resourceloader_cache miss metric
 * - Fix notice when restbaseCompat is omitted
 * - Expose the ability to change suggestion api's
 * - Update OOjs UI to v0.12.7
 * - Link DB docs from tables.sql
 * - Language: Fix 'pretty' fallback in getDateFormatString
 * - Deprecate unconditional loading of mediawiki.ui.button on all pages
 * - SpecialMovepage: Convert form to use OOUI controls
 * - Implement wfArrayPlus2d which combines 2d arrays
 * - resourceloader: Remove redundant type-checks in internal code
 * - resourceloader: Consistently set state=ready after script execution (not before)
 * - Use wgResourceBasePath instead of wgScriptPath for wgStylePath etc.
 * - Add ForeignUpload and ForeignStructuredUpload
 * - Ignore languages/messages/Messages*.php in line length sniff
 * - OOUIHTMLForm: Make boolean form field parameters actually work everywhere
 * - EditPage: Add text placeholders to view source page
 * - Make readonly work for OOUI forms
 * - mediawiki.Uri: Use extended RegExps through templates
 * - Move query rewriting into search backend
 * - resourceloader: Don't add &quot;&amp;*&quot; query parameter to load.php urls
 * - Allow to export null values
 * - objectcache: Correct tempTTL comment for getWithSetCallback
 * - Clarified WANObjectCache::delete comments
 * - Removed READ_LATEST from revision load in getMsgFromNamespace
 * - Fixed and suppressed some thumb.php IDEA errors
 * - resourceloader: Improve moduleRegistry documentation
 * - resourceloader: Remove global startUp callback
 * - Comment typo fix
 * - Changing user and user talk namespace name for Latvian wikis
 * - Skip monolog tests if monolog is not installed
 * - Reword 'stub-threshold' message in Special:Preferences advanced section
 * - Improve wording of &quot;size-bytes&quot; and &quot;size-pixel&quot; messages
 * - Workaround fopen lack of SubjectAltName support for instantCommons
 * - mediawiki.ForeignApi: Use `type === 'POST'` instead of `type !== 'GET'`
 * - Add protected getCurrentRow to TablePager
 * - Really actually fix the typo in Parser.php
 * - Fixed parser report typo
 * - Made MessageCache use the WAN cache for individual cache keys
 * - Improved getMainStashInstance docs
 * - Revert &quot;Prevent the jumbling up of autocomments in RTL&quot;
 * - CssContentHandler: Fix @return documentation
 * - API: Add ApiResult::META_KVP_MERGE
 * - Be a little more conservative with the IPv6 support in the Sanitizer.
 * - IEUrlExtension: Add tests for the main use case the lib exists for
 * - Fixed some doc errors in tryNormaliseRedirect
 * - Add comments clarifying how calling getters on ParserOutput affects the parser cache.
 * - SpecialVersion: Force text credits and license to LTR direction
 * - Added --status and --limit filters to showJobs.php
 * - Add ParserOutput cache and expiry times to NewPP report
 * - Removed useless $wgUseLocalMessageCache check in MessageCache
 * - Make ParserOptions fields private
 * - registration: Remove unused 'wgExtraNamespaces' merge strategy
 * - Use Parsoid v3 API; emulate the RESTBase v1 API
 * - Don't free the parser in the catch block of parse
 * - api: Load mediawiki.apipretty with addModuleStyles
 * - XMP: log structured data for halting errors
 * - Fix spaces in MigrateFileRepoLayoutTest::tearDown
 * - Cleaned up int|INF doc type to avoid IDEA errors
 * - Enable autocompletion for Special:ComparePages
 * - Add space between classes in HTMLButtonField
 * - Revert &quot;Load all CSS in the top queue&quot;
 * - Add @throws tag to Database::insert
 * - registration: Fix namespaces added through the ExtensionProcessor
 * - Ignore DBPerformance thresholds in Special:ConfirmEmail
 * - Avoid using DB_MASTER in SpecialEditWatchlist::getWatchlist
 * - Defer spreadAnyEditBlock post-send
 * - Removed deprecated $wgMasterWaitTimeout; not used by LoadBalancer
 * - Allow stop characters as quoted attribute delimiters
 * - Return HTTP 429 when thumbnailing is throttled due to too many errors
 * - Load User via READ_LATEST in ApiOptions to avoid CAS errors
 * - Only load gallery styling rules when galleries are on the page
 * - Reduced some instances of HTTP 500 in thumb.php
 * - Avoid $newid IDEA &quot;possibly undefined&quot; error in insertOn
 * - poolcounter: Convert slow-parse to LoggerFactory with data context
 * - Remove JS for FancyCaptcha adjustment
 * - Replace bundled IPSet library with composer dependency
 * - Add the mediawiki.experiments module
 * - maintenance: Handle errors in deleteEqualMessages.php
 * - jquery.byteLimit: Expose trimValueForByteLength as trimByteLength
 * - Add @todo comment for I4b0e55fe
 * - Rephrase tooltip-t-contributions for better grammar
 * - Move counter stuff to 1.26 section of MysqlUpdater
 * - Rephrase tooltip-ca-nstab-special
 * - Remove an optional message from Tamil
 * - deleteEqualMessages.php: Avoid &quot;Transaction already in progress&quot; warning
 * - Fix typo in UploadFromUrlJob::initializeSessionData
 * - API: Rename disablepp and introduce disabletidy
 * - Micro-optimize Language::isMultiByte
 * - Update OOjs UI to v0.12.6
 * - Added jobqueue.pickup_root_age metric
 * - Update OOjs to v1.1.9
 * - Avoid self-deadlocks in MessageCache::replace
 * - Fixed some RequestContext IDEA errors with msg callers
 * - Added reentrant lock support to BagOStuff
 * - objectcache: Document the primary entry points people should use
 * - mediawiki.ForeignApi: Module should target mobile
 * - objectcache: Use newAccelerator fallback instead of try/catch
 * - Fixed LBFactory IDE errors
 * - Fixed usage of ChronologyProtector in MediaWiki
 * - objectcache: Make first parameter of newAccelerator optional
 * - Move job running till after deferred updates
 * - mediawiki.api.upload: Improve error handling when using #uploadToStash
 * - mediawiki.api.upload: Expand documentation
 * - objectcache: Remove use of deprecated $wgSessionsInMemcached
 * - mediawiki.ForeignApi: Use location instead of window.location
 * - mediawiki.api.uploadWithFormData: Implement in terms of existing mw.Api functionality
 * - API: More avoiding MySQL filesorts in list=allpages
 * - mediawiki.special.upload: Use jquery.spinner properly, instead of only its CSS classes
 * - ResourcesOOUI: Remove now-unnecessary selector
 * - Fixed HashRing IDE errors
 * - Fixed &quot;undefined class&quot; IDE errror from INF use in @param
 * - Moved onArticleEdit lines around for clarity
 * - Fix classname mismatch between upload js and templates/thumbnail.html
 * - BagOStuff: Don't try to access a protected variable in a closure
 * - Avoid passing anything but a string to Title::newFromText in UploadBase::getTitle
 * - resourceloader: Remove irrelevant properties from FileModule hash
 * - Add JamesF to credits in developers section
 * - Move Tyler and Chris to the developers section of CREDITS.
 * - Add Geoffrey Mon (Sn1per/GEOFBOT) to CREDITS
 * - Add Adyghe to Names.php
 * - BagOStuff: Don't use $this in a closure
 * - Fixed IDE error in mergeViaLock
 * - Revert &quot;Count API and hook calls, with 1:1000 sampling&quot;
 * - Include job attempt count for redis in showJobs.php
 * - OOUIHTMLForm: Display errors in a nicer way, part 2
 * - HTMLForm: Move header formatting OOUI-specific code to OOUIHTMLForm
 * - HTMLForm: Move section formatting OOUI-specific code to OOUIHTMLForm
 * - OOUIHTMLForm: Display errors in a nicer way, part 1
 * - resourceloader: Remove old experimental &quot;AsyncLoading&quot; feature
 * - Introduce mediawiki.ForeignApi
 * - Fix so wfResetOutputBuffers doesn't break unit tests
 * - Unbreak wfResetOutputBuffers
 * - Remove redundant comment-stripping in OutputPageTest
 * - Provide fallbacks for use of mb_convert_encoding in HtmlFormatter
 * - Add comments for ParserOptions::getUserLang regarding cache split
 * - Fixed ParserCache IDE warnings
 * - resourceloader: Remove remoteBasePath from FileModule version hash
 * - Revert &quot;Adding release note for category changes in watchlists&quot;
 * - Revert &quot;Enable users to watch category membership changes&quot;
 * - mediawiki.api.upload: Use this.defaults.parameters instead of all-custom params
 * - mediawiki.api.upload: Clean up the iframe and form when done
 * - mediawiki.api: Correctly handle boolean parameters
 * - mediawiki.Upload: Allow passing mw.Api objects, not just configs
 * - jquery.byteLimit: Trigger 'change' event after limitting
 * - TitleInputWidget: Add 'maxLength' of 255 and use $.byteLimit
 * - TitleInputWidget, UserInputWidget: Allow overriding 'infusable'
 * - TitleInputWidget: Allow suppressing search suggestions
 * - Refactor NamespaceInputWidget
 * - Add public keywords to QueryPage subclasses
 * - Replace 'emailpage' with 'emailuser'
 * - Made MWTimestamp handle UNIX floats
 * - Prevent PRAGMA query spam in debug/DBPerformance logs
 * - Added $ttl sanity check to WANObjectCache::delete
 * - Tiny clean up of Parser::doQuotes
 * - Switched job run time profiling to context getStats
 * - Move HTMLForm-specific styles out of mediawiki.legacy.shared
 * - Fixed BagOStuff getScopedLock docs
 * - Use stock BagOStuff lock methods in MessageCache
 * - API i18n: Split existing non-English prop messages for param-per-value
 * - Remove maintenance script fixSlaveDesync.php
 * - Set 'List-Help' header for watchlist emails
 * - Avoid full RC table scans in ChangeTags::updateTags
 * - RC: Handle getLine returning null, which breaks Redis engine (at least HHVM)
 * - Update OOjs UI to v0.12.5
 * - Fixed BufferingStatsdDataFactory::timing callers to use ms
 * - Sync up with Parsoid parserTests.
 * - T106578: Update Sanitizer to match legal HTML5 character entities.
 * - Support IPv6 URLs in bracketed and auto links.
 * - Migrate move protect log to new log system
 * - Load all CSS in the top queue
 * - mediawiki.Upload, mediawiki.Upload.Dialog: Tweak documentation
 * - Prevent the jumbling up of autocomments in RTL
 * - Avoid some possible deadlocks on account creation
 * - CSSMin: version URLs based on content, not mtime
 * - mediawiki.feedback: Use .parent instead of .super
 * - Add American sign language (ase)
 * - Sync up with Parsoid parserTests.
 * - mediawiki.api: Small code quality and documentation tweaks
 * - Fix return value comment on wfMemoryLimit
 * - Rename variable to avoid collisions
 * - i18n: Make noarticletext direction aware
 * - SpecialAllPages: Fix a few subtle &quot;Previous page&quot; link bugs
 * - Cleanup after extraction of utfnormal library
 * - CSSMin: remove dot segments in relative local URLs
 * - Rename mediawiki.legacy.feeds to mediawiki.feedlink
 * - Chinese Conversion Table Update 2015-7
 * - Only convert boolean true/false to !0/!1
 * - Always call setValidationHash in MessageCache::saveToCaches
 * - Made WANObjectCache::get comments more accurate
 * - mediawiki.legacy.common: don't embed legacy images
 * - Add mediawiki.legacy.feeds
 * - Fix some space-related phpcs warnings in includes/
 * - Remove unused globals
 * - Make PPFrame::RECOVER_COMMENTS actually work
 * - mediawiki.legacy.config: use own help-field styling
 * - mediawiki.special.upload: use spinner from jquery.spinner
 * - Include job UUID in doAck error message
 * - Fixed IDE warning in doIsRootJobOldDuplicate
 * - Add pear/mail_mime-decode to composer suggests
 * - Add simplified storage API
 * - MessageCache: derive the hash from the cache contents
 * - Optimize the order of styles and scripts in &lt;head&gt;
 * - ResourceLoader: apply minify-js filter to config scripts
 * - Adding release note for category changes in watchlists
 * - Add descriptions for composer.json suggested packages
 * - JavaScriptMinifier: minify booleans
 * - UserMailer comment cleanup
 * - Add PEAR's Mail and Mail_Mime to composer.json's suggestions
 * - More multi-DC tweaks to MessageCache::load
 * - Fix some newlines in en.json of API
 * - Pass user to WikiPage::doEditContent from EditPage
 * - Skip adding wikitext test pages in PrefixSearchTest if NS_MAIN is not wikitext
 * - Ignore tagfilter url parameter on Special:EditTags for log items
 * - Don't add a link to Special:RecentChanges when tag filter is disabled
 * - Import BatchRowUpdate classes from Echo
 * - Added a tombstone comment to WANObjectCache
 * - Update OOjs UI to v0.12.4
 * - Added statsd metrics for ObjectCacheSessionHandler
 * - Enable users to watch category membership changes
 * - Change &quot;1 title&quot; to &quot;A single title&quot; in watchlistedit-normal-done
 * - Expose ICU version on Special:Version
 * - Adding documentation for new RandomPageQuery hook to hooks.txt
 * - Adding a new hook to allow modification of Special:Random query
 * - Try to make POSTs as transactional as possible
 * - Optimized notification timestamp clearing
 * - Preferences: Don't load all default options for every default preference
 * - Added wfTransactionalTimeLimit method and applied it
 * - Output stylesheet links before other link elements in &lt;head&gt;
 * - Revert &quot;mediawiki.page.ready: When infusing, infuse by id, not by element&quot;
 * - Update OOjs UI to v0.12.3
 * - wikibits.js: Support multiple parameter in document.write
 * - Restored I4afaecd8: &quot;Avoiding writing sessions for no reason&quot;
 * - Fixed @var doc in MultiWriteBagOStuff
 * - Fix argument handling in MultiWriteBagOStuff::get
 * - ResourceLoader: make `cacheReport` option false by default
 * - SECURITY: Don't disclose if an IP is autoblocked on Special:DeletedContributions
 * - thumb.php: Escape $rel404 in error message
 * - SECURITY: API: Use constant-time comparison for watchlist token
 * - Add mw.Upload.Dialog as a UI to mw.Upload
 * - Revert &quot;resourceloader: Add must-revalidate to Cache-Control&quot;
 * - Include generated metadata for redirects
 * - Count API and hook calls, with 1:1000 sampling
 * - MessageCache: use APC for local caching, rather than files
 * - Moved ObjectCacheSessionHandler renewal logic to wfSetupSession
 * - Removed ScopedPHPTimeout; unused
 * - Load 'mediawiki.legacy.commonPrint' styles with a media type property
 * - Add date format for Latvian language
 * - Avoid fatal when accessing method of non-objects on Special:Undelete
 * - Add MessagesSdh.php for Southern Kurdish
 * - Update namespace for Khowar language (khw)
 * - Remove all-caps emphasis from simpleantispam-label
 * - Match salt of WatchAction::show and getWatchToken
 * - mediawiki.legacy: Use 'none' rather than 'initial' to remove border
 * - SpecialVersion: Handle Closures in $wgHooks nicer
 * - Use Config instead of globals
 * - Override document.writeln to prevent it from blanking pages
 * - Made JobRunner bail more smoothly on near OOM
 * - mediawiki.legacy: Use CSS3 underlining for &lt;abbr&gt;
 * - Remove use of deprecated TestUser-&gt;user
 * - Log human-readable login status
 * - Fix the display of the libraries in Special:Version for RTL wikis
 * - Update namespace names for Sanskrit
 * - Avoid update.php suggestion on DB connection errors
 * - Revert &quot;Add executable rights for executable (bash) files&quot;
 * - Made BagOStuff::merge avoid retries on I/O errors
 * - resourceloader: Restore anticipated loader states for hardcoded module requests
 * - Fixed occasional MultiHttpClient &quot;undefined index&quot; errors
 * - Move pager inside searchresults div
 * - Remove unnecessary ZWNJ character [azb]
 * - Fixed deadlockLoop IDE errors
 * - Remove unused StatsdClient use from GlobalFunctions
 * - Add 'targets=desktop,mobile' to mediawiki.legacy.wikibits module
 * - mediawiki.notify: Add JSDoc tags
 * - Test index duplication in DatabaseSqlite
 * - Enforce an alphabetic default order for SiteList entries
 * - Status: Correct documentation
 * - Duplicate table indexes in DatabaseSqlite::duplicateTableStructure
 * - API: Use message-per-value for apihelp-query+categories-param-prop
 * - API: Use message-per-value for apihelp-query+allcategories-param-prop
 * - API: Use message-per-value for apihelp-query+watchlistraw-param-prop
 * - API: Use message-per-value for apihelp-query+users-param-prop
 * - API: Use message-per-value for apihelp-query+userinfo-param-prop
 * - API: Use message-per-value for apihelp-query+tags-param-prop
 * - API: Use message-per-value for apihelp-query+siteinfo-param-prop
 * - API: Use message-per-value for apihelp-query+search-param-prop
 * - API: Use message-per-value for apihelp-query+protectedtitles-param-prop
 * - API: Use message-per-value for apihelp-query+pageswithprop-param-prop
 * - API: Use message-per-value for apihelp-query+logevents-param-prop
 * - API: Use message-per-value for apihelp-query+linkshere-param-prop
 * - API: Use message-per-value for apihelp-query+langlinks-param-prop
 * - API: Use message-per-value for apihelp-query+langbacklinks-param-prop
 * - API: Use message-per-value for apihelp-query+iwlinks-param-prop
 * - API: Use message-per-value for apihelp-query+iwbacklinks-param-prop
 * - resourceloader: Fix undefined $filename in safeFileHash
 * - Replace native &quot;document.write&quot; with deprecated fallback
 * - resourceloader: Restore &quot;blocking&quot; legacy modules
 * - mediawiki.action.edit.stash: reduce idle time from 4k to 3k
 * - API Credits proper ordering
 * - jsduck: Update eg-iframe.html to match MediaWiki environment
 * - API: Use message-per-value for apihelp-query+filearchive-param-prop
 * - API: Use message-per-value for apihelp-query+exturlusage-param-prop
 * - API: Use message-per-value for apihelp-query+categorymembers-param-prop
 * - API: Use message-per-value for apihelp-query+blocks-param-prop
 * - API: Use message-per-value for apihelp-query+allusers-param-prop
 * - API: Use message-per-value for apihelp-query+alllinks-param-prop
 * - resourceloader: Convert FileModule to use version hashing
 * - API: Ignore '_' parameter in jsonp callback mode
 * - Remove unreachable block
 * - qunit: Improved unfinished ajax detection
 * - docs: Add examples for mw.Upload
 * - Fixed headers sent in addMissingMetadata
 * - Remove thumbnailaccess logging
 * - Cleaned up and split up Swift header parsing methods a bit
 * - docs: Move mw.Upload documentation under the Interface heading
 * - resourceloader: Fix RLQ script to support IE8 quirk
 * - mediawiki.notification: Add message type with predefined styles
 * - Added BagOStuff READ_LATEST flag for replicated stores
 * - Made EnqueueJob use the same dummy title as the JobSpecification default
 * - mw.widgets.DateInputWidget: Display a translateable placeholder
 * - Make Special:ConfirmEmail load the user from the master
 * - resourceloader: Async all the way
 * - mw.widgets.DateInputWidget: Add missing background
 * - mw.widgets.DateInputWidget: Don't get stuck on today's date if none given
 * - Sync up with Parsoid parserTests.
 * - Parser: Don't generate an external link on &quot;http://)&quot; and similar
 * - mw.widgets.DateInputWidget: Add @example
 * - mw.widgets.CalendarWidget: Improve today's date highlighting
 * - mw.widgets.DateInputWidget: Don't set today's date on activation
 * - SpecialJavaScriptTest: Bypass ResourceLoader 'target' scope
 * - resourceloader: In startup, move RLQ handling to after mw.config
 * - Sample StatsD messages when instructed
 * - Automatically de-duplicate EnqueueJob jobs when possible
 * - Delete &quot;Currently unused&quot; regarding generateTOC
 * - Use lower case edit link on Special:WhatLinkshere
 * - registration: Document 'templates' property of ResourceModules objects
 * - Hide edit toolbar Signature button in non-discussion namespaces
 * - Remove Sajax
 * - Add base interface for setters in RequestContext and DerivativeContext
 * - registration: Actually set the merge strategy for $wgExtensionCredits
 * - registration: Allow setting $wgCapitalLinkOverrides
 * - registration: Allow setting $wgNamespaceProtection
 * - registration: Overhaul merging of globals
 * - Update the comment in MessagesAzb.php to be consistent with Names.php
 * - refreshLinks.php: Don't wait for slaves if nothing found in a chunk
 * - ApiQueryInfo: Remove unused variable
 * - Remove classmap-authoratative: true from composer.json
 * - Use notification on successful preferences save
 * - Use XmlSelect in SpecialListusers
 * - resourceloader: Remove ESI support (previously disabled)
 * - OutputPage: Add \n between &lt;/style&gt; and &lt;script&gt;
 * - Improve the phrasing of tooltip-preview
 * - Improve the grammar of tooltip-search-go
 * - Changed &quot;archived (revisions)&quot; to &quot;deleted (revisions)&quot;
 * - registration: Fix merging of $wgRevokePermissions
 * - registration: Fix &quot;namespaces&quot; schema to match code
 * - Revision::newNullRevision: Make sure the Title is set in the constructor
 * - Revert I4afaecd8: Avoiding writing sessions for no reason
 * - Fix spelling mistake in ResourceLoader inline documentation
 * - refreshLinks.php: Fix deletion of link entries from nonexistent pages
 * - mediawiki.filewarning: Use 'visibility: hidden' instead of 'display: none'
 * - Monolog: Add Formatter that uses MWExceptionHandler::getRedactedTraceAsString
 * - mw.widgets.DateInputWidget: Allow not having a date selected
 * - resourceloader: Use WrappedString library to merge RLQ inline scripts
 * - XmlSelect: Tweak documentation
 * - Use Perso-Arabic numberic system for South Azeri (azb)
 * - array_shift returns null on empty array, not false
 * - Add wikimedia/wrappedstring library
 * - Make Special:MIMESearch expensive again
 * - Throw exception on falsy server in RedisConnectionPool.
 * - resourceloader: Restore minification for 'user' and 'site' module
 * - Use XmlSelect in ProtectionForm
 * - Use XmlSelect in WebInstallerPage
 * - Add getImageInfo to mw.Upload
 * - Revert &quot;Use OOUI HTMLForm for Special:Watchlist&quot;
 * - resourceloader: Convert inline statements to queued functions
 * - Add pageid to API parse output
 * - Use STRAIGHT_JOIN in SpecialWhatlinkshere query
 * - ObjectFactory: add support for setter injection
 * - Added sanitizeHdrs tests for Swift
 * - logger: Fix undefined variable $data
 * - resourceloader: Ensure 'user' loads after 'site' (asynchronously)
 * - Have RedisConnectionPool explicitly implement Psr\Log\LoggerAwareInterface
 * - RedisConnectionPool: convert to PSR3 logging
 * - resourceloader: Implement support for 'site' into mw.loader
 * - A clearer wording for apihelp-query+info-paramvalue-prop-displaytitle
 * - Add Content-Length header to thumb.php redirects
 * - mw.widgets.CalendarWidget: Silence jshint for one line, not entire file
 * - Switch search-suggest message to use Message::parse
 * - Special:WhatLinksHere Don't show edit links for non-direct-editing pages
 * - Avoid revision lookup post-save in InfoAction::invalidateCache
 * - Defer the InfoAction purge in onArticleEdit
 * - RedisBagOStuff: if no alternatives, skip master link status check
 * - Update OOjs UI to v0.12.2
 * - HTMLForm: Correct documentation
 * - Track key authentication metrics
 * - Update liuggio/statsd-php-client: v1.0.12 -&gt; v1.0.16
 * - Log errors in Http::request
 * - Fix Southern Luri autonym
 * - Implement redirects in CssContent
 * - Fix typo: requiered -&gt; required
 * - Don't retry invalid thumbnail requests due to impossible width
 * - Gather more information about pre rendering 500s
 * - Fix the grammar of apihelp-options-param-option(name|value)
 * - Consistent wording of tog-enotifwatchlistpages
 * - resourceloader: Add must-revalidate to Cache-Control
 * - resourceloader: Move startup code from PHP to startup.js
 * - Put &quot;userjs-&quot; in &lt;code&gt; in apihelp-options-description
 * - Fix the logic of the message apihelp-tag-example-rev
 * - Consistent wording for &quot;Protocol of the URL&quot; messages
 * - Use OOUI HTMLForm for Special:Watchlist
 * - Updater: Avoid fatal on wfLoadSkin/wfLoadExtension
 * - Fix grammar in apihelp-query+deletedrevs-param-prop
 * - Moment.js: Use DMY date format for English
 * - Fix grammar in apihelp-query+filearchive-param-prop
 * - Replace all-caps with &lt;strong&gt; in an apihelp message
 * - Add full stop to apihelp-query+revisions+base-param-difftotext
 * - Fix the grammar of apihelp-query+backlinks-param-limit
 * - Change spelling in apihelp-emailuser-example-email
 * - Fix the logic in an apihelp message
 * - Don't let LinkCache grow indefinitely
 * - SpecialBlock: Simplify HTMLForm submit callback handling
 * - Implement CalendarWidget and DateInputWidget
 * - Actually run the Less compilation tests
 * - Improve messages related to $wgAllowCategorizedRecentChanges
 * - Decolonize 'viewsourcetext' and 'viewyourtext' messages
 * - Auto-forward to search suggestion when zero results
 * - Kill broken OOUI implementations of HTMLSelectAndOtherField, HTMLSelectOrOtherField
 * - mediawiki.legacy.shared: Set form field labels to 'vertical-align: middle'
 * - Convert Special:RandomInCategory to use OOUI display format
 * - HTMLTitleTextField: Support 'relative' config option
 * - Read extension.json files in the web updater
 * - Show correct default limit in Special:BlockList
 * - SpecialStatistics: Implement statistics-articles-desc message
 * - API: Use message-per-value for apihelp-query+usercontribs-param-prop
 * - API: Use message-per-value for apihelp-query+recentchanges-param-prop
 * - Remove references to Popularpages alias
 * - Added CachingSiteStore APC comments
 * - SpecialAllMessages: Add missing &lt;select id=&quot;&quot;&gt; for the &lt;label for=&quot;&quot;&gt;
 * - Allow to enable OOUI via a parser tag extension
 * - SpecialChangeContentModel: Use autocomplete for title field
 * - Allow HTMLTitleTextField to work on GET forms
 * - Populate rev_content_model when a move causes default content model to change
 * - Revert &quot;Convert Special:Search to OOUI&quot;
 * - Escape return of if message not exists
 * - Escape unescaped content shown in Special:BlockList
 * - HTMLForm: Allow IP adresses as username in HTMLUserTextField
 * - The http-invalid-url message has a parameter, so send it
 * - HTMLUserTextField: &quot;else if&quot; → &quot;elseif&quot;
 * - Suppress stdin warning with --quiet
 * - resources: Provide jquery.i18n (v1.0.3)
 * - Log exceptions in the StatsD process
 * - build: Use blacklist instead of whitelist for jshint/jscs/jsonlint
 * - Fixed missing space in User CAS exception
 * - WAN and stash cache notes
 * - HTMLForm: Allow to set the primary flag for submit buttons
 * - Update OOjs to v1.1.8
 * - OutputPage: Load skin-appropriate OOUI theme
 * - ResourcesOOUI: Convert theme names to lowercase
 * - Update fallback order for luz
 * - OutputPage.php: Use descriptive $variant instead of $_v as local variable
 * - SpecialAllMessages: Apply wfBCP47 to HTML lang attribute
 * - mw.ui: Fix broken hover state for quiet buttons
 * - Fix doxygen return class with namespace
 * - HTMLForm: Handle HTMLFormFieldWithButton subclasses in OOUI forms
 * - Don't double-serialize values for APC
 * - Add Southern Luri (luz)
 * - Disallow qqq as interface language
 * - Fix name of Western and Southern Balochi
 * - Improved addMissingMetadata on POST failure
 * - Use feature test rather than version check
 * - Update OOjs UI to v0.12.1
 * - Clear the stat cache in addMissingMetadata to avoid more POSTs
 * - Add id to Parser tags/hooks headings
 * - Add linktrail for Latvian
 * - Add LICENSE for mustache.js library
 * - mw.widgets.TitleInputWidget: Don't bypass namespace choice with redirects
 * - mw.widgets.TitleInputWidget: Allow limiting to main namespace, too
 * - widgets: Code quality and cleanup pass
 * - Made DB ignoreErrors method protected
 * - Rework PHP and vendor check
 * - Allow numeric statsd key name components
 * - Fixed various FileBackendDBRepoWrapper errors found in IDE
 * - Support for storing files under SHA-1 names
 * - Update button focus and hover state according to spec
 * - tiny optimization Title::isValidRedirectTarget
 * - Clean up UserMailer::send parameters
 * - mw.loader: Fix late loading of CSS in certain cases
 * - Avoid logging query in wasDeletedSinceLastEdit if the page still exists
 * - Log thumbnail access
 * - Fix doxygen warnings for missing commands
 * - Fix doc-blocks for some HTMLForm elements
 * - Implement OOUI version of tag filter in ChangeTags
 * - Correct documentation of ChangeTags::buildTagFilterSelector
 * - Support redirects in JavaScriptContent
 * - Don't ignore autofocus in HTMLForm
 * - Implement UserInputWidget in OOUI/MW Widgets
 * - Fix notice on Special:UserLogin
 * - Do not suggest alternate svg sizes bigger than $wgMaxSVGSize on img pg
 * - Removed redundant signatures from DatabaseBase
 * - Use CACHE_ACCEL for SiteLists if on HHVM
 * - Increase $wgSVGMaxSize to 5120 pixels wide (previously 2048).
 * - Fix fatal when non-ascii message key is normalized
 * - Add tests for 47e0f0c3 (MessageCache::normalizeKey)
 * - findHooks: Exit with a status code of 1 if issues are found
 * - maintenance: Add --query option in sql.php
 * - Allow whitespace between indent and table start tag
 * - Add public keywords to the QueryPage base class
 * - Set $wgPasswordResetRoutes['email'] = true by default
 * - Fix name of the 'PageViewUpdates' hook in docs
 * - Add missing paths to maintenance/findHooks.php
 * - Check for any content of MediaWiki namespace titles before passing it through ContentHandler
 * - Added FIXME to default Database replace implementation
 * - Defer user_newtalk updates in clearNotification to post-send
 * - Make the User Timing API safe to use in MediaWiki
 * - Avoid using trigger_error in addMissingMetadata
 * - Removed squid purge in generateAndSaveThumb
 * - Special:JavaScriptTest: Redirect to /qunit/plain by default
 * - Don't break installation when the local db root user has no password
 * - Implement NamespaceInputWidget
 * - Refine thumbnailing metrics
 * - Namespace names for Western Punjabi (pnb)
 * - InfoAction: Use watchlist query group for watchlist queries
 * - Update Namespaces, SpecialPageAliases and MagicWords for South Azerbaijani (azb)
 * - TitleInputWidget: Correct links when 'relative' option used
 * - OOUIHTMLForm: Make sure arguments to OOUI\HtmlSnippet are really strings
 * - This should fix T105373
 * - mediawiki.page.ready: When infusing, infuse by id, not by element
 * - Use Node.ELEMENT_NODE and Node.TEXT_NODE constants instead of magic numbers
 * - Allow extensions to add a banner to UserLogin and CreateAccount special pages
 * - mediawiki.api.upload: Correct response handling of #uploadWithFormData
 * - Fix issue with needToken patch to Api.upload
 * - Chinese Conversion Table Update 2015-6
 * - API: Fixed documentation for hasmg parameter
 * - Convert MWExceptionHandler to use structured logging
 * - Use deferred updates in place of $wgActivityUpdatesUseJobQueue
 * - Ignore some ScopedCallback IDE warnings
 * - Add a bailout method for getEditToken
 * - Normalize message name in Allmessages
 * - jquery.makeCollapsible: Make it possible to clone a collapsible
 * - Add MediaWiki-Timestamp header to ResourceLoader requests
 * - Moved LoadMonitorMySQL to a separate file
 * - Fix MultiHttpClient to return correct errors
 * - TitleInputWidget: Correct CSS class name in PHP code to match JS code
 * - Add &quot;purpose&quot; to password validity check
 * - Added DBAccessObjectUtils class to avoid duplication
 * - Tweaked User::READ_LOCKING to use LOCK IN SHARE MODE
 * - Record timing of thumbnail generation and store pull
 * - Update OOjs UI to v0.12.0
 * - Set $wgMainWANCache to none for PHPUnit, as is done for $wgMainCacheType
 * - Revert &quot;Add 'AuthPluginStrict' log to identify users who are unable to authenticate&quot;
 * - Fixed edit stash inclusion queries
 * - Fixed User class IDE warnings
 * - objectcache: Add WANObjectCache::resetCheckKey method
 * - API: improve pageswithprop explanation
 * - Move StatsD key normalization from ProfilerOutputStats to BufferingStatsdDataFactory
 * - Add mw.Upload for easy tracking of uploads
 * - Add stash support for mw.Api.upload
 * - Add support for FormData in mw.Api.upload
 * - Add frontend API for uploading via iframe
 * - Add 'AuthPluginStrict' log to identify users who are unable to authenticate
 * - SpecialLinkSearch: Switch to OOUI form
 * - OOUIHTMLForm: Implement HTMLSelectNamespace
 * - OOUIHTMLForm: Support setWrapperLegend
 * - mediawiki.jqueryMsg: Remove toLowerCase from substitution
 * - Remove &lt;code/&gt; from 'linksearch-text' message
 * - browsertests: upgrade watir-webdriver
 * - rebuildLocalisationCache: don't limit memory usage
 * - Fix variable name (follows Ib2c5856d)
 * - Pass function name in SearchMySQL::minSearchLength
 * - Add edit link to each row on Special:WhatLinksHere
 * - OOUIHTMLForm: Wrap help text in OOUI\HtmlSnippet
 * - Disable browser provided autocomplete function in TitleInputWidget
 * - Use finite verb (indicative) in pageinfo-visiting-watchers
 * - SpecialLinkSearch: Use 'type' rather than 'class' for HTMLForm's HTMLSelectNamespace
 * - HTMLForm: Handle Flags in non-OOUI form buttons, too
 * - Ignore tagfilter url parameter on Special:EditTags
 * - Use correct variable in UserCache::doQuery
 * - Pass context to parent constructor in PackedImageGallery
 * - Fixed bitfield check in User::loadFromId
 * - Made the prior user existence check in LoginForm use DB_MASTER
 * - Pass function name in DatabaseMysqlBase::setBigSelects
 * - Pass function name in Database::selectRowCount
 * - SECURITY: Do not allow data-ooui attributes in wikitext
 * - Protect against non-text output from StripState going into Title::newFromText
 * - Don't try to call load on non-object
 * - Fix sql.php behavior on error
 * - MonologSpi: Add method to provide additional configuration
 * - ApiFeedWatchlist: Handle revdel
 * - resourceloader: Make tests less susceptible to timestamp races
 * - API: Improve upload error reporting
 * - Gruntfile.js: Remove unused 'pkg'
 * - rubocop: ignore node_modules and fix a single offense
 * - Upgraded User::saveSettings logged errors to exceptions
 * - Change &quot;included&quot; to &quot;transcluded&quot; in messages about cascading
 * - Fixed BadMethodCallException in FileRepo for bad titles
 * - TitleInputWidget: Override getJavaScriptClassName and remove infuse hack
 * - importScopedSession comment updates
 * - jobqueue: Enable job retries by default in $wgJobTypeConf
 * - Made LoadMonitor use wfGlobalCacheKey and tweaked the key name
 * - Sync up with Parsoid parserTests.
 * - Convert Special:Search to OOUI
 * - jobqueue: Fix typo in claimTTL documentation
 * - HTMLForm: Add 'title' type
 * - build: Move PHPCS configuration to phpcs.xml
 * - MovePage: Don't try to pass non-strings into Title::newFromText
 * - Do not encode '~' as %7E. Fixes redirect loop in chrome.
 * - Allow detected external links to linebreak at any place
 * - Cleanup in doTableStuff
 * - Fix inaccurate documentation re $wgEnotifMinorEdits
 * - APIQueryImageInfo: Set META_BC_BOOLS for 'value' in 'metadata' block
 * - T105242: U is for urlencode
 * - Sync up with Parsoid parserTests.
 * - Unbreak missing flags in enhanced RC
 * - Revert Count API module instantiations and Hook runs
 * - Parser: Avoid producing &lt;span&gt;&lt;/span&gt; in the TOC
 * - Sort $wgLogActionsHandlers/$wgLogActions/$wgLogHeaders
 * - Update environments.yml file according to the documentation
 * - When aborting EnhancedRC block line, block should reflect that
 * - mediawiki.api: Include 'mobile' target in mediawiki.api.parse module
 * - mediawiki.api: Refactor to use server.respondImmediately
 * - Update OOjs UI to v0.11.8
 * - HTMLTextAreaField: Honor 'rows' setting in OOUI format
 * - Explain API action=parse&amp;disablepp option more clearly
 * - Empty attribute syntax
 * - Allow using createAndPromote.php with custom groups
 * - Improve serialization of Message, Title
 * - backupTextPassTest: Disable flaky test 'testCheckpointPlain'
 * - API: Move stats update for API module execution to when the module is actually executed
 * - Add alias for Special:ChangeContentModel
 * - resourceloader: Set a TTL for minification cache entries
 * - qunit: Restore sinon.sandbox after teardown instead of before
 * - Update Sinon.JS to 1.15.4
 * - Update QUnit to v1.18.0
 * - Move `$.extend( OO.ui, mw.widgets )` hack to 'mediawiki.widgets' module
 * - OutputPage: Only set &lt;link hreflang=x-default&gt; on wiki/pages with variants
 * - mediawiki.ui: Add @activeColor argument to the .button-colors mixin
 * - Support mustache partials in server-side templates
 * - Update composer-merge-plugin to v1.2.1
 * - Add Content-Length header to thumb.php error responses
 * - Hygiene: Use strtr instead of str_replace for character swapping
 * - API: Use ApiBase::PARAM_HELP_MSG_PER_VALUE for 'prop' in query+watchlist
 * - Add tests for Special:BlankPage
 * - Add SpecialPageTestBase to simplify testing of special pages
 * - API: Avoid caching when prop=info&amp;intestactions=... is used
 * - TitleInputWidget: Add 'relative' option
 * - editWarning: Declare dependency on user.options
 * - mediawiki.jqueryMsg: Declare dependency on user.options
 * - Ignore tagfilter url parameter on Special:Undelete
 * - i18nize Special:RandomInCategory submit button
 * - mediawiki.searchSuggest: Allow multiple suggestion fields
 * - Use localization for server default timezone on Special:Preferences
 * - Made recent changes purge jobs bail more aggressively
 * - Removing obsolete `-moz-inline-block` property
 * - Allow hooks to abort lines in EnhancedRC
 * - Add hook EnhancedChangesListModifyBlockLineData
 * - API: Remove some unused i18n messages
 * - API: Use message-per-value for apihelp-query+revisions+base-param-prop
 * - FauxRequest: Add @since for new setHeaders and setCookie methods
 * - RawAction: Clean up max-age/s-maxage computation
 * - Count API module instantiations and Hook runs
 * - Avoid postgres IDE error with doQuery visibility
 * - Formally defined IDatabase and made a few Database methods protected
 * - Add cookies and improve headers in FauxRequest
 * - Declare and document $wgStatsdServer and $wgStatsdMetricPrefix
 * - Revision: Interpret a NULL rev_content_model as the default model
 * - Made WANObjectCache::getCheckKey automatically init the key
 * - mediawiki.jqueryMsg: Use load urls instead of file urls for debug
 * - Change &quot;? :&quot; to &quot;?:&quot;
 * - Fix reference to nonexistent ApiBase::getModulePathString in inline docs
 * - Ensure DerivativeContext has a $stats property
 * - Correct mw-ui-icon size
 * - Don't try looking for phpunit if it is already loaded
 * - Improved job pickup time stats for delayed jobs
 * - Add explicit GENDER to logentry-contentmodel-change
 * - mw.Title: Handle empty this.title
 * - Update OOjs UI to v0.11.7
 * - Add syntax for directionality-safe arguments
 * - API: Remove WDDX and dump formats
 * - Account for unset visiting watchers
 * - Attempt to count actual watchers in the info action
 * - Better error message via api when content model does not allow editing
 * - Add missing dependency to mediawiki.widgets
 * - Replace some MWException usage in User
 * - objectcache: Ensure an integer put into memcached comes out an integer
 * - resourceloader: Make minify cache keys globally shared instead of local
 * - Add maintenance script to populate page,revision,archive.*_content_* fields
 * - Add Special:ChangeContentModel
 * - OOUIHTMLForm: Make setting 'readonly' on a text field actually work
 * - Parser: Correct setHook documentation
 * - API: Deprecate generatexml of modules revisions/deletedrevisions/parse
 * - Switched upload chunk status store to the main object stash
 * - Automatically infuse any infusable OOUI widgets present on the page
 * - Make an apihelp message less repetitive
 * - SpecialDoubleRedirects: Remove redirect=no for action=edit
 * - resourceloader: Move applyFilter stats back to filter
 * - Add a PHP implementation of TitleInputWidget
 * - Check install user's password as sysop/bureaucrat
 * - resourceloader: Add timing metrics for key operations
 * - tooltip-ca-edit: Simplify wording to align with others
 * - Create a subdirectory for compatibility stubs
 * - Remove use of deprecated utf8ToCodepoint in ApiFormatXml.
 * - Pass user to WikiPage::doDeleteArticleReal
 * - Log http error in ForeignAPIRepo::httpGet
 * - Remove a few more PHP4-isms from update.php
 * - Don't cast SpecialPageFactory::$aliases to an object
 * - database: Small DB class cleanups
 * - Add class to items in changeslist legend
 * - Set 644 file permissions on some *.php files
 * - Switch some HTMLForms in special pages to OOUI
 * - Remove unused message 'passwordreset-legend'
 * - SpecialResetTokens: Switch to OOUI form
 * - UserrightsPage: Avoid passing null target
 * - OOUIHTMLForm: Implement HTMLRadioField
 * - OOUIHTMLForm: Implement HTMLMultiSelectField
 * - OOUIHTMLForm: Correctly handle submit modifier flags
 * - mediawiki.log: Remove call to console.trace for each warning
 * - OOUIHTMLForm: Make the submit button infusable
 * - Chinese Conversion Table Update 2015-5
 * - build: Updating development dependencies
 * - Allow extensions to set $wgDisableCounters.
 * - Remove deprecated $wgSpecialPageGroups
 * - Add a scary, all-caps warning to the docs for RejectParserCacheValue
 * - Use APC for caching slave lag times
 * - Improve appearance of libraries on Special:Version
 * - RELEASE-NOTES-1.26: Bugzilla is dead, long live Phabricator!
 * - Bump wikimedia/composer-merge-plugin to 1.2.0
 * - Fix and clarify task IDs in RELEASE-NOTES-1.26
 * - Add missing visibility keywords to WebPHandler methods
 * - Add 'EnhancedChangesListModifyLineData' hook
 * - Basic support for WebP
 * - Show on info page
 * - Add more return types to Database class
 * - Made text profiler output a bit less noisy by bumping &quot;thresholdMs&quot;
 * - database: Make LoadBalancer not yield DB objects that hopelessly lost the connection
 * - database: Throw exceptions when dead mysql DB handles are used instead of fatals
 * - Allow &quot;.&quot; in filebackend container prefixes
 * - Fix some PHPCS issues
 * - mediawiki.ui: Add a new 'highlightColor' argument to .button-colors instead of using mix
 * - Fix-up for I2ac604d3c042d
 * - registration: 'FilterLogTypes' is a JSON object
 * - Made User::loadFromId use READ_NORMAL by default
 * - Add new alias for movepage in Bosnian
 * - Fix instances of preg_quote without second parameter
 * - Fix Button label in OOUI HTML Form and enable flags
 * - Remove 'direction: ltr' from 'pre' styles
 * - Also support skin.json for updating JSON AutoloadClasses
 * - Wrap lines in &lt;pre&gt; and .mw-code by default
 * - mediawiki.util: Remove use of deprecated $.isDomElement in test suite
 * - [BREAKING CHANGE] Merge in VE's link input functionality to title widget
 * - Change &quot;userright&quot; to &quot;user right&quot;
 * - Add a preposition for clarity
 * - resourceloader: Pass $context to getDependencies in PHPUnit tests
 * - Made SqlBagOStuff set wrap setMulti
 * - Made ReplicatedBagOStuff wrapping the SQL class the default stash
 * - objectcache: Add tests for ReplicatedBagOStuff
 * - Revert r47388 / 8d9243cf3: Use Title::getLocalURL for rel=canonical links
 * - Document that ParserCache::get may be passed a WikiPage or Article
 * - Configure logged in session length independently
 * - Update OOjs UI to v0.11.6
 * - Made SqlBagOStuff unset DB handles on connection errors
 * - Add RejectParserCacheValue hook
 * - Implement wfGlobalCacheKey for database-agnostic keys
 * - MediaWiki.php: Redirect non-standard title urls to canonical
 * - MediaWiki.php: Factor out tryNormaliseRedirect
 * - Rename WikiPage::isParserCacheUsed to WikiPage::shouldCheckParserCache
 * - Suppress deprecation warnings in 'jquery.mwExtension.test'
 * - Declare .icc files to be binary in .gitattributes
 * - ellapsed =&gt; elapsed
 * - WikiPage::isParserCacheUsed: change 'oldid' to 'oldId'
 * - Hygiene: Use [i] instead of charAt(i) for string index access
 * - Fix undeclared dependency on jquery.mwExtension
 * - Make proxy behaviour of detectServer configurable
 * - Construct clean canonical URLs for wiki pages, ignoring request URL
 * - EditPage: Check $wgContentHandlerUseDB
 * - TinyRGB support for JPG thumbnails
 * - Remove the strong formatting for 'revdelete-suppress'
 * - Set Southern Kurdish to use Kurdish ordered list style type
 * - Change spaces to tabs
 * - Explicitly declare property visibility, remove use of var
 * - tests/phpunit/phpunit.php: Add @codingStandardsIgnore comment
 * - maintenance/exportSites: Fix minor whitespace issue
 * - $wgUseGzip had no effect
 * - Restore namespace-number keys in APIQuerySiteinfo siprop=namespaces
 * - Remove use of $.escapeRE in favour of mw.RegExp.escape
 * - Deprecate jquery.mwExtension
 * - Introduce mediawiki.RegExp module
 * - resourceloader: Small code cleanups to ResourceLoaderModule
 * - Remove double str_replace( ' ', '_', $ ) when using LinkBatch
 * - Add LinkBatch to ImagePage for user pages in the file history
 * - API: Change default continuation format for action=query
 * - Fix some line indent of string concat
 * - Uncomment wfDeprecated call from I6ccd4df
 * - Make constructor of Block accept array of options
 * - Avoid undefined index on Special:Tags
 * - Remove unneeded empty lines at begin of if/else/foreach body
 * - Fix comment for grep in SpecialWantedfiles.php
 * - Use Linker::linkKnown for some links to MediaWiki pages from navigation
 * - Use correct fields for LinkBatch on Special:NewPages
 * - Fix tooltip for invert checkbox on Special:NewPages
 * - Added pre-emptive session renewal to avoid &quot;random&quot; submission errors
 * - resourceloader: Enable module content version for data modules
 * - Fix phpcs warnings
 * - resourceloader: Use content-neutral context when computing module versions
 * - Allow limit and offset to be restricted in subclasses of QueryPage.php
 * - Fixed spacing
 * - Avoid assignment in return in TemplateParser.php
 * - Fix phpcs warnings
 * - Revert &quot;StashEdit: Use postWithToken&quot;
 * - Remove unused global from SpecialUserlogin.php
 * - API: Give block details along with errors
 * - Make a line shorter for phpcs
 * - mw.loader: Omit private modules from the request queue
 * - Fix ChangeTags functions after split of definedTags from tagUsageStatistics
 * - Fix braces code style
 * - Remove multiple empty lines in functions
 * - ResourceLoaderImageModule: Fix incorrect documentation
 * - Update OOjs UI to v0.11.5
 * - registration: Improve error message if a non-array attribute is set
 * - Don't include never-applied defined tags in tagUsageStatistics function
 * - Move dependency on user.tokens from mediawiki.api.edit to mediawiki.api
 * - Fix whitespace issues around parentheses
 * - Made MessageCache use the WAN cache
 * - API: Add some BCarray into ApiQuerySiteinfo
 * - Made User generally use DB_SLAVE by default
 * - Ensure that files end with a newline
 * - Correct quotes in Polish translation
 * - Don't send email notifs to blocked users if $wgBlockDisablesLogin is true
 * - Reduce RC table contention for file deletion
 * - Fix InstantCommons - HTTP access to Commons does not work anymore
 * - Remove i18n references to Popularpages
 * - Add a SpecialSearchResultsAppend hook
 * - build: Remove obsolete jshint exclusion for jscompat
 * - database: Don't treat $defaultSchemas as containing all types/drivers
 * - Update mediawiki/mediawiki-codesniffer dependency to 0.2.0
 * - jobqueue: use more sensible metric key names
 * - composer.json: Set classmap-authoritative: true
 * - Simplify canUpdateTags function in ChangeTags
 * - Avoid muliple cache calls to explicitly defined tags
 * - Use HTMLForm for Special:Export
 * - Don't check namespace in SpecialWantedtemplates
 * - specials: Simplify return logic of various SpecialUserlogin methods
 * - Update jQuery Client to v2.0.0
 * - Moved patrol code in commitRollback down to reduce contention
 * - HTTPS-ify links to Wikimedia's sites in MW core source
 * - Tablesorter: Replace wgContentLanguage by wgPageContentLanguage
 * - &quot;spellcheck&quot; attribute for HTMLForm &quot;text&quot; and &quot;textarea&quot;
 * - resourceloader: Fix broken getRequest/getDirection in derived context
 * - resourceloader: Use -1 instead of null in DerivativeResourceLoaderContext
 * - to testPrefixNormalizationSearchBug
 * - Add &quot;rel=discussion&quot; attribute to talk page tabs in skin template
 * - Fix rel=&quot;copyright&quot; for ApiHelp
 * - mediawiki.widgets: Add missing dependency on mediawiki.Title, mediawiki.api
 * - Disable Preferences save button before setting change
 * - Job queue: prefix metric keys with 'jobqueue'; segment with '.'
 * - Instrument edit failures
 * - Add release notes for f6e5079
 * - Add Goan Konkani Language
 * - Use mediawiki/at-ease library for suppressing warnings
 * - Add LCStore implementation that uses static arrays in PHP files
 * - Add image/pjpeg as an alias for image/jpeg
 * - AjaxResponse: Fix broken logic for extracting HTTP status codes
 * - Allow users with 'viewsuppressed' to view when limitTitled
 * - Fix the autonym of Northern Luri and change Central to Northern
 * - Live preview: Don't show empty summary preview
 * - Use instanceof in ParserCache::getKey to help IDEs
 * - Avoid section profiling in Hooks::run due to high overhead
 * - Simplify SpecialBlockList::preprocessResults
 * - Check for link-local addresses in isPublic
 * - Encapsulate rc_params handling in RecentChange::parseParams
 * - Update namespaces and special pages for Northern Luri (lrc) from translatewiki
 * - Add some more allowedRedirectParams to MyContributions
 * - Password validity by policy per group
 * - StashEdit: Use postWithToken
 * - Convert mediawiki.action.edit.collapsibleFooter and mediawiki.special.changeslist.legend to using mw.cookie
 * - Convert mediawiki.toc and mediawiki.user to using mw.cookie
 * - Allow 'uselang', 'useskin', 'debug' as query parameters in RedirectSpecialPages
 * - objectcache: Minor code clean up in ObjectCache.php
 * - Fixed &quot;wfTimestamp fed bogus time value&quot; errors
 * - Fix variants for OO UI images
 * - Update OOjs UI to v0.11.4
 * - mediawiki.jqueryMsg: Phase out redundant data module and minor clean up
 * - API: Add api-format-prettyprint-header-only-html
 * - Move several unit tests to directly subclass PHPUnit_Framework_TestCase
 * - api/i18n: Fix a couple typos
 * - Made MessageCache::replace ignore messages with content language suffix
 * - Consistent spacing after colon in apihelp
 * - resourceloader: Add context param to ResourceLoaderModule::getDependencies
 * - Improve the srsearch API param doc
 * - resourceloader: Move packaging to a new getModuleContent method
 * - Avoid parser cache miss that often occurs post-save
 * - Update sinon from 1.10.3 to 1.15.0
 * - resourceloader: Audit debug log channels and messages
 * - LanguageConverter fix of empty and numeric strings
 * - build: Updating development dependencies
 * - Run generateLocalAutoload.php to sort entries in autoload.php
 * - Update json2 to revision 2015-05-03
 * - Update es5-shim to v4.1.5
 * - Use XmlSelect to simplify Xml::monthSelector
 * - Use assertSame in LogFormatterTestCase
 * - PatrolLogFormatter: Tag curid and previd as numbers for API
 * - Fix tab in en.json
 * - ResourceLoaderImageModule: Add missing doc stuffs
 * - resourceloader: Unbreak ResourceLoaderImageModule's rasterization
 * - Various code cleanup to JobRunner
 * - ApiTestCase: Set correct user for derivate requests
 * - Expose RL modules and js config vars in action=expandtemplates
 * - QA: Upgrade mediawiki_selenium for fix to Raita logging
 * - AutoloadGenerator.php: Update 'AutoloadClasses' in extension.json
 * - Html: Add buttonAttributes more diligently
 * - HTMLForm: Break long lines
 * - mw.loader.store: decline to store items &gt; 100 kB
 * - Make sure job queue partitions use the null aggregator
 * - resourceloader: Refactor ResourceLoaderWikiModule to reduce database queries
 * - Revert &quot;Implement MalformedTitleException for JS and use in constructor&quot;
 * - Fixed race condition in MessageCache::replace
 * - resourceloader: Make ResourceLoader logger aware
 * - Handle no pageids response field in MessagePoster factory
 * - Deprecate $wgEnableParserCache
 * - language: Use item 'fallbackSequence' instead of duplicating logic
 * - Avoid data loss if compression fails
 * - Revert &quot;Add 'mediawiki.skinning.logo' module&quot;
 * - mediawiki.searchSuggest: Add track event on search form submission
 * - Use HttpStatus::header instead of manually crafting header
 * - WebResponse: Implement statusHeader using the new HttpStatus::header
 * - HttpStatus: Implement header method
 * - hierarchicalize(!) stat names
 * - Automatically deduplicate root jobs on insertion
 * - Implemented getAllAcquiredJobs in JobQueueDB
 * - ResourceLoader::filter: use APC when running under HHVM
 * - jobqueue: Record stats on how long it takes before a job is run
 * - Normalize hooks.txt formatting
 * - Move Title null check in Special:RevisionDelete
 * - Explicitly define module position for mediawiki.htmlform.ooui.styles
 * - resourceloader: Don't cache minification of user.tokens
 * - registration: Don't override boolean false settings
 * - resourceloader: Remove redundant getModifiedTime implementations
 * - Add a hook for reporting exceptions
 * - Move XmlSelect to its own file
 * - exception: Use standard message for HTTP status 500
 * - mediawiki.template: Mustache should return jQuery object instead of array
 * - Clarify that gender-unknown option is gender neutral
 * - resourceloader: Add unit test for validateScriptFile
 * - resourceloader: Use mw.log instead of 'throw' for scripts with syntax errors
 * - cache: Add in-process caching to MessageBlobStore
 * - Use less fuzzy User::getDBTouched in ApiStashEdit::getStashKey
 * - Fixed $flags bit operation precedence fail in User::loadFromDatabase
 * - Move xml_free_parser out of destructor.
 * - Made User::touch no longer call load
 * - Use a fixed comment placeholder string in CSSMin
 * - wl_notificationtimestamp code comments typo, false statement
 * - Do not support new installations via .php5 entrypoint any longer
 * - Rewrite Language::hebrewNumeral
 * - Cleanup the code of Language::hebrewNumeral
 * - Add tests for Language::hebrewNumeral
 * - Chinese Conversion Table Update 2015-4
 * - Improve doc of maxage and s-maxage API parameters
 * - Fixing definition and use of $attrs parameter in Html::buttonAttributes
 * - registration: Remove &quot;additionalitems&quot; property from array (authors)
 * - Follow-up 727454f: Add mediawiki.widgets to jsduck
 * - Commit all connections after each job
 * - Add tests for HttpError
 * - Remove legacy vertical-align from select fields
 * - Fix undefined variable $header in HttpError
 * - HttpError: Consistently escape document title
 * - Fix some RecentChange phpdoc return types
 * - Use a fixed marker prefix string in the Parser and MWTidy
 * - Remove deprecated MWFunction::newObj
 * - OOUI theme support
 * - Whitespace fix for RELEASE-NOTES-1.26
 * - mailmap: Add an additional e-mail for Bartosz per request
 * - Implement MalformedTitleException for JS and use in constructor
 * - resourceloader: Fix broken 'version' param in mw.loader requests
 * - Create mediawiki.widgets and mw.widgets.TitleInputWidget in it
 * - Remove mw-ui-icon*:after
 * - Fix to digits grouping rule
 * - Move MWTimestamp::getHumanTimestamp to Language
 * - list=categorymembers: Do not log feature usage when using default value
 * - DeferredUpdates doc comment tweak
 * - Add 'mediawiki.skinning.logo' module
 * - Tweak 'position' of 'mediawiki.skinning.*' modules
 * - QA: Upgrade mediawiki_selenium to 1.2 for Raita logging
 * - Fixed Job constructor IDE notices about variable types
 * - Moved addAutopromoteOnceGroups call to a deferred update
 * - registration: Don't hardcode list of extension types in schema
 * - registration: Improve ResourceModules schema definition
 * - Cleaned up various revisiondelete IDE warnings
 * - Refactored entry points to have uniform shutdown handling
 * - Make ResourceLoaderWikiModule support custom position
 * - ApiOpenSearch: Ignore any other unexpected keys in json output
 * - Add Vivek Ghaisas (polybuildr) to the CREDITS file
 * - Reduce page deletion lock contention
 * - API: Add more parameter types and improve info
 * - SpecialMediaStatistics: Protect against invalid indexes
 * - Check result of preg_match_all in Parser.php
 * - Update context stats in SiteStatsUpdate
 * - composer.json: Downgrade PHPUnit to 3.7.37 (temporarily)
 * - registration: Fix types of ResourceModules properties
 * - registration: Version the extension.json schema
 * - registration: Remove unused variable
 * - Warn when duplicate arguments are found
 * - Don't run phpcs on node_modules folder
 * - Consistency tweaks: xml -&gt; XML, Href -&gt; href
 * - OOUIHTMLForm: Access context after parent constructor is called
 * - HTMLForm::factory doesn't throw MWExceptions
 * - Bump composer-merge-plugin to v1.1.0
 * - Revert &quot;Convert mediawiki.toc and mediawiki.user to using mw.cookie&quot;
 * - Add login error browser test
 * - Log what job types were never inserted
 * - Add language Doteli (dty)
 * - Do not load mw-ui-icon-ok in icons pack
 * - Explicitly define filepage module position
 * - Bypass TransformTooBigImageAreaError for ForeignApiFile
 * - Removed partly obsolete and redundant BagOStuff comment
 * - Fixed regression from 97b2a1dfd with URL specified edit tags
 * - Make the output of UnifiedDiffFormatter match diff -u
 * - Remove mediawiki.action.history group
 * - Add ability to load plain CSS files at the bottom
 * - SVG upload with specific error (warning) message when blocking
 * - Provide a .mailmap file to make git log/etc. cleaner
 * - Introduce ParserCacheSaveComplete hook.
 * - Move 1.25 Release Notes to HISTORY
 * - add link description to wantedpages-summary
 * - registration: Fix 'ResourceModules' in schema
 * - mediawiki.ui: checkbox: Render &quot;on top of&quot; the label
 * - Introduce wikipage.editform hook
 * - Follow-up a43af3bc: Add Import integration test
 * - Made isAllowed, showHistory and formatRevisionRow protected to allow for easier subclassing
 * - Reset Title cache when importing titles.
 * - HISTORY: Note new $wgThumbnailBuckets as of 1.24.0
 * - Installer: fix images in CSS
 * - resourceloader: Rename ResourceLoaderImageModule::ensureStuffLoaded to loadFromDefinition
 * - Installer: use proto-relative URLs for license picker
 * - installer: Export wgResourceBasePath in LocalSettingsGenerator
 * - Export allowed tags from Sanitizer to mediawiki.jqueryMsg
 * - Process cache tagUsageStatistics to improve performance
 * - On missing php-xml, don't mention Mandrake explicitly in the installer
 * - XMP: Use structured logging instead of wfDebugLog
 * - Add List-Unsubscribe header to emails
 * - XMP: Throw generic exceptions instead of MWException
 * - Remove unused 'XMPGetInfo' and 'XMPGetResults' hooks
 * - Remove MWLogger and non-namespaced MWLogger* shim classes
 * - Fix false Namespaceselector value for &quot;all&quot; on Special:LinkSearch
 * - Let deduplicateRootJob accept JobSpecification for consistency
 * - Replaced spaces with underscores in NS_ consts
 * - Special:PageLanguage: Show log extract only when title known
 * - Cleaned up JobQueueRedis exceptions
 * - Cleaned up CAS check in RevDelLogItem::setBits for recentchanges
 * - Cleaned up some Job doc types
 * - Actually set the $res field via doQuery in setVisibility
 * - resources: Add OOjs UI's Apex theme's files
 * - Add gender in message 'editinguser'
 * - Check for dependencies in entry point and Maintenance.php
 * - Implement OOUI display format for HTMLForm
 * - Add explicit plural for number of bytes
 * - Added $res var docs for RevisionListBase
 * - Format number for message 'title-invalid-too-long'
 * - SpecialStatsAddExtra: Format column label with msg
 * - Made RecentChange defer the save method via DeferredUpdates
 * - Defer some updates in doEditUpdates
 * - ProfilerOutputStats: replace single ':' with '.', too
 * - Improve ProfilerXhprof's blacklist/whitelist capabilities
 * - Avoid calling load in LocalFile::invalidateCache; not needed
 * - ProfilerOutputStats: allow a key prefix to be specified
 * - registration: Don't ignore empty array config settings when converting
 * - API: Add 'wrfromtitle' and 'wrtotitle' to list=watchlistraw
 * - Avoid pointless getNativeData call in isCountable
 * - Make sure $dbw is an object in DeferredUpdates::addUpdate
 * - Made LoadBalancer debug log entries use &quot;localhost&quot; placeholder
 * - registration: Notify of problems before filemtime, not after
 * - Flush lazy jobs in load.php and api.php too
 * - Fix Special:Preferences onBeforeUnload handler
 * - Pass a message key to MalformedTitleException constructor
 * - Improve documentation of maintenance/sql.php
 * - Keep jenkins happy by limiting line length.
 * - Fixed wrong EnqueueJob comment
 * - User::clearSharedCache: don't load the full user record for just the ID
 * - resourceloader: Replace timestamp system with version hashing
 * - Simplified doEditContent exception handling
 * - Message text clarified.
 * - mediawiki.language: Respect $wgTranslateNumerals in convertNumber
 * - registration: Don't array_unique over the queue before loading it
 * - registration: Have cache entries expire after 24 hours
 * - Revert &quot;Remove invalid language code &quot;bh&quot; (alias of &quot;bho&quot;)&quot;
 * - Made pushLazyJobs handle all queue groups
 * - Make JobRunner flush DeferredUpdates after each job
 * - Search: Allow searchContainedSyntax to be defined by constructor
 * - Added documentation for HTMLFormField's &quot;hide-if&quot;
 * - Reapply f45be1f78b8462a62d77893fd7ac15757b049381
 * - Use getActionName static
 * - Better information about downloading skins via Git
 * - Added ObjectCache::getMainStashInstance and $wgMainStash
 * - Use lazyPush instead of push in a few places for jobs
 * - Added JobQueueGroup::lazyPush method
 * - Chinese Conversion Table Update 2015-3
 * - registration: Use a static whitelist of keys that are not attributes
 * - registration: Remove duplicate &quot;ParserTestFiles&quot; key from schema
 * - registration: Remove implementation of custom processors for now
 * - Log callers that trigger Title::newFromText $text type warning
 * - Combine deleteArchived{Files,Revisions}.inc into the .php scripts
 * - Remove maintenance script deleteImageMemcached.php
 * - ApiOpenSearch: Pass second argument to ApiResult::removeValue
 * - Do not allow setting deprecated $wgSpecialPageGroups over extension.json
 * - Declare global in Action
 * - Removed extra return in triggerOpportunisticLinksUpdate
 * - registration: Add test case to demonstrate T98347 is invalid
 * - Added RedisBagOStuff FIXME comments
 * - Reduced the rate of RecentChangesUpdateJob insertion
 * - Bumping lightncandy version from 0.18 to 0.21
 * - Fix name of South Azerbaijani
 * - Always pass a valid User object to LoginUserMigrated hook
 * - Use touchCheckKey when purging tag usage stats
 * - Better message wording.
 * - Improve RELEASE-NOTES for recent API change
 * - Fix edit link for messages in $wgForceUIMsgAsContentMsg
 * - Revert &quot;Follow-up ee320648fd1: output mw-content-{ltr,rtl} unconditionally&quot;
 * - Support changing icon variants on hover
 * - Timestamp from Year/Month selector on forms should be wiki time
 * - Shorter OutputPage access
 * - Fix name of Central Kurdish language
 * - Add help link for 8 more special pages
 * - Remove redundant line-height declarations from elements.css
 * - Fix name of Bakthiari language
 * - Allow to customise addHelpLink target via system message
 * - Cleanups to WANObjectCache::getWithSetCallback code
 * - ProfilerOutputStats: tweak stat key normalization
 * - resourceloader: Implement ResourceLoaderRawFileModule for 'mediawiki.js'
 * - API Import: Die when namespace and rootpage is set
 * - ApiPageSet: Indicate why a title was invalid
 * - Set correct default date format for ce
 * - registration: Improve docs for return value of Processor::getExtractedInfo
 * - Added WANObjectCache::TTL_UNCACHEABLE for uncacheable content
 * - Consistently name the $this callback variable &quot;$that&quot;
 * - registration: Fix having multiple callbacks for a single hook
 * - resourceloader: Remove only=messages
 * - Convert mediawiki.toc and mediawiki.user to using mw.cookie
 * - Add ActivityUpdateJob to autoloader
 * - Added getDefaultInstance return type doc
 * - wfBaseConvert: Avoid PHP warning when converting zero
 * - objectcache: Add WANObjectCache::TTL_NONE constant for readability
 * - jquery.tipsy: Improve accessibility slightly
 * - KSS: Make section headings links
 * - Allow running code during unstrip
 * - Add ':' to $wgInvalidUsernameCharacters
 * - ApiQuerySiteInfo: Add invalidusernamechars
 * - Allow for dynamic TTLs in getWithSetCallback
 * - Create global variables related to mediawiki.ui icons
 * - Added explicit profile sections to JobRunner
 * - Update OOjs UI to v0.11.3
 * - Extend mediaWiki.confirmCloseWindow to trigger it manually
 * - More &quot;check key&quot; doc comments
 * - gitignore: Add /images/cache
 * - resourceloader: Using file cache, prepend warnings after creating response
 * - resourceloader: Use makeComment in tryRespondFromFileCache for safety
 * - Send job ACKs to statsd
 * - Clarify Data types doc applies to API requests
 * - Made triggerOpportunisticLinksUpdate jobs make use of parser cache
 * - Remove conflicting parser function alias
 * - Follow-up for I68b1ae842: Deprecate $wgScriptExtension as well
 * - Start using the Assert helper class for checking parameters.
 * - Update OOjs UI to v0.11.2
 * - Fixed variable collision in LocalFile::saveToCache
 * - jobrunner: Change logging level for STARTING messages
 * - Added common metadata caching to the djvu handler
 * - Remove PHP4 &quot;support&quot; from using constant in update.php
 * - LivePreview: Process jsconfigvars
 * - API: Add output of JS config vars to action=parse
 * - Set isExpensiveToThumbnail for the djvu handler
 * - Avoid cache stampedes in ChangeTag class
 * - Bump ReplicatedBagOStuff @since
 * - resourceloader: Use absolute file path in SpecialCharactersDataModule
 * - Unbreak --profile=text for CLI scrips
 * - WebRequest::getHeader: add optional flag to get back list
 * - Include transaction details log entry for trx write time violations
 * - Converted LocalFile to using the WAN cache
 * - Log transaction that spend too much time in write queries
 * - Converted sidebar cache to the WAN cache
 * - Mark mw-tag-marker as bidi-embed
 * - Removed unused variable in doFlushCaches
 * - ApiHelp: Fix undefined array index reference
 * - mediawiki.notification: Allow skins to style notification area
 * - resourceloader: Fix fatal when using $wgResourceModuleSkinStyles with &quot;+&quot;
 * - ApiQueryRevisions: Remove bogus query optimization
 * - Added more lockTSE comments to getWithSetCallback
 * - Removed executeReadyPeriodicTasks method
 * - Reduce chunk size in doBatchPush for redis
 * - Removed useless doGetPeriodicTasks override
 * - Only configure the transaction profiler if profiling is enabled
 * - Blacklist MeeGo's browser
 * - Resources: Remove pointless 'position' =&gt; 'top' for ResourceLoaderImageModule modules
 * - Move some global statements to top of function
 * - MalformedTitleException should call parent::__construct
 * - Allow override of extension directory
 * - ApiHelp: Make 'toc' parameter work
 * - Correct name of Northern Luri language
 * - ApiQueryAllUsers: Set 'array' type on result arrays
 * - Cast various things that are supposed to be ints
 * - Removed duplicated jobs in triggerOpportunisticLinksUpdate
 * - Make api nearmatch search work same as 'go' feature
 * - API: Ignore META_BC_SUBELEMENTS elements that aren't actually set
 * - Document namespaces member as nullable
 * - mediawiki.api: Add #badToken for invalidating bad cached tokens
 * - Support Title::GAID_FOR_UPDATE for Title-&gt;exists
 * - Update OOjs UI to v0.11.1
 * - Fix double quote to apostrophe in a message
 * - Underscores etc. aren't valid in HTML IDs, so escape them properly
 * - installer: Read styles from Vector's skin.json
 * - registration: Throw more obvious error when a file doesn't exist
 * - Add new languages to 1.25 release notes and Names.php
 * - Remove invalid language code &quot;bh&quot; (alias of &quot;bho&quot;)
 * - Update getHelpUrls for reworked mw.org API pages
 * - Don't ignore content model for default message texts
 * - Add unit tests for all LogFormatters
 * - registration: Add support for $wgParserTestFiles
 * - registration: Support $wgMediaHandlers in ExtensionProcessor
 * - Fixed some IDE warnings in ChangeTags
 * - Allow QueryPage subclasses to use a different &quot;no results&quot; message than &quot;specialpage-empty&quot;
 * - Improved fail-over in ReplicatedBagOStuff for redis
 * - Made JobQueueAggregatorRedis make sure the wiki set key is up-to-date
 * - Updated ParserCache doc types
 * - Fixed EnqueueJob::newFromLocalJobs docs
 * - Tweaked TempFSFile::bind param type docs
 * - Removed DjVu pageCount check and let it surface in the shell command
 * - build: Bump various devDependencies
 * - HTMLForm: Add wfDeprecated to isVForm
 * - Follow-up ee320648fd1: output mw-content-{ltr,rtl} unconditionally
 * - Pass __METHOD__ to ping query in JobRunner::commitMasterChanges
 * - ApiParse: Restore 'redirects' property in output
 * - Add test for IRC line for legacy type block/block
 * - Revert &quot;Use CSS columns instead of tables in Special:SpecialPages&quot;
 * - Use more specific and less ambiguous ids for line numbers in diffs
 * - ChangeTags: Don't show UI when no editable tags exist
 * - Add missing newline in apihelp-upload-description list
 * - convertExtensionToRegistration.php: Ignore i18n shims
 * - Provide detailed information about invalid titles
 * - Also add mw-content-{ltr,rtl} on page views for missing pages
 * - generateJsonI18n.php: Remove features that should no longer be needed
 * - ApiOpenSearch: Don't output warnings in JSON mode
 * - SearchHighlighter: Stop checking for existence of &quot;wfCite&quot; function
 * - Documentation for SpecialSearch.mPrefix
 * - Preferences: Use case-insensitive comparison for skin names
 * - Increase parity between api search and on-wiki search
 * - Create PageViewUpdates hook
 * - API: Also mangle indexed tag names in format=xml
 * - Refactored ReplicatedBagOStuff to use generic factory methods
 * - Update OOjs UI to v0.11.0
 * - Converted Interwiki using WAN cache
 * - Converted FileBackendStore to using the WAN cache
 * - Converted ChangeTags to using the WAN cache
 * - Converted User object cache to the WAN cache
 * - Converted User touched key to using the WAN cache
 * - Converted InfoAction to using the WAN cache
 * - Converted LocalRepo to using the WAN cache
 * - Restore B/C for ApiOpenSearch json output if warnings are present
 * - mediawiki.mixins: Avoid including css rule on every less file that includes this mixin
 * - Add @var LoadBalancer[] type doc
 * - Change case of class names to match declarations
 * - Made getWithSetCallback doc comment clearer
 * - ChangeTags: Show checkbox on Special:Log when user lacks RevDel rights
 * - MovePage: Move target existence check into isValidMove
 * - Update jQuery from v1.11.2 to v1.11.3
 * - API: ApiResult must validate even when using numeric auto-indexes
 * - Fixed some &lt;code&gt; tags for doxygen
 * - Make $wgDBerrorLogTZ actually default to $wgLocaltimezone
 * - Update OOjs to v1.1.7
 * - maintenance/resources: Enable 'set -e' and 'set -u' in bash scripts
 * - Protect API metadata keys from FormatMetadata::fetchExtendedMetadata
 * - resourceloader: Always send headers with a 304 response
 * - mw.track: Implement trackUnsubscribe
 * - Made DatabaseSqlite::__construct always caller super
 * - Use ResourceLoaderImageModule to serve icons for OOjs UI
 * - Added $wgTrxProfilerLimits and slow query limits
 * - ContentHandler: remove last wfRunHooks call in includes
 * - wfRunHooks -&gt; Hooks::run in maintenance scripts
 * - wfRunHooks -&gt; Hooks::run in remaining entry point files
 * - Fix @return documentation in WANObjectCache::prefixCacheKeys
 * - Removed LocalFile::purgeHistory method
 * - Remove cache use in setNewtalk, as nothing reads from that
 * - api.php: wfRunHooks → Hooks::run
 * - Fixed undefined variable in addTagsAccompanyingChangeWithChecks
 * - Use array_merge instead of the plus operator so that hooked functions are
 * - Fixed default $wgMainWANCache to trigger Setup.php logic
 * - Added ObjectCache::getMainWANInstance helper method
 * - Removed &quot;empty&quot; cache key from JobQueueDB for simplicity
 * - Avoid direct DatabaseSqlite constructor use in tests
 * - Cleaned up a few exceptions and IDE errors in BagOStuff
 * - Fixed getLagTimes locking
 * - Moved WAN cache and relayer to /libs
 * - Update OOjs UI to v0.10.1
 * - Remove throws from Title::getContentModel
 * - Fixed transaction error while undeleting revdeleted files
 * - Fix name of Tunisian Arabic language in Latin script
 * - Made wl_notificationtimestamp updates able to use queues
 * - Don't load XML metadata on DjVu thumb generation
 * - API: Fix parameter interpretation in ApiFeedRecentChanges
 * - Document IContextSource-&gt;msg
 * - qunit: Remove mwlogenv feature
 * - API: Improve queries for prop=revisions in enum mode
 * - Made wfReadOnlyReason catch DB connection errors
 * - resourceloader: Add logging for T94810
 * - Added $wgJobSerialCommitThreshold setting
 * - Allow setting MySQL session variables via config
 * - Moved DBConnRef to a separate file
 * - Remove install-phpunit.sh
 * - Remove useless +x flag on ProfilerSectionOnly
 * - Fix category column count regression
 * - Automatically set $wgMainWANCache by default using $wgMainCacheType
 * - Improved ActiveUsers cache staleness estimates
 * - Better pageprops API example
 * - Added WANObjectCache class
 * - Don't profile setting up the temp directory
 * - ApiEditPage: Fetch content model from article, not title
 * - API: Remove metadata keys from indexpageids output
 * - Split Tunisian spoken Arabic in Arabic and Latin script variants
 * - API message text clarification.
 * - wikibits: Un-deprecate importScript and importStylesheet
 * - mediawiki.log: Introduce mw.log.error
 * - Improve Makefile.py for zhtable
 * - Added a simple pendingWriteQueryDuration DB method
 * - Update OOjs UI to v0.10.0
 * - require_once instead of depending on the return value of include_once
 * - Change error/warning messages to be parsed instead of escaped
 * - Added LoadBalancer::waitForOne method
 * - mediawiki.language: Update bangla characters per request
 * - Moved ActiveUsers updates to recent changes jobs
 * - Deprecate .php5 file extension
 * - Make import destination UI more intuitive and clearer
 * - mediawiki.language: Add some formatting to the specialcharacters.json file
 * - Update namespace aliases for Luri (lrc) from translatewiki
 * - Allow constructing a Message from a MessageSpecifier
 * - API: Set HTMLForm when validating field in ApiOptions
 * - Drop unused FormatMetadata::flattenArray method
 * - Use HTMLForm for Special:LinkSerach
 * - Use PHP_OS rather than php_uname, which may be disabled
 * - Make addedwatchtext less verbose
 * - Remove --max-slave-lag options and remnants from maintenance scripts
 * - update.php: Remove max seconds of lag from wfWaitForSlaves call
 * - PostgreSQL: Fix text search on moved pages
 * - Omit 'external' changes from ChangesFeed
 * - Use a faster 7z command line by default
 * - content: Recognise .json as JsonContent in User and MediaWiki namespace

Vendor

 * - Update at-ease to v1.1.0, and OOjs UI to v0.12.8-atease
 * - leafo/lessphp 0.5.0 → oyejorge/less.php 1.7.0.5
 * - Add apache/avro and nmred/kafka-php
 * - Update OOjs UI to v0.12.8
 * - Pin symfony/process to 2.7.3 rather than letting it float up
 * - wikimedia/cdb 1.2.0 → 1.3.0
 * - wikimedia/cdb 1.0.1 → 1.2.0
 * - wikimedia/utfnormal 1.0.2 → 1.0.3
 * - Add composer/LICENSE
 * - Update OOjs UI to v0.12.7
 * - Update ip-set to 1.0.1
 * - Update OOjs UI to v0.12.6
 * - Update OOjs UI to v0.12.5
 * - Add link to mw:Manual:External libraries in README
 * - Add firebase/php-jwt for ContentTranslation
 * - Update OOjs UI to v0.12.4
 * - Update OOjs UI to v0.12.3
 * - Update README for repository rename
 * - Update ruflin/elastica: 1.3.0.0 -&gt; 2.2.0
 * - Add wikimedia/wrappedstring 2.0.0
 * - Add composer/semver 0.1.0
 * - Alphabetize keys in composer.json
 * - Update OOjs UI to v0.12.2
 * - Update liuggio/statsd-php-client: v1.0.12 -&gt; v1.0.16
 * - Update OOjs UI to v0.12.1
 * - Update OOjs UI to v0.12.0
 * - Update OOjs UI to v0.11.8
 * - Update composer-merge-plugin to v1.2.1
 * - Update OOjs UI to v0.11.7
 * - Add wikimedia/ip-set@1.0.0
 * - Bump wikimedia/composer-merge-plugin to 1.2.0
 * - Upgrade Monolog to v1.14.0
 * - Update OOjs UI to v0.11.6
 * - Add kzykhys/pygments for SyntaxHighlight_GeSHi
 * - Update OOjs UI to v0.11.5
 * - Add mediawiki/at-ease 1.0.0
 * - Update OOjs UI to v0.11.4
 * - Cherry-pick 9ff89da7 and 3696bf79eb22 from oojs/oojs-ui
 * - Bump composer-merge-plugin to v1.1.0
 * - Bumping lightncandy version from 0.18 to 0.21
 * - Minor changes to composer.lock and ClassLoader.php from composer update
 * - Update OOjs UI to v0.11.3
 * - Update OOjs UI to v0.11.2
 * - Update OOjs UI to v0.11.1
 * - Adding dependency on wikimedia/assert module
 * - Update OOjs UI to v0.11.0
 * - Update OOjs UI to v0.10.1

AbuseFilter

 * - Small doc fixes for AbuseFilterTokenizer
 * - Move rule tokenization to new AbuseFilterTokenizer class
 * - Clean-up of AbuseFilterParser::nextToken
 * - No longer call removed SpecialPage::getLocalPageForName
 * - Fix addMissingLoggingEntries maintenance script handling of newlines
 * - Drop unused AbuseFilterParser::$mParams property
 * - Do not produce self-closing &lt;div/&gt;
 * - Add maintenance script to restore missing log entries for each filter history entry
 * - Remove use of deprecated wfRunHooks
 * - Only check for auto-promote block if there is a promotion to block
 * - Revert &quot;Add &quot;Last hit&quot; timestamp column to Special:AbuseFilter list view&quot;
 * - Add &quot;Last hit&quot; timestamp column to Special:AbuseFilter list view
 * - Remove i18n shim
 * - Clean up scary code
 * - Fix &quot;Fatal error: Call to undefined method WikiPage::getCount&quot;
 * - Conversion to using getMainStashInstance
 * - Add help link
 * - Add a link to &quot;Special:Tags&quot;
 * - Removed filter profiling using $wgMemc
 * - ApiResult::META_BC_BOOLS in ApiAbuseFilterCheckMatch
 * - Replace deprecated $wgSpecialPageGroups
 * - Conversion to using WAN cache
 * - Fixed change tag list purging
 * - Explicitly define module position

AccountAudit

 * - build: Configuring banana-checker and jsonlint
 * - Empty PHP entry point in favor of extension.json
 * - Set manifest_version in extension.json

ActiveAbstract

 * - Set manifest_version in extension.json

AntiSpoof

 * - build: Updating development dependencies
 * - test: Configuring banana-checker for i18n messages

ApiFeatureUsage

 * Newly deployed extension

ApiSandbox

 * - Set manifest_version in extension.json
 * - Support 'text' and 'password' parameter types
 * - Add 'license-name' matching SPDX conventions

Babel

 * - Remove configuration options for the cdb files
 * - Preserve existing $wgBabelCategoryNames configurations
 * - Updated extension registration to new system
 * - Remove direct ParserOptions field access
 * - build: Updating development dependencies
 * - Explicitly define module position
 * - Update 'support' URL in composer.json

BetaFeatures

 * - Defer the User::saveSettings call in getPreferences
 * - build: Bump grunt-contrib-jshint from 0.11.2 to 0.11.3 to fix upstream issue
 * - build: Updating development dependencies
 * - Remove use of deprecated wfRunHooks
 * - API: Changing the output if there are zero users for the feature
 * - build: Add some development dependencies
 * - chmod 644 *.php
 * - Fix all PHPCS errors and warnings
 * - build: Adding configuration for jsonlint
 * - build: Updating development dependencies
 * - empty PHP entry point
 * - Set manifest_version in extension.json
 * - Don't die if no beta features are active
 * - Removed memcached use for preference counts
 * - test: Configuring banana-checker for i18n messages

BounceHandler

 * - Disable email notification on Echo event 'unsubscribe-bouncehandler'
 * - Trigger Echo notification when registered email address becomes unverified
 * - build: Configuring banana-checker and jsonlint
 * - Updated extension registration to new system
 * - Removed PlancakeMailParser library completely from the extension
 * - Don't erase the email addresses on a wiki without CentralAuth
 * - Simplify and match a delivery status code separated by space
 * - Removed composer.json to get rid of the Plancake dependancy
 * - Add example from Oracle Communications Messaging Server 7.0.5.32.0

Calendar

 * - build: Configuring banana-checker and jsonlint
 * - Set license-name
 * - Empty PHP entry point in favor of extension.json
 * - Remove i18n shim
 * - Explicitly define module position
 * - Set manifest_version in extension.json

Campaigns

 * - Remove unused globals
 * - build: Configure banana-checker and jsonlint
 * - Set manifest_version in extension.json
 * - Add extension.json, empty PHP entry point, remove i18n shim

CategoryTree

 * - build: Adding configuration for jsonlint
 * - build: Updating development dependencies
 * - Replace deprecated $wgSpecialPageGroups
 * - Explicitly define module position

CentralAuth

 * - Don't query for oldname if none was provided in SpecialLogAddLogSearchRelations hook
 * - Use 'centralauth-state-mismatch' message in adminLock and adminUnlock
 * - Modify &lt;globalrenamerequest&gt;
 * - Updated watir-webdriver Ruby gem to the latest version
 * - Use set for tokens with unique keys
 * - Made attemptAddUser better handle central DB downtime
 * - Made attemptAddUser check wfReadOnly
 * - Fixed setCookie type docs
 * - build: Bump grunt-contrib-jshint from 0.11.2 to 0.11.3 to fix upstream issue
 * - Converted SUL2 handshake tokens to use CentralAuthUser::getSessionCache
 * - Converted api-token store to CentralAuthUser::getSessionCache
 * - SpecialGlobalRenameRequest: use $this-&gt;requireLogin instead of our own code
 * - Removed temporary code in quickInvalidateCache
 * - Suppress DBPerformance log during account autocreation
 * - Defer the resetAuthToken call on logout
 * - Fix &quot;array_merge expects at least 1 parameter, 0 given&quot; warning on Special:GlobalUsers
 * - Defer &quot;remember&quot; preference updates
 * - Conversion to using getMainStashInstance
 * - ext.centralauth.ForeignApi: Module should target mobile
 * - Implement a mediawiki.ForeignApi extension
 * - Avoid passing non-strings into User::getCanonicalName
 * - build: Updating development dependencies
 * - SpecialWikiSets: always sort wpWikis alphabetically
 * - Improve querying on GlobalUsersPager
 * - Simplify CentralAuthHooks::onGetPreferences
 * - Made doListUnattached private
 * - Fix instance caching of WikiSets in CentralAuthUser::getGlobalRights
 * - Revert &quot;User getExtendedLoginCookieExpiration from core&quot;
 * - User getExtendedLoginCookieExpiration from core
 * - Cleanup SpecialGlobalUsers and GlobalUsersPager
 * - Avoid throwing SecurityError on window.localStorage access
 * - Added statsd metrics for session reads and updates
 * - Update inline JavaScript handling with recent core changes
 * - Avoid duplicate key errors in CentralAuthUser::register
 * - Use $wgExtendedLoginCookieExpiration when setting login cookies
 * - Move function to CentralAuthHook
 * - Conversion to WANObjectCache
 * - Fixed local user cache purge in adminDelete/adminUnattach
 * - Add log entry for $wgCentralAuthStrict failures if SULMigration is enabled
 * - Autologin for m. domains
 * - Invalidate cache after account autocreation from job
 * - Revert &quot;Add global password policies&quot;
 * - Made use of new USE_MULTI_COMMIT flag in user merge jobs
 * - Avoid trying to get the canonical username of null
 * - Add non-translatable alias for Special:CentralLogin
 * - Autocreate some local accounts when global account is created
 * - Add global password policies
 * - Use scoped sessions in LocalUserMergeJob
 * - Fix missing messages
 * - SpecialGlobalUserMerge: Remove unused variable
 * - Move phpunit tests into tests/phpunit/
 * - build: Also run jshint and jscs through &quot;npm test&quot;
 * - Follow-up c24ed0dda: Fix .gitignore addition
 * - build: Configure banana-checker and jsonlint
 * - Separate globalrenamerequest styles from scripts
 * - QA: Upgrade mediawiki_selenium to 1.2 for Raita logging
 * - Remove i18n shim
 * - Show log entries of previous renames on the GlobalRenameQueue
 * - Display AntiSpoof conflicts in the GlobalRenameQueue
 * - fix misleading admin-delete-description message
 * - rephrase rename notification
 * - Add explicit GENDER support to globalrenamequeue-email-body-*
 * - Guard against QUOTA_EXCEEDED_ERR for anon users
 * - Replace deprecated $wgSpecialPageGroups
 * - Revert &quot;Fix fatals in LoginUserMigrated hook&quot;
 * - Use structured logging for CentralAuthUserMerge audit log
 * - GlobalUserMerge: Update renameuser_queue and global_user_groups
 * - GlobalRename: Don't fatal if AntiSpoof isn't enabled
 * - Explain &quot;P3P compact policy&quot; in message
 * - Special:CentralAuth: show an error message when a rename is in progress
 * - Remove duplicate AbortLogin hook registration
 * - LocalPageMoveJob: Don't die on invalid old titles
 * - SULF is done
 * - GlobalRenameLogFormatter: Don't die on invalid old usernames
 * - ApiCentralAuthToken: Use ApiBase::lacksSameOriginSecurity
 * - LocalRenameUserJob: Don't try to construct the old user object twice
 * - GlobalUserMerge: Log merges locally
 * - Fix an apostrophe in a message
 * - Remove duplicate listUnattached check
 * - Throw an exception if the performer doesn't exist in the database
 * - Converted WikiSet to using the WAN cache
 * - GlobalUserMerge: Don't merge a user into themselves
 * - Revert &quot;LocalPageMoveJob: Don't overwrite existing pages&quot;
 * - LocalPageMoveJob: Don't overwrite existing pages
 * - wfRunHooks → Hooks::run
 * - Explicitly define module position
 * - hooks: Fix missing '&amp;' in onMakeGlobalVariablesScript signature
 * - Added CAS token field to global user table
 * - Use DB_SLAVE in CentralAuthUser::importLocalNames
 * - Mark centralautologin for mobile

CentralNotice

 * - Group mixin controls in a nested fieldset
 * - KVStore: remove error cookie
 * - Consistent &quot;JavaScript&quot; spelling
 * - Ensure mw.centralNotice is defined
 * - Fix to floating-point validation
 * - Fix reason for Special:HideBanners on close
 * - Legacy support campaigns mixin
 * - Inline documentation for mw.centralNotice.setBucket
 * - Support legacy banner_count field for S:RI
 * - Fix undefined variable notice from CentralNoticeCampaignLogPager::testTextChange
 * - Banner history logger: again, update EventLogging schema version
 * - Admin UI: Add mediawiki.template dependency
 * - Fixed a few IDEA doc errors
 * - Banner history logger: update EventLogging schema version
 * - Improve name of banner history log rate URL parameter
 * - Increase version number to 2.6.0 due to refactor and new features
 * - Add mobile target to banner history RL module
 * - Banner history: improved async dependencies and added comment
 * - Add BannerMixinHook tests.
 * - Reset .gitreview defaultbranch to master
 * - BannerHistoryLogger: Increase random shift of timestamps
 * - GeoIP tests: move saving of original values outside setup
 * - BannerHistoryLogger: comment about temp measure for minification
 * - BannerHistoryLogger: anticipate RL resources for sendLog
 * - QUnit: call reallyInsertBanner due to async issue
 * - Fix typo in efCentralNoticeEventLoggingRegisterSchemas
 * - Better message for banner history logger rate UI
 * - Execute display logic right away
 * - Banner history logger campaign mixin
 * - Fix a typo in ext.centralNotice.kvStore declaration
 * - Display: Improvement and fix in public bucket methods
 * - KVStore: Various minor improvements
 * - Fix reference issue in Campaign::getCampaignMixins
 * - Get URL params via mw.Uri instead of ad-hoc methods
 * - Campaign mixins: Fix handling of removed parameters
 * - Fix campaign mixin query bugs
 * - Fix campaign mixin update bug
 * - Add geoIP tests
 * - Refactor client-side API and RL modules for banner display
 * - Remove use of ResourceLoader::makeLoaderConditionalScript
 * - Remove automatic landing page links feature
 * - Remove dead code for targetting users based on UserDailyContribs data
 * - ChoiceData: in category, substitue and {{{banner}}
 * - Only add UserMerge tables if $wgNoticeInfrastructure = true;
 * - Only add UserMerge tables if $wgNoticeInfrastructure = true;
 * - Campaign-associated mixins: schema update
 * - Refactor BannerChoiceData =&gt; ChoiceData
 * - Parse older format of Geo cookies
 * - Remove unused BannerStats RL module
 * - Parse older format of Geo cookies
 * - bannerController.lib: KV store with localStorage
 * - Campaign-associated mixins
 * - Initialize empty $filtered array in SpecialGlobalAllocation::filterCampaigns
 * - Hygiene: Officially deprecate global functions
 * - Parse region in geoip cookie
 * - Parse region in geoip cookie
 * - MWException -&gt; Exception
 * - Upgrade CentralNotice browser tests to use mediawiki_selenium 1.x
 * - CNBannerChoiceDataResourceLoaderModule::getDependencies method signature
 * - Remove redundant ResourceLoaderModule::getModifiedTime implementation
 * - Clean cruft in CNBannerChoiceDataResourceLoaderModule::getChoices
 * - Replace deprecated $wgSpecialPageGroups
 * - Campaign-associated mixins: schema update
 * - Update to $wgCentralSelectedBannerDispatcher
 * - bannerController call to BannerLoader: Remove unused params
 * - Fix fetching choice data via API
 * - Allocation: choose campaign first, fix throttling bug
 * - Special:BannerLoader: test campaign staleness
 * - Tiny bit more post-BannerRandom cleanup
 * - Fix Special:BannerAllocation
 * - Remove server-side banner random
 * - Special:CentralNotice: code cleanup
 * - Check choiceData for staleness
 * - Use the plain-text GPL
 * - Using recommended RuboCop configuration
 * - Add banner includes bucket dropdown
 * - Warn if a campaign's bucket assignments look funky
 * - Default to single-database configuration
 * - Fix a typo: switch databases correctly
 * - Clean up database switching
 * - Fix accidentally swapped docstring
 * - Preload JS comes with no baggage

CharInsert

 * - build: Configuring banana-checker and jsonlint
 * - Set manifest_version in extension.json
 * - Remove i18n shim

CheckUser

 * - Update MediaWiki:Checkuser-toollinks
 * - Remove use of deprecated wfRunHooks
 * - Clean up block notices editing code
 * - build: Configuring banana-checker and jsonlint
 * - Defer the maybePruneIPData update query via DeferredUpdates
 * - Set manifest_version in extension.json
 * - Replace deprecated $wgSpecialPageGroups

CirrusSearch

 * - Fix incategory, insource and intitle with double quoted values
 * - Fix query rewrite when interwiki is enabled
 * - Fix docs for MappingConfigBuilder::buildStringField
 * - Allow search in different language
 * - Bypass max query length if query contains incategory operator.
 * - Avoid querying the namespace index when doing a morelike query
 * - Bypass query length limit for incategory search
 * - Properly create interwiki redirect titles
 * - Adding kbd tags to API message
 * - Improve completion suggestion suggester (take 2)
 * - Avoid PHP notices on undefined timed_out response
 * - Convert Searcher to use config object
 * - Decrease maximum query length back to 300.
 * - finish renaming of indexType -&gt; indexTypeName
 * - Completion suggester : improve precision
 * - Report instances of backend errors to graphite
 * - Allow CIDR ranges to be opted into per-user poolcounter
 * - Fix Undefined variable: wgCirrusSearchPhraseSuggestUseText
 * - Move query rewriting into search backend
 * - LoggerFactory::getLogger -&gt; LoggerFactory::getInstance
 * - Fix undefined index errors
 * - Revert &quot;Make prefer-recent tests must more consistent&quot;
 * - Check array index 'query' before accessing
 * - Rework regex for quoted keyword:&quot;...&quot; extraction
 * - Add an initial scoring function
 * - Avoid counting arrays if not needed
 * - allow specifying index baseName to runSearch.php
 * - Switch A/B test logs over to a more easily analysable format
 * - API for _suggest for Elasticsearch
 * - Mark intermittently failing test as such
 * - Change link target in Special:Version
 * - Elastica\Query::setFilter is deprecated
 * - Temporarily increase maximum search query length to 2500.
 * - pick right urls to run browser test against
 * - Protect against undefined array access
 * - WIP: Add a maintenance script to build the completion suggester index
 * - Make prefer-recent tests must more consistent
 * - Set hard character limit for searchText queries
 * - Fix another test tha fails spuriously
 * - use monolog for CirrusSearch logging
 * - Test currently failing, mark it such.
 * - Add option to dump Elasticsearch response
 * - Add two missing prefix_length keys
 * - Stable bucket selection
 * - Include session_id in CirrusSearchRequest logs
 * - Log user testing data
 * - Fix Undefined index: laplace
 * - Separate out CirrusSearchRequest log variables
 * - Add more phrase suggester options
 * - Bare bones helper for AB testing
 * - Fixes in the long configuration strings
 * - Allow disabling cirrus request logging from query string
 * - Remove unit tests from generated autoload
 * - Basic script to run cirrus queries in bulk
 * - Test script to delete pages created by browser suite
 * - Fix intermittent broken test
 * - Allow customization of &quot;Did you mean&quot; suggestions
 * - morelike: is a special syntax
 * - Log an executor id in ElasticsearchIntermediary
 * - Instructions for validating a new ES
 * - Really abort, if ES version could not be fetched
 * - Print dump progress correctly
 * - Use a better marker to detect regex filter errors
 * - Remove lots of dynamic groovy take 2
 * - Credit where credit is due
 * - Revert &quot;Revert &quot;Update tests to match OOUI of Special:Search&quot;&quot;
 * - Revert &quot;Clean up empty result set scenario&quot;
 * - Suppress interwiki results when they would break
 * - Clean up empty result set scenario
 * - Fix expected failure in relevancy
 * - Revert &quot;Update tests to match OOUI of Special:Search&quot;
 * - Support pausing writes to elasticsearch
 * - Grammar and spelling fixes in the long morelike message
 * - Add for function call
 * - Cleanup test annotations
 * - Add options to customize MoreLikeThis queries
 * - Shorter regular expressions in Searcher and related
 * - Pre-cache title information about search resultset
 * - Update installation instructions
 * - Add support for maxDeterminizedStates in QueryString
 * - Fix wildcard_api.feature test
 * - Log suggestion to requests log if there is one
 * - Mark known failing tests
 * - Expose wgCirrusSearchFeedbackLink to javascript
 * - Correct misspelling: RedirectTaget -&gt; RedirectTarget
 * - Prevent wildcard queries expansion to all the fields
 * - Add support for PHP 5.3 to the dumpIndex maintenance script
 * - Consume trailing spaces when extracting special syntax
 * - Add a maintenance script to dump an index to stdout
 * - Couple more tweaks to CirrusSearch Makefile
 * - Add missing 'use \Status;' to includes/Util.php
 * - Autogenerate php autoloader array
 * - Add an optional &quot;Give us your feedback&quot; link
 * - Update tests to match OOUI of Special:Search
 * - build: Adding configuration for jsonlint
 * - Revert &quot;Remove lots of dynamic groovy&quot;
 * - Revert &quot;Revert &quot;Remove lots of dynamic groovy&quot;&quot;
 * - Revert &quot;Remove lots of dynamic groovy&quot;
 * - Remove lots of dynamic groovy
 * - build: Updating development dependencies
 * - Log the username for pool counter failures
 * - New option to log but not fail per-user pool counter failures
 * - Enable CirrusSearch-PerUser pool counter in fully featured config
 * - Work arround broken isset in php 5.3
 * - Test is a simple Scenario, not Scenario Outline
 * - Fix test that missed updating one rule to use api
 * - Disallow leading wildcards in jenkins tests
 * - Support ORs of incategory
 * - Detect per-user poolcounter failure
 * - Fix-up for I3df6713: qualify \RequestContext
 * - Log request times to StatsD
 * - Allow leading wildcard
 * - Don't leak UsageException in non-api code paths
 * - Fix errors that look like OR OR OR OR
 * - trim idiographic whitespace too
 * - Convert set handling to super_detect_noop
 * - Tests for files stored locally and on commons
 * - Make cucumber errors more readable
 * - Add index searched to cirrus request log
 * - More data in CirrusSearchRequest logs
 * - Use core's Hooks class as &quot;MWHooks&quot; to avoid conflicts
 * - Fix intermittent failures in prefer_recent tests
 * - check for actual error instead of just no result on long prefix search
 * - Null is a valid value in Searcher::$namespaces
 * - Convert go feature to api tests
 * - Finish converting prefix_search feature to api tests
 * - Fix some apis and api tests
 * - Convert remaining update_general features to api usage
 * - Convert remaining relevancy tests to api
 * - Split Jenkins.php into two files
 * - Update did_you_mean features to run against api
 * - Fix scneario to match changed step definition
 * - More specific type hints and docs in ElasticsearchIntermediary classes
 * - Convert highlighting tests to use the api
 * - Move tests that check for page creation link to their own feature
 * - Upload files via api in cucumber tests
 * - Convert browser tests that check for create page link
 * - Use PHPUnit_Framework_TestCase where MediaWikiTestCase isn't needed
 * - Split out tests that can be done via api
 * - Track the 'submit-form' event
 * - Add rubocop to Makefile linting
 * - Revert &quot;Move Gemfile from root to browser tests&quot;
 * - wfRunHooks -&gt; Hooks::run
 * - build: Remove redundant global grunt-cli install
 * - Install a basic Makefile for CirrusSearch
 * - Move Gemfile from root to browser tests
 * - Update browsertest environment for vagrant changes

Cite

 * - Fix white spaces
 * - Revert &quot;Use display: inline-block instead of unicode-bidi&quot;
 * - Fix doc block for checkRefsNoReferences
 * - Use display: inline-block instead of unicode-bidi
 * - Ignore parsers without extCite
 * - Hygiene: Main return as root structure (handle errors early)
 * - Add mobile target to VE/parsoid style module for Cite
 * - Prevent jumbling up of footnote numbers after LTR words in RTL wikis
 * - Change unicode-bidi: isolate to embed
 * - Fix a test label
 * - Polish parser test titles
 * - Change == to === according to PHP coding conventions
 * - Add more tests for edge cases of references without text
 * - Remove WMF deployment hack ext.cite and ext.rtlcite modules
 * - Add a test for cite_error_ref_no_input
 * - Remove spaces from the end of the line
 * - build: Adding configuration for jsonlint
 * - Style module should define its position explicitly
 * - Use CSS to style Parsoid's Cite HTML
 * - Revert &quot;Do all of Cite's real work during unstrip&quot; and followup
 * - Cleanup style RL modules for Cite
 * - build: Updating development dependencies
 * - Move '@media print' rules to separate file
 * - Set manifest_version in extension.json
 * - Don't run references if the output type isn't HTML
 * - Add SpecialCite stub file for backwards-compatability
 * - Do all of Cite's real work during unstrip
 * - Add extension.json, empty PHP entry point
 * - Remove i18n shim
 * - Get rid of &quot;wfCite&quot; global function
 * - Move CITE_DEFAULT_GROUP constant to Cite::DEFAULT_GROUP

CiteThisPage

 * - build: Adding configuration for jsonlint
 * - Set manifest_version in extension.json
 * - build: Updating development dependencies
 * - Replace deprecated $wgSpecialPageGroups
 * - Explicitly define module position

Citoid

 * - Inspector: Use upstream padding settings
 * - Use indexLayout for tab menu
 * - Fix class name typo
 * - build: Update linting tools and make pass
 * - Actually use new backup message
 * - Provide alternative access to citoid-template-type-map.json
 * - Use ve.userConfig for storing citoid-mode
 * - build: Bump grunt-contrib-jshint from 0.11.2 to 0.11.3 to fix upstream issue
 * - Update for breaking change to MWReferenceModel constructor
 * - Move MWReferenceSourceSelectWidget into Citoid
 * - Make basic button full width
 * - Prevent toolGroup hack from running twice
 * - Flag cancel/back actions
 * - Remove listeners from deprecated search widget 'select' events
 * - Stop adding empty strings as params
 * - Gruntfile.js: Remove unused 'pkg'
 * - Revert &quot;Rename basic reference tool after moving to 'insert' menu&quot;
 * - Allow structured citoid fields to be flattened
 * - Default mode to last mode used by user
 * - Make toolgroup hack work on all target
 * - Focus insert button on panel switch
 * - Rename basic reference tool after moving to 'insert' menu
 * - Remove placeholder status from citations before inserting
 * - Check templateField type &amp; add QUnit tests
 * - Move citation error inline
 * - Convert message keys to lower case
 * - build: Add jsonlint
 * - Remove double-encoding of search input
 * - ve.ui.CiteFromIdInspector: Simplify icon sizing
 * - Revert &quot;Use ref instead of hard coded message&quot;
 * - Use a valid &quot;license&quot; in package.json
 * - build: Updating development dependencies
 * - build: Add explicit dependency upon grunt-cli
 * - Restrict 'fullscreen' mode to success 'result' panel
 * - Set manifest_version in extension.json
 * - Use ref instead of hard coded message
 * - Make citation dialog tabs translateable
 * - Use the 'quotes' icon as well as the label
 * - Hide tab widget when in secondary process panels
 * - Follow-up 6a12b782: Remove VisualEditor's cite drop-down too
 * - Redesign CiteFromIdInspector
 * - Change label text from 'Lookup' to 'Generate'
 * - build: Bump grunt-jscs to latest version
 * - Update extension.json, get rid of PHP entry point

CleanChanges

 * - build: Updating development dependencies
 * - Updated extension registration to new system
 * - Remove i18n shim
 * - Made hooks register unconditionally

CodeEditor

 * - Make sure that wikieditor context is ready
 * - Define variable event
 * - Remove use of deprecated wfRunHooks
 * - Remove quotes around object properties keys
 * - ucFirst has been deprecated, so inline it
 * - Load module 'ext.wikiEditor.toolbar.styles'
 * - Remove explicit setting of the width of the textarea
 * - build: Configuring banana-checker and jsonlint
 * - Set manifest_version in extension.json
 * - Sync extension.json with CodeEditor.php and empty php entry point
 * - Remove i18n shim
 * - Additional CodeEditor buttons
 * - Add tooltip to annotation indicator

CodeReview

 * - Use ResourceLoader::makeInlineScript for inline scripts
 * - build: Configuring banana-checker and jsonlint
 * - Set manifest_version in extension.json
 * - Explicitly define module position
 * - Replace deprecated $wgSpecialPageGroups
 * - Explicitly define module position

Collection

 * - Use plural and remove legacy code
 * - build: Updating development dependencies
 * - Remove unused global $wgJsMimeType
 * - Fix undefined indicies in Collection.suggest.php
 * - Add scope to methods missing it
 * - Remove redundant line in Collection.body.php
 * - Fix typo w/ VRS URL construction, commit e126f75
 * - Use VRS RESTBase/Parsoid configuration, if present.
 * - Use $wgCanonicalServer to create the API baseurl
 * - build: Use grunt to run jscs and jshint, add jsonlint too
 * - build: Updating development dependencies
 * - Fix Undefined index: &lt;N&gt; in Collection.body.php
 * - Set returnto in Special:Book render links
 * - Remove unused messages
 * - Replace deprecated $wgSpecialPageGroups
 * - Strip trailing `/page/html/` from configured restbase URL
 * - Provide RESTbase information to OCG if VisualEditor is installed.

CommonsMetadata

 * - Parse restrictions e.g. trademark, insignia, etc.
 * - build: Configuring banana-checker and jsonlint
 * - Set manifest_version in extension.json
 * - Use HTTPS url to mediawiki.org

ConfirmEdit

 * - Throw an exception, if wgCaptchaRegexes isn't an array
 * - Enable the refresh button in MobileFrontend
 * - Don't check for edits that will not be saved
 * - Log event on captcha display/success/failure.
 * - Send rate limits to main captcha log
 * - Fix missing getForm( OutputPage ) argument in showEditFormFields
 * - Conversion to using getMainStashInstance
 * - Remove execute bit
 * - Implement support for Google reCAPTCHA 2.0 (&quot;No captcha&quot;)
 * - Moved up shouldCheck short-circuit logic a bit
 * - Fix non-parsed captcha help message
 * - Make Questy answers in arrays case-insensitive
 * - Fix issues from recent extension registration changes
 * - FancyCaptcha: callbacks can't be arrays
 * - Add .jshintrc
 * - Fix extension.json files
 * - Fixed &quot;throw&quot; statement
 * - Remove PHP entry point and use extension.json for QuestyCaptcha
 * - Clear PHP entry point and use extension.json for ReCaptcha
 * - Use extension.json and clear PHP entry point for MathCaptcha
 * - Add extension.json and clear PHP entry point
 * - Move QuestyCaptcha to its own place
 * - Removed unused $wgExtensionAssetsPath var
 * - Move ReCaptcha to it's own place
 * - Move MathCaptcha to it's own place
 * - Move FancyCaptcha to its own location
 * - Fix Hook function should be static
 * - Clean up ConfirmEdit.php entry point and move common files to common places
 * - Move i18n to Captcha modules own directory
 * - Revert wrong error message and CAPTCHA handling on EditPage
 * - Don't assume, that IContextSource::getWikiPage always returns a WikiPage object
 * - Explicitly define module position
 * - Use same visibility for passCaptchaLimited as for passCaptcha

ContactPage

 * - Remove use of deprecated wfRunHooks
 * - Remove extension.json
 * - Add README documentation for DisplayFormat, RLModules and RLStyleModules
 * - Minor refactoring/cleanup and some documentation
 * - build: Configuring banana-checker and jsonlint
 * - Set manifest_version in extension.json
 * - Show a valid error when ContactPage is configured incorrectly
 * - Allow loading of ResourceLoader modules
 * - Allow selection of HTMLForm display format
 * - Base more stuff on the form type

ContentTranslation

 * - Do not call cxserver to display gray interwiki link
 * - API: Support limit and offset params for suggestion and translation queries
 * - Defer the user update in enableCXBetaFeature
 * - Update labels and headings on CXStats
 * - Add missing ApiHelp descriptions
 * - Don't localize the namespace unnecessarily
 * - Add missing ApiHelp messages
 * - Remove the default value from an ApiHelp message
 * - Remove styles duplicated between dictionary.less and manager.less
 * - Prevent NaN in the trend in CXStats
 * - Prettify language selectors when it overflows
 * - Prevent creation of unadapted link in target
 * - Fix background color of the small arrow when hovering item
 * - Rename two createLink methods to disambiguate
 * - Fix internal API error when suggestion requested for empty language pair
 * - Revert &quot;Do not call cxserver to display gray interwiki link&quot;
 * - Optimize link_lightgray.svg
 * - Fix the PNG image path for list modules
 * - Do not show missing target link card when clicking red link on source
 * - Ensure $titles is defined even when $suggestions is empty
 * - Updated watir-webdriver Ruby gem to the latest version
 * - Use correct domain languages when adding a link to Magnus tool
 * - Padding adjustment for the dashboard filter buttons
 * - Update the data for the categories test
 * - Suggestions: Allow selecting languages
 * - Suggestions: Filter out ongoing translations and existing pages
 * - Suggestions: Fix the featured label alignment error
 * - Use standard blue to highlight buttons
 * - Stats: Fix the color for points in deletion graph
 * - Stats: Misc cleanup on getDeletionTrend method
 * - Suggestions: Make the whole suggestion item clickable
 * - Stats: Optimize the query behind contenttranslationlangtrend API
 * - Stats: Weekly trends
 * - Stats: Deletion count graph
 * - Adjust width of language code, autonym and count in CXStats
 * - Set space between category name and category close button robustly
 * - Do not allow creation of link to selection by clicking red link in source
 * - Reduce number of thumbnail queries to one per source language
 * - Correct error messages
 * - Change &quot;article&quot; to &quot;page&quot; in i18n
 * - Stats: Separate total and language graph, and show draft count in graph
 * - Show suggestions in the dashboard only if enabled
 * - Do not call cxserver to display gray interwiki link
 * - Replace inline tab with space
 * - Dashboard: Show translation suggestions
 * - Removed the redirection from be-tarask to be-x-old
 * - Stats: Generate personal tools before head element
 * - Generate personal tools before head element
 * - Add composer dependency autoloader support
 * - Remove invalid call to .showSourceSelector
 * - Add missing apihelp values
 * - Implement limit parameter in ApiQueryContentTranslation
 * - Preparations for showing trend line instead of cumulative published articles
 * - Update CX VRS code
 * - Add missing apihelp messages
 * - Use the VirtualRESTService to configure CX
 * - Fix: References are adapted with same content
 * - Fix PHP errors
 * - Suggestion lists - Database and APIs
 * - Consistent alignment for autonyms in Special:CXStats
 * - Amend fix-stats.php to also find and add missing tags
 * - Load the source article from the correct domain
 * - Clean the code of ext.cx.sitemapper.js
 * - Add mapping from the 'nb' language to the 'no' domain
 * - Convert the language domain code mapping to a global variable
 * - Ask the user to log in if the session is lost
 * - Prevent very long strings from overflowing in the reference card
 * - Correct a grammar mistake in cx-license-agreement
 * - Split apihelp messages to separate i18n json files
 * - Code cleanup in ext.cx.entrypoint.js
 * - Set correct label and lang/dir attributes in the dashboard filter
 * - Refactor the dashboard and translationlist modules
 * - Validate the references when restored from draft
 * - Revert &quot;Temporarily disable notifications&quot;
 * - Revert &quot;Refactor the dashboard and translationlist modules&quot;
 * - We no longer need META_CONTENT BC check
 * - Refactor the dashboard and translationlist modules
 * - Temporarily disable notifications
 * - Convert errors to text before logging
 * - Images: validate image id before adapting to prevent js error
 * - Change the id of source title so that its prefix is same as parsoid ids
 * - Templates: Do not skip adapting inner templates if parent is template
 * - Enable scrubWikitext=1 in HTML to wikitext conversion using parsoid
 * - Use .attr to set the resource attribute of image, while adapting
 * - Add missing dependency to ext.cx.campaigns.contributionsmenu
 * - Remove use of deprecated wfRunHooks
 * - Add a tooltip to the link in the link card
 * - Do not open the links in gallery image caption in same tab
 * - FIX: Not able to set cursor in previous sections
 * - Avoid data-cx-draft and CX generated id leaking to published content
 * - Add support for &lt;math&gt;
 * - Improve reference adaptation to avoid parsoid errors
 * - Remove CX generated attributes from content to publish
 * - Wrong replaceWith causes all spans getting removed
 * - Align the sections based on integer value of section heights
 * - MT Card: Refactor the event listeners to listen method
 * - MT Card: Hightlight the section when hovering action buttons
 * - Corrections for draft restore based on permanent ids
 * - Remove unwanted &lt;span&gt; tags getting added to published content
 * - Avoid highlight color of CX appearing in published articles
 * - Show Wikipedia articles in 'Find articles missing in your language' tool
 * - Adjustment for language selector arrow
 * - Fix spacing between translations and right rail in dashboard
 * - Apply selected action on Translation card to the current paragraph too
 * - Correct the jsdoc for $.fn.machineTranslate
 * - Fix crash in ContentTranslationHooks::onSaveOptions
 * - Use parsoid permanent ids for section instead of CX generated ids
 * - Do not show the article selector unless all params passed in URL
 * - Add &lt;code&gt; and &lt;kbd&gt; markup to apihelp message
 * - Increase line-height for source and translation content to 1.5em
 * - Provide useful error details when publishing fails
 * - Enable the Publish button for retrying after a publishing failure
 * - Add apihelp for the progress parameter in the cxpublish module
 * - Reduce the code duplication in applyTranslationTemplate method
 * - Allow placing cursor inside empty list when translating from scratch
 * - Allow to scroll suggested lists of links in the link inspector
 * - Fix: Creating an external link with no text selected results link label as &quot;null&quot;
 * - Allow to add a link by pressing Enter from the link inspector
 * - Avoid providing Special:CX for blocked users
 * - When link target changed, reset the style classes
 * - Don't swap link cards when opening the link of the card behind
 * - Fix JSCS errors
 * - Send authorization header to cxserver
 * - Correct alignment for the link icon for RTL wikis
 * - Set an explicit &quot;from&quot; parameter on the gray interlanguage link
 * - Strip only the Category namespace when adapting categories
 * - Link the ContentTranslation change tag to the description
 * - Dashboard: Use the available horizontal space for titles
 * - Set ULS position according to page direction
 * - Contribution hover menu icon and layout adjustments
 * - Select the default source language from common languages
 * - Add a link from CX dashboard to CXStats
 * - User tool bar is reversed on Arabic (ar) Wikipedia
 * - Add special page aliases for Italian
 * - Gallery: Adapt the image namespaces to canonical File namespace
 * - Style improvements for page selector
 * - Reduce the size of icons in dashboard to match the font size
 * - Reduce the z-index of callout to a reasonable level
 * - Allow adding any external or internal link to the translation
 * - Make the height of search input field same as its container
 * - Separate and isolate source and target title in the dashboard
 * - Don't do anything when clicking on a discarded translation
 * - fetchLinkData of CXLink class must return jQuery.Promise
 * - Fix grammar in cx-trend-translations-to
 * - Change &quot;machine translations&quot; to &quot;machine translation&quot;
 * - Remove unused messages from extension.json
 * - Remove unused CXStats messages
 * - Update extension version
 * - Turn wgContentTranslationCampaigns into associative array
 * - Show the gray interlanguage link only when viewing the article
 * - While adapting references, validate whether the source has references list
 * - Fix special page alias for Persian
 * - Load ext.cite.style once the source article is loaded
 * - Make grey links darker
 * - Show the target title in the dashboard if it's different from the source
 * - Code cleanup in ext.cx.translationlist.js
 * - Remove target title from cxstats campaign
 * - Support &lt;poem&gt; translations
 * - Attach link handlers to redlinks after restoring the draft
 * - Avoid the obscuring of the discard draft dialog by other elements
 * - Use correct syntax for dieUsageMsg with parameters
 * - Link cards does not work on sections restored from draft
 * - Use consistent line breaks in ext.cx.translationlist.less
 * - BetaFeatures browser blacklist is an object
 * - Rename the getLink method to avoid confusion with CXLink.getLink
 * - Consistently use title.toText for cache access
 * - Fix: Translation percentage sometimes goes beyond 100
 * - Improve Persian special pages names
 * - Alphabetize dependencies in extension.json
 * - Don't try to fetch link pairs if there are no links
 * - Code cleanup in adaptLinks
 * - Remove $.isEmpty check from the formatter tool
 * - Add ext.cx.model as dependency for ext.cx.widgets.overlay
 * - Code cleanup in ext.cx.tools.categories.js
 * - Remove duplicate hook registration
 * - Set manifest_version in extension.json
 * - Compress png images
 * - Credit for the Chart.js library
 * - Fix CX alias file loading
 * - Use Echo notifications only when Echo is available
 * - Fix a typo in a variable name
 * - Dashboard: Add icons to the sidebar links
 * - Show a plus sign on increasing trend
 * - Fix different message usage in the stats highlights
 * - Code cleanup in renderHighlights in stats
 * - Add GENDER to cx-translationlist-empty-desc
 * - Enable publish button when the preference is not to use initial translation
 * - Additional trigger to add reflist while adding a reference manually
 * - Improve Persian special pages names
 * - Fix RTL display of the trend in CXStats
 * - Congratulate translator on 10th, 100th translation milestones
 * - Fix missing new translation button for new users
 * - Add the missing CX icon for CX dashboard
 * - Add lang and dir to autonyms in the dashboard
 * - Redesign the Content Translation dashboard
 * - Fix JSCS errors of ext.cx.sitemapper.js
 * - Convert unadapted links to plain text while publishing
 * - Whitespace and spelling fixes in cx.stats js and less
 * - lang and dir attributes for the autonym on the stats page
 * - build: Updating development dependencies
 * - Fix phpcs warnnings
 * - CXStats: Avoid graph overflowing the page margin
 * - Correct extension name in the shim
 * - Fixes when language code and domain differ
 * - Make gray links stay gray even if unfocused
 * - Migrate to JSON configuration based extension registration
 * - build: Configure banana-checker and jsonlint
 * - Use the callout widget for entry point dialog
 * - Misc link tool fixes
 * - Apply lang and dir to cx-source-loading
 * - Special:CXStats: Add link to tagfilter page in target wikis
 * - Fix contributions of contributions menu
 * - RTL fix for the Add link button
 * - Add special page aliases for Urdu
 * - Update commons_upload gem version
 * - Avoid save error when translation started with empty content
 * - Avoid using same error message for save and publish
 * - Bind link handlers to source links even if the target section is empty
 * - Remove duplicate message from en.json
 * - Notify user on first translation
 * - Apply correct lang and dir for different types of link cards
 * - In Wikibase linking, check the target title instead of source
 * - Add en.json credits
 * - Make cx-campaign-newarticle-notice more consistent
 * - Add Wikibase link only to pages in the main namespace
 * - Rephrase cx-tools-missing-link-text and add gender support
 * - Support gallery translations
 * - RTL fixes for the link card
 * - Rewrite the links module
 * - Fix js error in the CX contribution menu when VE is triggered
 * - Avoid bars overlapping or breaking the row
 * - Fix JS error while accessing Special:CXStats as anon user
 * - Source selector: Relax the validations on source title
 * - PLURAL for messages taking numeric (percent) value parameters.
 * - Add the commons_upload gem to allos screenshots uploading
 * - Callout widget: Improve the hover behavior
 * - Show login page if the URL has campaign parameter for anon users
 * - Published translations API: Correct the condition
 * - Fix JSCS errors
 * - Avoid cx-segment spans appearing in published content
 * - Add English singular to cx-stats-grouping-title
 * - Defer RC tag addition in the publish API
 * - Apply number formatting on new stats design
 * - Prevent swapping to an invalid target language
 * - Improved analytics page for CX
 * - Apply the correct tag to the screenshot job
 * - Update mediawiki/codesniffer to 0.2.0 and fix spacing
 * - Add a Wikibase link after publishing a page
 * - Code cleanup in ext.cx.publish.js
 * - Set manifest_version in extension.json
 * - RTL fixes for the reference card
 * - Make it possible to adapt references manually to an empty paragraph
 * - Publish preprocessing: Remove the empty br tags inserted by Firefox
 * - Sitemapper: Map the language names to correct domains
 * - Fix source page selector widget functionality
 * - Replace &quot;template&quot; with &quot;starting point&quot; in cx-mt-abuse-warning-text
 * - Make it easier to customize a link to translation guidelines
 * - Adjust &quot;To&quot; and &quot;From&quot; labels in the selector
 * - Language pairs of different direction and without MT: No default translation
 * - CXStats: Remove redundant condition
 * - Ask user to republish when publish fails
 * - Campaigns are only for logged in users
 * - Correct categories talk
 * - Add anon user check to ApiQueryContentTranslation
 * - Set direction and language attributes on the title input fields
 * - Adjust the styling of input boxes in the selector
 * - Fix the directionality of the columns' sub-headings
 * - Don't let source and target languages be the same
 * - Pageselector widget
 * - Show an invitation to translate a new article in VE, too
 * - Simplify the placeholder for the target title box
 * - Whitespace cleanup in ext.cx.source.selector.less
 * - Special:CXStats - use same full screen layout of Special:CX
 * - Update contributions menu to use latest callout widget
 * - Callout widget: Fix a change lost in rebase
 * - Use updated callout widget for the new article campaign dialog
 * - Updated callout widget
 * - Show an invitation to translate an article instead of creating
 * - First language screenshot scenario
 * - Update Gemfile for screenshot and appropriate mediawiki_selenium
 * - Show the newarticle campaign in the VisualEditor
 * - Make language selection saner
 * - Prevent Alt+S being consumed by CX
 * - Chrome does not show list formatting tools
 * - Remove unused i18n shim

ContributionTracking

 * - Set manifest_version in extension.json
 * - Updated extension registration to new system
 * - Remove i18n shim
 * - build: Updating development dependencies
 * - Schema migration adds the contribution_source table
 * - email -&gt; email address

CreditsSource

 * - build: Updating development dependencies
 * - Set manifest_version in extension.json
 * - Add extension.json, empty PHP entry point, remove i18n shim

CustomData

 * - build: Updating development dependencies

DisableAccount

 * - build: Configure banana-checker and jsonlint
 * - Set manifest_version in extension.json
 * - Add extension.json, empty PHP entry point
 * - Remove i18n shim

Disambiguator

 * - Modify the Special:Random query to ignore disambiguation pages
 * - build: Configure banana-checker and jsonlint
 * - Set manifest_version in extension.json
 * - Fixing configuration instructions in README.md
 * - Adding README.md with config instructions
 * - Remove unneeded $wgSpecialPageGroups

DismissableSiteNotice

 * - build: Updating development dependencies
 * - Have DismissableSiteNotice pass jshint
 * - Set license-name
 * - Add extension.json, empty php entry point
 * - Move SiteNoticeAfter hook to separate file
 * - Remove i18n shim
 * - build: Configure banana-checker and jsonlint

DonationInterface

 * - Only send IsVerified if !ESOP
 * - Amazon: Set txn id on $this-&gt;transaction_response
 * - Handle errors thrown by Amazon SDK
 * - worldpay iframe styles
 * - handle return result and maybe show fail page
 * - Log all Amazon SDK calls
 * - Minor Amazon formatting cleanup
 * - add name and email to required fields for WP
 * - Stylesheet for Worldpay.
 * - selection weight = 0 for worldpay iframe
 * - Case IsHosted parameter for ESOP only.
 * - Bring Amazon branch back to normal Mustache templates
 * - Comment out old WP API for now.
 * - Worldpay resultswitcher
 * - Don't submit an Amazon payment with invalid amount
 * - worldpay ESOP
 * - Handle results of Amazon API calls
 * - de-centralize mustache js
 * - optional address fields for mustache
 * - Make processOrphans public, not protected
 * - build: Updating development dependencies
 * - Allow callables in GatewayAdapter::$error_map
 * - Move Amazon test responses into their own files
 * - Quit validating that order_id is numeric
 * - Add amount and currency to Amazon API post
 * - Set errors on failed PaymentResult
 * - More refund logic tweaks
 * - Cancel subscriptions programatically
 * - Tweak the cancel/refund logic
 * - Correct typos
 * - GlobalCollect refund API
 * - Really don't do session stuff in batch mode
 * - Recurring charge can settle incomplete transactions
 * - Clean up orphan classes
 * - Add space after temp log prefix
 * - Limit OID reset on recurring changes, log resets
 * - Limit OID reset on recurring changes, log resets
 * - Amazon code cleanup
 * - Make it easier to find donations by email in AstroPay
 * - Fix fail page redirection (see deploy note!)
 * - Authorize and capture Amazon payment
 * - Clean up a bit of Amazon javascript
 * - Bump php-queue
 * - Convert queue message back into DI format
 * - update vendor submodule
 * - Disable Amazon forms
 * - Append specific message to generic communication error
 * - Consolidate slayer logging; general cleanups
 * - Log real GC error on validation problem
 * - Blank submethod on method change, OID on recur change
 * - Fix AstroPay signature when values contain plus sign
 * - Log signed message and signature on 'Invalid control'
 * - Stop fetching fields twice in message creation
 * - Use modern hook registration for Amazon
 * - Move Amazon Widget script and return URL into account
 * - Restore 'freeform' flag
 * - Clean up process_orphans vs processOrphans
 * - Rectify orphans inside the fetch loop
 * - Don't delete the message until we're done with it
 * - Add Amazon API endpoint
 * - Add pay with Amazon SDK composer package
 * - Add Amazon wallet widget
 * - Redirect to Amazon for login
 * - Switch Amazon to Mustache form, add modules
 * - Add id attribute to amount and currency
 * - Clear out old Amazon code to prepare for PwA
 * - Add payWithAmazon feature branch
 * - Log original GlobalCollect validation error
 * - Fix orphan loop, remove 'antimessage' references
 * - Remove legacy STOMP code
 * - update vendor submodule
 * - update php-queue
 * - update php-queue
 * - bump vendor
 * - bump php-queue version
 * - Don't delete limbo messages until we've finished processing
 * - Ensure we're plugging the AVS hole with n0thing
 * - Remove use of deprecated wfRunHooks
 * - Normalize currency_code to uppercase
 * - Deal with 'Could not make the deposit' AstroPay errors
 * - Catch specific exception in deleteLimboMessage
 * - Don't crash when queue backend can't delete message
 * - Include main Special page aliases file
 * - Orphan slayer reads from frack Redis
 * - Message helpers can handle both transaction or message-keyed source data
 * - Revert &quot;Orphan slayer reads from frack Redis&quot;
 * - Revert &quot;More debug hacks&quot;
 * - More debug hacks
 * - Revert &quot;Debugging hack&quot;
 * - Debugging hack
 * - Orphan slayer reads from frack Redis
 * - Add mustache loading overlay, show on form submit
 * - Quit sending AstroPay txns to limbo queue
 * - Log timing of each cURL attempt, not cumulative
 * - update vendor submodule
 * - Bump vendor php-queue version
 * - Clean up Redis and slayer stuff
 * - Fix currency code debug logging
 * - Fix name conflict with mw-core phpunit
 * - Set language globals from more tests
 * - Map some GC codes to message about transient errors
 * - Remove RapidHTML AstroPay form
 * - Log unrecognized AstroPay errors at 'error' level
 * - Use country-specific field names in error messages
 * - Remove unused $value parameter from getErrorMessage
 * - Downgrade log message for empty ffname
 * - Parse more of AstroPay's error descriptions
 * - Add country-specific versions of fiscal_number
 * - Check error['context'] to place error messages
 * - Use old error forms for AstroPay fail page
 * - Generate new order IDs for each NewInvoice call
 * - Move deleteMessage out of legacy antimessage function
 * - Give Japan forms correct selection weight
 * - Undo last commit's fiscal number normalization
 * - Validate fiscal number when exists, require for AstroPay
 * - Dynamically generate JS currency minimum amounts
 * - Update currency rates
 * - Rearrange order of CC logos on GC form for Japan
 * - Stop exceptioning in drupal formatMessage stub
 * - Fix recurring GC false success report
 * - Get around watchdog stripping tags
 * - Remove unused logfile parsing code
 * - Quit demoting log messages to debug under drupal
 * - Remove backwards-compatibility i18n shims
 * - Show transaction errors, delete dead code
 * - Adapt CSS to number of subpayment choices
 * - Make CurrencyRates last update visible
 * - Remove HSBC and Caixa banks from Astropay form
 * - Revert &quot;Orphan slayer reads from frack Redis&quot;
 * - Hide 'your card is safe' message for non-card methods
 * - Add Brazil banks and logos for Astropay
 * - Add logo filename to submethod meta, add big logos
 * - Add more_info_links partial for mustache forms
 * - Red Text validation messages
 * - Before Astropay redirect, log details for audit processor
 * - build: Updating development dependencies
 * - build: Add explicit dependency upon grunt-cli
 * - Allow text in the payment table to wrap
 * - Use email address as user id
 * - Allow text in the payment table to wrap
 * - Use email address as user id
 * - Update php-queue (again)
 * - Update php-queue (again)
 * - Update php-queue composer package
 * - Send message to pending queue before redirecting
 * - Don't keep retrying the same order ID
 * - Make more fields optional for building queue messages
 * - Deal with errors that are arrays
 * - Use ct_id.numAttempt format for Astropay order number
 * - Update to the Gerrit php-queue
 * - Send message to pending queue before redirecting
 * - Don't keep retrying the same order ID
 * - Make more fields optional for building queue messages
 * - Deal with errors that are arrays
 * - Use ct_id.numAttempt format for Astropay order number
 * - Orphan slayer reads from frack Redis
 * - Update to the Gerrit php-queue
 * - Make mustache form card selection act like GC
 * - Annotate some more vars and methods
 * - Initial validation for mustache forms
 * - Use generic payment_submethod in mustache inputs
 * - Get rid of special test functions
 * - Mustache l10n - use additional parameters
 * - PaymentMethod spec combines metadata from all levels
 * - Finish removing hardcoded nobody@wikimedia.org
 * - Stage email first, use staged for dependent values
 * - Redirect to failure page when the gateway is disabled
 * - Quit setting default email in form
 * - Remove debit cards from Brazil form
 * - Remove template debug logging
 * - Remove Unused Javascript from GlobalCollect gateway
 * - Specify class name in mustache l10n
 * - Move &lt;noscript&gt; contents into mustache partial
 * - More logic for mustache forms
 * - Add Astropay to form settings for BR/CC
 * - Refactor form resource loading
 * - Add appeal to mustache data
 * - Fix Mustache l10n array-to-string warning
 * - Quit wasting translators' time with test pages
 * - Rebrand WorldPay -&gt; Worldpay
 * - Validate gateway first
 * - Make configuration testable
 * - red pen stuff
 * - Add some new (UNUSED) globals that will toggle gateway availability
 * - Be consistent about forms whitelisting
 * - Build special page with the correct case
 * - Odd untranslated label issue in zipcode title
 * - Test a GlobalCollect API response
 * - Minor cleanup
 * - Copy GlobalCollect form and make it mustache-y
 * - Use $.on in place of deprecated $.live
 * - l10n for mustache
 * - cleanup
 * - Do queue stuff in Astropay ResultSwitcher
 * - Run antifraud filters before redirecting to Astropay
 * - Reset all singletons after each test
 * - Set detailed error arrays for Worldpay
 * - Get rid of getTransactionAllResults
 * - Make do_transaction return a PaymentTransactionResponse
 * - Start chipping away at getTransactionAllResults
 * - Finish eradicating setTransactionResult
 * - Get rid of more setTransactionResult calls
 * - Replace setTransactionResult calls in Adyen adapter
 * - Adyen: delete from memcache limbo queue
 * - Kill minor ghost of PayflowPro
 * - Adyen: delete from memcache limbo queue
 * - Kill minor ghost of PayflowPro
 * - Cleanup orphan rectifier
 * - Memcache should accurately mirror the legacy limbo queue
 * - Remove cruft
 * - Use DonationQueue for limbo queuing
 * - Cleanup orphan rectifier
 * - Revert &quot;Use DonationQueue for limbo queuing&quot;
 * - Revert &quot;Remove cruft&quot;
 * - Revert &quot;Memcache should accurately mirror the legacy limbo queue&quot;
 * - Memcache should accurately mirror the legacy limbo queue
 * - Remove cruft
 * - Use DonationQueue for limbo queuing
 * - Memcache should accurately mirror the legacy limbo queue
 * - Remove cruft
 * - Use DonationQueue for limbo queuing
 * - Use RetryLoopCount in base do_transaction
 * - Don't set error api result on empty array
 * - use __DIR__ everywhere
 * - Add limbo queue message before redirect
 * - Add ResponseProcessingException error to transaction_response
 * - Use a better default when looking up error by code
 * - Fix comm status and error checking for PaymentStatus
 * - Clarify purpose of addResponseData
 * - Fold parseResponseXX calls into processResponse
 * - Start refactoring processResponse
 * - getResponseXX -&gt; parseResponseXX
 * - Prepare to prune $transaction_results
 * - Remove validation action from transaction_results
 * - update vendor submodule
 * - update composer.lock
 * - update composer.lock
 * - Downgrade log message
 * - Move default DonationInterfaceFormSettings into the extension
 * - Make DonationInterface config less of a snowflake
 * - Add Special page aliases
 * - Move Final Status out of transaction_results, use consts
 * - Push gateway_params down into data
 * - Fix example syntax for DefaultQueueServer config
 * - MWException -&gt; Exception
 * - Make resultswitcher processing slightly less funky
 * - Correct recurring info text again
 * - Correct recurring info text again
 * - Use DonationQueue for &quot;complete&quot; and &quot;pending&quot; queues
 * - Comment about TODOs
 * - Catch errors and redirect to general failure page
 * - add comment
 * - update vendor submodule (deployment)
 * - update vendor submodule (deployment)
 * - Astropay result switcher
 * - Hack more language globals
 * - Be much more conservative about unstaging
 * - Determine per adapter whether we need to pop out of iframes
 * - Deal with duplicate order id in Astropay
 * - Remove optional fields from NewInvoice txn
 * - Define PaymentStatus, deal with delimited response
 * - comments and fixup
 * - Don't crash on missing fname or lname
 * - Write DonationQueue shim around PHPQueue
 * - Correct recurring info text

DoubleWiki

 * - build: Configure banana-checker and jsonlint

DynamicSidebar

 * - Remove use of deprecated wfRunHooks
 * - Use SidebarBeforeOutput hook &amp; stop disabling sidebar cache
 * - build: Configure banana-checker and jsonlint
 * - Set manifest_version in extension.json

Echo

 * - Add an emailuser web notification
 * - Remove talk page notification bar if all messages are read
 * - IP addresses should link to Special:Contributions instead of user page for revert
 * - Replace entire &lt;li&gt; element to produce button and popup separately
 * - Update the API when a single notification is marked as read
 * - Correct unseen animation in notifications
 * - Add a missing dot in the new api error message in English.
 * - Fix a code comment to make it much clearer
 * - Show a default message if no notifications are available
 * - Make the footer links readable in Modern
 * - Handle API fetching errors
 * - Updated watir-webdriver Ruby gem to the latest version
 * - Split up ext.echo.nojs into badge and notifications styles
 * - Don't depend upon ext.echo.logger in ext.echo.init
 * - Measure how likely users open flyout if they have unseen notifications
 * - Adjust margins for the notification badge in MonoBook
 * - Split out .mw-echo-alert styles back into a separate module
 * - Only load ext.echo.ui if the user clicks the echo badge
 * - Also defer the markRead master updates
 * - Don't show orange alert if you are viewing your user talk page
 * - Don't load unused Echo JS/CSS on mobile
 * - Hack around OOUI's icon pack being too large by creating our own
 * - Use math to compute badge padding in nojs
 * - Don't load oojs-ui.styles on every page
 * - Only load nojs Special:Notifications styles on the special page
 * - Wrap notifications with a link for native click behavior
 * - Link directly to notification preferences in flyout
 * - Let action buttons center align
 * - Avoid flashes: late debounce causes annoying flashes
 * - Use localized numbers in the badge
 * - Make links non-white in the notification popup in Modern
 * - Defer the &quot;seen time&quot; updates on GET requests
 * - Fix vertical alignment of 'Mark all as read' button
 * - Add constructed class and messages names in comment for greppability
 * - Don't clear notifications when refetching
 * - Restyle buttons to be fully clickable
 * - Remove unnecessary calc from css
 * - Override padding for links in personal tools in Modern skin
 * - Only use inverted icons for skins using the MediaWiki OOUI theme
 * - Align popup footer buttons to take 50% width each
 * - Add mediawiki.jqueryMsg dependency
 * - Only show 'mark all as read' AFTER there are notifications
 * - Reduce distance between notification badges
 * - Use #pt-notifications-alert to get Special:Notifications link
 * - Add a tooltip to the notification badges
 * - Show unread notifications first in the popup
 * - The return of the 'mark all as read' button
 * - chmod 644 for php files
 * - Only send api request if the popup is opening
 * - Align notification badge higher on the personal navigation bar
 * - Fix the badge icon update
 * - Specify firstHeading rule for .mw-special-Notifications only
 * - Restore echo.alert styles
 * - Move edit-user-talk to messages
 * - Use the correct cache key when storing 'hasMessages'
 * - Create an 'initiallyUnseen' class for initially unseen notifications
 * - Don't wait for the API to update seen status of notifications
 * - Add a border between the popup head and notification list
 * - build: Bump grunt-contrib-jshint from 0.11.2 to 0.11.3 to fix upstream issue
 * - Separate 'seen time' for alerts and messages
 * - Correct 'primaryLink' to 'primaryUrl' everywhere
 * - Use db-replicated objectcache for storing last seen time
 * - Split alerts and messages in Echo
 * - Require a Language object in DiscussionParser::getTextSnippet
 * - Expose the revid of the event revision in the API
 * - Defer clearTalkNotification updates as they often happen on GET requests
 * - Bump mention limit to 50
 * - Put back notification_timestamp for web.
 * - Fix fatal DB exception
 * - Select specific rows in EchoEventMapper::fetchByUserBundleHash
 * - Fix typo in documentation
 * - Document Event methods that can return null
 * - BasicFormatter: Add accessor to get the correct Language object
 * - Remove unused globals
 * - Fix typo in documentation
 * - Measure how long it takes for the flyout to open
 * - Reduce CAS errors in ApiEchoMarkSeen
 * - Only require event type to construct a formatter
 * - Remove use of deprecated TestUser-&gt;user
 * - Add some type-hinting and doc fixes
 * - Refactor and unify icon URL logic
 * - Remove useless and misleading comment
 * - Fix usage of UserMailer::Send to use new signature
 * - Fix more &quot;the job queue can run against different wikis&quot;
 * - More detailed Echo description
 * - Avoid an extra memcached lookup in MWEchoNotifUser::getNotificationCount
 * - ApiEchoMarkRead: Remove unused variable
 * - Load only the EchoInteraction schema client-side
 * - Userlogin is canonical name, not UserLogin
 * - Get rid of disabled 'echo-notify-show-link' preference
 * - Link to localized Special:Notifications in overlay footer
 * - Add test case to demonstrate T68512 is fixed
 * - Use PROTO_CANONICAL for icon links in emails
 * - chmod 644 a few files
 * - Avoid warnings on older queued EchoNotificationDeleteJobs
 * - Flip EchoEvent::getUseJobQueue default
 * - Revert &quot;Pass uselang=user to the API instead of figuring it out client side&quot;
 * - Remove unused 'echo-error-preference' and 'echo-error-token' messages
 * - Have EchoNotificationDeleteJob process only one user
 * - Remove EchoNotificationFormatter::requiredParameters
 * - Throw InvalidArgumentException in NotificationFormatter
 * - Don't silently accept invalid class names
 * - Fix doc comment in EchoNotificationController
 * - Fix docs on EchoNotificationDeleteJob and set explicit visibility on functions
 * - Don't use $dir
 * - Update tests/phpunit for new directory structure
 * - Separate logic for extracting usernames from picking the right one
 * - build: Adding configuration for jsonlint
 * - Fix typo in scenario name
 * - Guarantee a correct known status for Linker::link
 * - Remove unused EchoDiscussionParser::getNotifiedUsersForComment
 * - Use intval to make string concatenation in DB query less scary
 * - Merge MWDbEchoEmailBundler into MWEchoEmailBundler, remove abstraction layer
 * - Merge MWDbEchoEmailBatch into MWEchoEmailBatch, remove abstraction layer
 * - Move all PHP code into includes/
 * - Remove dead dismiss code
 * - Use mw.Api.postWithToken to automatically re-try badtoken errors
 * - Remove pre-MW 1.22 compatability code
 * - Pass uselang=user to the API instead of figuring it out client side
 * - ext.echo.special depends upon mediawiki.api
 * - build: Updating development dependencies
 * - Fix new talk page message notification
 * - The job queue does not run against multiple wikis at once
 * - Don't depend on global grunt install
 * - Use &quot;elseif&quot;, not &quot;else if&quot; in PHP
 * - Cleanup LoadExtensionSchemaUpdates hook
 * - Require Resources.php in entry point
 * - Don't pollute $GLOBALS in Resources.php
 * - The OBOD is orange
 * - Kill $wgEchoCohortInterval
 * - Standardize doc spacing
 * - Kill $wgEchoBackendName
 * - Simplify registration of EventLogging modules
 * - s/wfRunHooks/Hooks::run/
 * - Remove todo that we're not going to do
 * - Make processEchoEmailBatch check that Echo is actually enabled before doing anything
 * - Allow new notifications to be created with old timestamps
 * - Maintenance script sends notifications immediately
 * - Remove i18n shim
 * - Always assume a prefix-length of one.
 * - Test with $wgDiff = false when wikidiff2 is installed
 * - Run DiscussionParserTest with $wgDiff = false to match prod
 * - Removed pointless memcached delete
 * - Use DeferredUpdates::addCallableUpdate for generateEventsForRevision
 * - Replace deprecated $wgSpecialPageGroups
 * - Don't repopulate cache with potentially lagging DB data
 * - Until seentime is recorded, we should treat notifications as unseen
 * - Actually pass jscs
 * - Add Grunt infrastructure for CI
 * - Display red badge based on time of notifications vs last time panel was opened
 * - Explicitly define module position
 * - Add fallback for enotiftalk in generateEventsForRevision
 * - More explicit type matching in detectSectionTitleAndText
 * - Update 'notification-page-linked-email-subject' message
 * - More explicit type matching in detectSectionTitleAndText
 * - Update 'notification-page-linked-email-subject' message

EducationProgram

 * - Get language names via core functions
 * - orgs -&gt; institutions in a message text
 * - EducationProgram: Add GENDER to some messages.
 * - Handle non-array serialized event info gracefully
 * - Never unconditionally 'return false' from interface hooks
 * - Optimized onNewRevisionFromEditComplete method
 * - Fix a Hebrew special page name
 * - ApiAddStudents: Use ApiBase::PARAM_ISMULTI
 * - Replace deprecated $wgSpecialPageGroups
 * - Update API calls following core changes
 * - ApiListStudents: Use XML-friendly tag names

Elastica

 * - Update Elastica dependency
 * - Handle non-array values of ElasticaConnection::getServerList
 * - Allow full server configuration with array syntax
 * - build: Configure banana-checker and jsonlint
 * - Set manifest_version in extension.json

EventLogging

 * - server: Use HTTPS for meta.wikimedia.org in devserver example
 * - Log url size errors to statsd
 * - Allow mysql consumer to continue in case of duplicate key error
 * - Setup.py only matches eventlogging tests
 * - Use formatversion=2 for internal API requests
 * - Set log levels for pykafka and kazoo to info
 * - Need to ascii encode consumer_group passed to pykafka
 * - Update a bunch of links to use HTTPS instead
 * - Update default api uri to use https
 * - Fix string and UUID type concatenation bug
 * - Accept the deployed version of pystatsd
 * - Send mysql consumer stats to statsd
 * - Parallelize eventlogging processor
 * - Kafka writer can now use either simple or keyed producer, simple is default
 * - Make kafka reader configurable via keyword args, mark messages as done as they are read
 * - Attempt to pass URI query params into builtin types before passing to functions
 * - Fix eventlogging-reporter to subscribe to ip address of node rather than localhost
 * - kafka and tcp (0mq) readers now both use the same parameter name (identity)
 * - Adjust default log level; allow log level to be set by environment variable
 * - Add blacklist parameter to kafka writer
 * - Make eventlogging-processor take multiple outputs
 * - Add udp writer handler
 * - Fix bug where it was not possible to use multiple file writers in a single process
 * - Release 0.0.9, Add changelog.md
 * - build: Configure banana-checker and jsonlint
 * - HTTPS is now forced for meta.wikimedia.org and many other wikimedia sites, use it
 * - Update usage docs for eventlogging-forwarder
 * - [BREAKING CHANGE] RemoteSchema: Drop support for index.php wgEventLoggingSchemaApiUri
 * - api: Send Last-Modified header with revision timestamp
 * - Write different EventError code for validation errors
 * - eventlogging-processor can now use the same output URI as the output invalid writer
 * - Processor's output-invalid now sends an error json object with the error message and the raw event
 * - Update ResourceLoaderSchemaModule::getDependencies method signature
 * - Add optional output for invalid events
 * - Fix topic passed to ensure_topic_exists in kafka writer
 * - Kafka handlers now read brokers out of URI path instead of query parameter
 * - Fix syntax error with newline in error message
 * - Allow Kafka writers topic and message keys to be configured using event information
 * - Modify forwarder to produce multiple outputs
 * - Remove redundant ResourceLoaderModule::getModifiedTime implementation
 * - s/wfRunHooks/Hooks::run/
 * - Use namespaced MediaWiki\Logger\LegacyLogger
 * - Further optimize sql insertion
 * - Honor navigator.doNotTrack
 * - tests: Remove obsolete cache-epoch assertion
 * - ResourceLoaderSchemaModule: Call parent getDefinitionSummary method
 * - API: Force 'required' key to use bools in formatversion=1
 * - Insert events by scid
 * - Change consumer logs to better report batch inserts
 * - test: Suppress mw.log.error output in qunit
 * - Use mw.log.error instead of 'console.error'

ExtensionDistributor

 * - build: Upgrade jscs to 2.1.0
 * - build: Updating development dependencies
 * - All infusable widgets are now automatically infused
 * - .jshintrc: Set globals to false
 * - build: Configure &quot;npm test&quot; with jshint, jscs, jsonlint, banana-checker
 * - Add missing qqq
 * - Record downloads with EventLogging
 * - API: Output full url to tarball instead of sha1
 * - Set manifest_version in extension.json
 * - Allow list=extdistbranches to be cached and pass maxage params to it
 * - Display version selector via JavaScript
 * - Convert form elements to use OOUI
 * - Add API module to get branches for a repository
 * - Don't show master twice
 * - Replace deprecated $wgSpecialPageGroups

FeaturedFeeds

 * - Remove i18n shim and is unused
 * - Set manifest_version in extension.json
 * - Remove use of deprecated wfRunHooks
 * - Avoid $cache variable collision
 * - Add extension.json, empty PHP entry point
 * - Conversion to using WAN cache

FlaggedRevs

 * - Removed $wgDeferredUpdateList mentioning
 * - Avoid calling addHTMLCacheUpdate
 * - Removed ignored $wgAPIGeneratorModules
 * - Removed pointless Title::GAID_FOR_UPDATE for altBaseRevId field
 * - Removed an unnecessary apostrophe from a message
 * - i18n: Add PLURAL/GENDER support to revreview-reject-summary-*
 * - i18n: Native digits on &quot;revreview-check-flag-p&quot;
 * - Remove use of deprecated wfRunHooks
 * - Defer FRUserCounters save-updates to post-send
 * - Make wpReviewthis checkbox actually work
 * - Replace &quot;based off&quot; with &quot;based on&quot; in messages
 * - Fixed strange revreview-reject-text-list messages using numbers as the title
 * - Conversion to using getMainStashInstance
 * - build: Configure banana-checker and jsonlint
 * - Remove removed message 'stabilize_protect_quota' from qqq
 * - Avoid post-redirect parse for certain edits
 * - Added some type docs
 * - Removed old b/c check for mImageTimeKeys
 * - Use pool counter for page parses
 * - Avoid extra post-save parse that can sometimes occur
 * - Updated numUsersWatchingPage to use recentchanges
 * - Remove quotes around object properties in JavaScript
 * - Remove unused variables in JavaScript
 * - Unify and simplify onload event execution
 * - Use .prop according to jQuery doc
 * - Fixed APCOND_FR_NEVERBLOCKED typo
 * - Replace deprecated $wgSpecialPageGroups
 * - Restore main verb in apihelp-reviewactivity-param-reviewing
 * - Moved all page view updates to the job queue
 * - Moved FRExtraCacheUpdateJob to a separate file
 * - Removed safeGetLag check; handled by &quot;max lag&quot; DB config
 * - Explicitly define module position
 * - Avoid pointless master connections in setViewTabs

Flow

 * - Revert &quot;Add debug info to OptInController&quot;
 * - Add debug info to OptInController
 * - Don't use getContent in optIn
 * - Browser tests: Wait for preloaded text to be populated in VE
 * - Fix FlowFixLinks to use ref_src_wiki and require migration be complete
 * - Defer the User::saveSettings call in TopicListBlock
 * - Assume wgUser when no ParserOptions are given
 * - Fix LESS syntax error
 * - Browser tests: remove redundant assertion
 * - Use localized version of LQT magic word
 * - Instantiate the Optin controller only when needed
 * - Preload new topic
 * - Show real output instead of placeholder HTML
 * - build: Enable jscs rule 'requireSpacesInsideBrackets' and make pass
 * - Read board content from master db
 * - Use the currect user when checking whether there was a board before
 * - Remove obsolete comment. This is no longer the last one.
 * - Update Title &amp; LinkCache article ids right after move
 * - Make sure $title object has the correct article id
 * - Make it seem like new workflow creation has no page
 * - Clear LinkCache when failing to fetch Flow board
 * - Clear title caches after moving old talk page
 * - Add a calculated min-height for the editor widget placeholder
 * - Browser tests: fix buttons locators for anonymous edit
 * - Update references migration to reflect production status
 * - Use ref_src_workflow_id to find workflow ID, add index
 * - Add Korean translation
 * - Add Orya translation
 * - Add GENDER support for opt-in Echo messages
 * - Centralize the application of flow-api-inprogress class
 * - Use topicId instead of page name for posts in the APIHandler
 * - Make sure editLink gets set in OOUI/BoardDescriptionWidget
 * - Fix toggling Flow to false in BetaFeatures (opt-out)
 * - Follow-up 87faf4b3241: don't break toolbar when setContent is called
 * - Don't open multiple editors when editing posts that have replies
 * - Set the guided tour cookie in onUserSaveOptions
 * - Set line-height: 0; to empty AnonWarningWidget
 * - Move lock up in the Flow drop down menu
 * - Avoid null pointer exception and instead show relevant debugging info
 * - Remove containing file as intended.
 * - Remove dead code
 * - Add hint to use to flow-talk-page-beta-feature-description
 * - Add GENDER support for flow-notification-enabled-on-talkpage-email-batch-body
 * - chmod 644 for php files
 * - Replace the WT-&gt;VE switch button with an OOUI toolbar tool
 * - Make VE and wikitext editors (almost) the same height
 * - mw.flow.ve.Target.less: Avoid magical margin-top on actions div
 * - mw.flow.ve.Target.less: Apply font-size override to toolbar rather than target
 * - EditorSwitcherWidget: Move wikitext-specific styles to WikitextEditorWidget
 * - VisualEditorWidget: Ensure toolbar is initialized after editor is attached
 * - Use wikitext icon from OOUI for the VE-&gt;WT switch tool
 * - Remove unused message flow-error-edit-restricted
 * - Design the anon warning widget
 * - Don't trigger event in mediawiki.ui.enhance test
 * - Add debugging code for invalid titles in WikiReference
 * - Browser tests: Special:EnableFlow without header
 * - Fix variable capitalization
 * - Browser tests: adjust to actual archive template
 * - &lt;br&gt; → &lt;br /&gt; in 'flow-notification-enabled-on-talkpage-title-message'
 * - build: Bump grunt-contrib-jshint from 0.11.2 to 0.11.3 to fix upstream issue
 * - Unbreak update.php for wikis using MW_INSTALL_PATH
 * - Add a confirmation dialog for canceling edits
 * - Hackily move the check icon a bit so it appears to align better
 * - Remove 'last modified' message from the description
 * - Activate guided tour from opt in process
 * - Fix/clarify some comments
 * - Create a guided tour for first-time users
 * - Always refetch data editing description
 * - Beta feature Flow on user talk page
 * - Use addJsConfigVars instead of makeInlineScript for JSON blob
 * - Browser tests: fix typo in step usage
 * - Edit post widget
 * - Add namespace for Arabic
 * - Allow converting entire LQT namespaces
 * - Fix removing references by using right PK, only right indexes
 * - BoardDescriptionWidget: Don't fetch wikitext when initializing VE
 * - Don't change editor preference if preferred editor is unsupported
 * - Remove duplicated 'loadmore' event handling
 * - Disable Echo notifications for FlowFixLinks.php
 * - Don't include virtual pages as wiki links
 * - Fix removal/addition of categorylinks
 * - Load mwimage support in VE
 * - Use the VirtualRESTService to configure Flow
 * - Allow zero-length descriptions in both S:EF and standard edits
 * - Anchor the regex for ./ stripping
 * - Make sure flow entries are created with correct content
 * - Fix positioning of resolved check icon in RTL
 * - VisualEditorWidget: Guard against setting selection to -1
 * - Fix some PHPDoc
 * - Fix typo
 * - Rename OccupationListener to TopicPageCreationListener
 * - Remove TalkpageManager::isTalkpageOccupied
 * - Fall back to the first available editor when the preferred editor is not available
 * - Make SidebarExpandWidget work in RTL
 * - Remove extra space from calls
 * - Remove double spaces in en.json
 * - Reduce font size and vertical padding of topic header
 * - Fix another issue with patch-reference_wiki.sql
 * - Populate the Description data model even if content is empty
 * - Fix typo in sql patch
 * - Browser tests: various fixes for firefox
 * - Create all templates Flow uses
 * - Browser tests: handle empty board description
 * - Add Western Balochi namespace
 * - Fix CAPTCHA on new editors
 * - Added $rclass to BagOStuff lock method to match core
 * - Use placeholder HTML rather than rendering the board in getParserOutput
 * - Update Mazandarani namespace
 * - Use moveCursorToEnd from OOjs UI
 * - Don't open two editors when clicking a nested reply link
 * - After switching editors, move cursor to end
 * - Browser tests: update for new Flow editor
 * - Use rc_source instead of rc_type
 * - Use messages that actually exist for tooltips in SidebarExpandWidget
 * - Clean up width toggle styles
 * - Segregate Reference objects by source wiki.
 * - WikitextEditorWidget: Prevent preview link from being followed
 * - Cleanup debugging code for isTalkpageManagerUser
 * - Make pressing Escape key in new topic title input also cancel
 * - Add Persian special pages aliases
 * - Turn spaces into tabs
 * - Turn FlowCreateMentionTemplate.php into multi-template-creation script
 * - Rename memcache.buffered to memcache.non_local_buffered
 * - build: Add a 'fix' task for jscs:fix and run jshint first
 * - build: Update grunt-jscs from 1.8.0 to 2.1.0
 * - Fix error in IRCLineUrlFormatter
 * - Use the correct context for error in the api response
 * - Enable VE by default
 * - Disable site search for NS_TOPIC, since it doesn't work
 * - Update description content immediately after save
 * - Use $wgNamespaceContentModels instead of $wgFlowOccupyNamespaces
 * - Get rid of $wgFlowOccupyPages
 * - Restore 'new topic' records to the watchlist
 * - Add script to populate rev_content_model for $wgFlowOccupyPages
 * - Manage save button state properly
 * - Log when topic finishes importing
 * - Add South Azerbaijani namespace
 * - Account for cases where boards have no description
 * - NewTopicWidget: Blur title input on cancel
 * - Add Mazandarani namespace
 * - EditorWidget: Pass config.autoFocus through to the correct widget
 * - Add Northern Luri namespace
 * - Add Central Kurdish namespace
 * - Fix Persian namespace name translation
 * - Vietnamese namespace and special page alias
 * - Clear NewTopicWidget after saving
 * - Use correct CSS class for error boxes
 * - Account for non-API errors in error handling code
 * - Follow-up 89a5bbca8e: add b/c logic for 'none' meaning 'wikitext'
 * - Make the reply link for the last post work
 * - Add debugging code to detect and workaround type hint failure
 * - Ignore clicks on links inside of collapsible areas
 * - Close editor when Escape is pressed
 * - Hide the BoardDescriptionWidget when siderail is collapsed
 * - Elastica\Query::setFilter is deprecated.
 * - Follow up for change in ConfirmEdit
 * - Eliminate two API requests for board description fixed-html on load
 * - Don't try to change anons' preferences
 * - Correctly handle activating an editor the second time
 * - Short-circuit switching to the already active editor
 * - Change how memcache.local_buffered/buffered are handled
 * - Evaluate the editor preference only when loading the first editor
 * - Don't hide the legal text on narrow screens for now
 * - Fix editor focusing issues
 * - Don't display an empty anonymous-user warning
 * - Change default sort to &quot;recently active&quot;
 * - Remove obsolete incorrect comment
 * - Create an OOUI widget for board description
 * - Create a new topic widget
 * - Correctly judge whether VE editor widget is empty
 * - Add new members to the authors list
 * - Create a reply widget with the new editor
 * - Output the board description as an ooui widget
 * - Create an OOUI editor widget
 * - Increase footer spacing in description
 * - Adjust for breaking change in VE: extend sa.DesktopTarget instead of sa.Target
 * - Changed compare revisions header message
 * - Eliminate some memory leaks affecting LQT-&gt;Flow:
 * - Allow for expanding/collapsing single topic view
 * - Show friendly error if no description on EnableFlow fresh creation
 * - Urdu namespace l10n
 * - Fix legal text issues:
 * - Correctly show the navigation bar again when needed
 * - Style resolved topics differently in TOC
 * - Hide the sidebar footer when it is collapsed
 * - Remove use of deprecated TestUser-&gt;user
 * - Fix api-flow-topic-history and api-flow-post-history
 * - Expose post and topic history through the API
 * - 'About this board' instead of 'About this discussion'
 * - Follow up ConfirmEdit change of SimpleCaptcha::getForm
 * - Fix undo pages
 * - Fix parameter order for setModerated
 * - Use correct wrapping for the JSON blob inline script
 * - Added BagOStuff READ_LATEST flag for replicated stores
 * - Browser test fixes
 * - SECURITY: Strip edit tokens in mw.flow.data
 * - Update VE target constructor call for breaking change
 * - Add date line and copyright message to header
 * - Standardize modified/updated terminology.
 * - Load talk page manager user less often.
 * - Suppress notifications during talk page conversion to Flow
 * - Update tests to reflect trailing newline being stripped from Parsoid output
 * - Flagging and filtering &quot;new pages&quot;
 * - Clean up 'Flow talk page manager' related code
 * - Change Polish translation of Topic namespace
 * - Allow 0's when handling magic word.
 * - Made BufferedBagOStuff proxy through lock calls to avoid breakage
 * - Attach VE toolbar after VE debug bar, if there is one
 * - Don't add trailing newline when switching from VE to wikitext
 * - Add dm.Post and connect them to dm.Topic hierarchically
 * - Add &quot;inital&quot; to typos file
 * - Fix flow DM in single-view and history pages
 * - Browser tests: make faster
 * - Use post time + 1 min for signature edit as well.
 * - Browser tests: upgrade to mediawiki-selenium 1.4
 * - Have wgFlowHelpPage point to real page
 * - Follow-up cf3e8e5aee: fix styling of auto-numbered external links
 * - Correctly populate topic on single-topic view
 * - build: Use new grunt-tyops package rather than local copy
 * - Don't abort on invalid characters when creating DOM
 * - Update translations for Galician
 * - Force scrollbars on OS X
 * - Initialize navigation div with a height value
 * - Disable and partially hide content while flow-JS is loading
 * - Add title to Parsoid exception for troubleshooting
 * - Remove unnecessary position: relative; rule
 * - Create browser tests for Special:EnableFlow
 * - Fix debug bar positioning
 * - Don't convert editor content when we don't have to
 * - Use correct format to register VisualEditor commands
 * - urlencode titles in Parsoid URL
 * - Remove no-op wfProfile(In|Out) calls
 * - Summary authors line
 * - Use correct module name for ApiFlowUndoEditTopicSummary
 * - Use a message for archive pattern
 * - Check for &amp; report permissions error in single-view pages
 * - Use boardHistory component for topic history
 * - Suppress topic creation entry from RC, watchlist, contributions and history
 * - Deduplicate API requests in dm.System#fetchMoreTopics
 * - ToCWidget: Remove wrapper div
 * - Make TopicMenuSelectWidget clip correctly
 * - TopicMenuSelectWidget: Fix scroll logic
 * - Never send email notifications for LQT notifications imported to Flow
 * - Use OOUI display format for Special:EnableFlow
 * - Follow-up c8931f01b865: Only apply width: 100%; to ToCWidget when floating
 * - Stop using the general isAllowed method for null values
 * - Add list of highlighted words and total term frequency to API output
 * - Change mention inspector template
 * - Ensure there are no duplicate orderedTopicIds
 * - Recompile all Handlebars to fix whitespace discrepancy
 * - Revert &quot;Set overflow auto on the ToC wrapper&quot;
 * - Add text-overflow: ellipsis to the ToC widget
 * - Correct placement of the scroll when we scroll to topic
 * - Set overflow auto on the ToC wrapper
 * - Remove metadataonly parameter from JS
 * - Fix browser tests
 * - Revert &quot;Change mention inspector template&quot;
 * - Make search API output very similar to view-topiclist
 * - Move fetchTopics to the system controller in ToC widget
 * - Add .super to typos list
 * - Add Grunt task for detecting typos
 * - IE8: Use .parent instead of .super
 * - Remove Wikiglyph, it's unused now
 * - Follow-up a16357b8c5: fix order icons
 * - Index more than just deepest level of replies
 * - remove lintian errors by correcting permission script
 * - Use OOUI display format for Special:Flow
 * - Escape initialization if no flow-board exists in the page
 * - Link to single-view for block-level EnhancedRC entries
 * - Only show one &quot;Older edit&quot; and one &quot;Newer edit&quot; link
 * - Api output format consistency
 * - Add undo-link to diff-page
 * - Update Echo 'use-jobqueue' flag for I707bc01a9708
 * - Create an OOUI ToC widget
 * - Use config variable to enable ApiFlowSearch, rather than commenting out
 * - Add stop logging to all top-level scripts that convert to Flow
 * - Revert &quot;Temporarily make subpages in occupied namespaces non-Flow again&quot;
 * - Add --archive-pattern option to convert script
 * - Change mention inspector template
 * - Copy placeholders over to VE surfaces
 * - Stop calling non-existing Connection::getRevisionType
 * - Have ext.flow.visualEditor depend on es5-shim for bind
 * - Add dm.APIHandler to Flow UI
 * - Set up events for the new flow ui
 * - Add a base for flow ui
 * - Follow-up 33e3706cb: Fix silly typo
 * - Don't call inside of attribute values
 * - Stop passing along very detailed vars between diff tpls
 * - Always show topic history
 * - Don't use $wgFlowOccupyPages in NotifiedUsersTest
 * - Output initial topics in a JSON blob
 * - Fix timestamp link in grouped RC lines
 * - Legal text should reflect correct button text
 * - Fix undefined class
 * - Add config directive 'core-delete-permissions'
 * - Temporarily make subpages in occupied namespaces non-Flow again
 * - Reapply &quot;Use OOUI icon instead of WikiFont for load-more spinner&quot;
 * - Revert &quot;Use OOUI icon instead of WikiFont for load-more spinner&quot;
 * - Browser tests: clearing the content of VE
 * - Use OOUI icon instead of WikiFont for load-more spinner
 * - Fix some browser tests
 * - Board description browser tests
 * - Create UUIDBlob objects directly
 * - Document remaining parameters of Wikitext ConversionStrategy
 * - Pass missing argument to EnableFlowWikitextConversionStrategy
 * - Make topic history full width
 * - Fix style to show sort icon (downCaret)
 * - Fix focus state styling on wikitext and VE editors
 * - Propagate summary edits into history cache
 * - Fix topic history's revision cache expansion
 * - Convert watch star from wikiglyph glyphs to OOUI icons
 * - Fix summarize menu item
 * - Revert &quot;Convert watch star from wikiglyph glyphs to OOUI icons&quot;
 * - Use parent instead of super to fix IE8
 * - Browser tests for &quot;mark as resolved&quot; and &quot;reopen&quot;
 * - Remove deprecated API params
 * - Autofocus into edit header form
 * - Document missing parameter for createSignatureClarificationRevision
 * - Fix topics not appearing reliably after LQT-&gt;Flow, before action=purge
 * - Add more tests for TalkpageManager
 * - Only check $wgFlowOccupy settings for non-existent pages
 * - Output error message instead of failing for more than just html
 * - Implement &quot;Mark as resolved&quot; user workflow
 * - Move the UTF-8 forcing workaround for libxml into createDOM
 * - Import\Wikitext\ImportSource::extractTemplates: Explictly specify UTF-8
 * - tests: s/parse_url/wfParseUrl/
 * - Short-circuit in the ContentHandlerDefaultModelFor hook
 * - Remove unused use statement
 * - Fix property name in tests
 * - Add events on moderation action for dm.Topic
 * - Don't break update.php
 * - Suppress notification emails for Flow user actions (including import)
 * - Add flow_workflow_update_timestamp index
 * - Fix appearance of article icon
 * - Convert watch star from wikiglyph glyphs to OOUI icons
 * - Add ParserOutput timestamp to fix Wikibase exception
 * - Don't rely on __toString
 * - Improve Workflow::isNew check
 * - Don't write when we're reading data
 * - Stop accepting Workflow object in BoardContent
 * - Fix TalkpageImportOperationTest
 * - Make PostRevisionTestCase store all objects
 * - Replace wikiglyph-star-list icon with watchlist icon from OOUI (via mw-ui-icon)
 * - Replace wikiglyph icons in side rail with OOUI (really mw-ui) icons
 * - Allow invalid content in ContributionsQuery
 * - Run pre-save transform on wikitext before saving it
 * - Explain why the insert order is important
 * - Show template when LQT signature user differs from author user
 * - Only show 'patrol' link if there is an RC entry
 * - Add option to conversion script to skip pages with a certain template
 * - Move hooks in Flow\Content\Content to FlowHooks
 * - Check topicSummary permissions, even if null
 * - Add missing use statements
 * - Fix php notice
 * - build: Adding configuration for jsonlint
 * - Refuse to run conversion script on namespaces without subpages
 * - Follow-up e4c8a1504f: fix CSS issues
 * - Don't check if a revision is in recentchanges if it is too old
 * - Make none-editor use TextInputWidget
 * - Show stub content where we're missing content instead of failing
 * - Point from -irc messages to main messages, and make it more greppable
 * - Use rawcontinue so we don't get inapplicable warnings
 * - Cleanup API calls in LQT-&gt;Flow
 * - Follow-up c63ea54: re-use RC row, don't parse it twice
 * - RC patrolling for Flow
 * - Don't hook into ourselves, just call the function directly
 * - s/wfRunHooks/Hooks::run/
 * - Correctly aggregate flow.dm.List item events
 * - Only add the Flow talk page manager account to the flow-bot group if not in it
 * - Fix FlowPostMetaActionTests
 * - More contrast on the gray lines that indicate tangents
 * - Comment out API request initializing DM for now
 * - Skip query that's known to fail under certain conditions
 * - Use LoggerFactory to get a Psr\Log instance
 * - Remove unused global declaration
 * - Be stricter when checking user
 * - build: Updating development dependencies
 * - Cleanup duplicated/unused messages and make easier to grep
 * - Fix regression; summary was not being shown due to wrong structure
 * - Use getHashObject to make dm items hashable
 * - Show unpatrolled flag in watchlist and recent changes
 * - Store side rail state in user preferences
 * - No need to allowCreation on NS_TOPIC, it's always occupied
 * - Only change editor preference if user makes a change
 * - Remove no-op test
 * - board: Use 'ease' instead of 'linear' for transition
 * - Add small comments to clarify page-creation during import
 * - Update obsolete JS comment
 * - Update topic star tooltip text
 * - Make side rail text bigger
 * - Create a basic data model layer for Flow JS
 * - Don't attempt to convert pages that have just been converted
 * - Abort early if already converted
 * - Get rid of timeouts in ve init
 * - Fix users getting notifications despite not having Special:NewMessages.
 * - Improve registration of Echo notifications
 * - Follow-up f7015eb5e4: add mw-content-{ltr,rtl} for all non-view actions
 * - Fix timestamp of notifications generated by lqt-import
 * - Only copy templates above first section into Flow's header
 * - Don't log exception when missing permissions, just ignore it
 * - Force white background for both VE and wikitext editors
 * - Added tooltip to watchlist star (T71811)
 * - Move function from Resources.php to Hooks.php
 * - Don't log exception when missing permissions, just ignore it
 * - Remove @noflip from h2.flow-board-header-title
 * - Make sure no other user-locators cause notifications during lqt-import
 * - Use default LightnCandy handlebars directive
 * - New compiled templates for Lightncandy version 21
 * - Remove i18n shim
 * - Watch and unwatch had the no-js experience
 * - Fix mobile getting no-JS experience
 * - Add OAuth support to Flow
 * - Hide Flow Search API until it's ready
 * - Simplify messages with &quot;250+ new topics&quot;
 * - Add user name suggestions from the API in the mention inspector
 * - Fix undo API
 * - Remove full height side rail
 * - Small layout tweaks for Flow right-rail
 * - Create pages instead of messing with MessageCache in SpamBlacklist tests
 * - Improve ApiFlowViewTopicList documentation
 * - Handle enabling/disabling buttons on right-click cut/paste.
 * - Fix notification email
 * - Remove navbar padding bottom
 * - Make sure left (board) and right (header) rail don't overlap
 * - Increase tooltip z-index
 * - Only show colored icons on hover
 * - Convert Flow icons to ooui icons
 * - Add 'ext.cite.style' required due to Cite/Parsoid changes
 * - Responsive side rail
 * - Summary should also check root (topic) permissions
 * - Replace deprecated $wgSpecialPageGroups
 * - Clarify what pages LQT conversion affects and how page prop works
 * - Expand maximum post length to be based on $wgMaxArticleSize
 * - Only enforce subpage rules on batch wikitext-&gt;Flow conversions
 * - Localize NS_TOPIC to 'Tema' for Catalan
 * - Fix inconsistent state issues and fatal on Special:EnableFlow
 * - Hack around action=reply not getting mw-content-{ltr,rtl}
 * - Add styling for variable and code
 * - Use PostCollection in thankAction to get the author gender
 * - There's more in a page than its title
 * - Fix permission checks for recentchanges
 * - Update API tests to no longer rely on write API render output
 * - Document that Parsoid timeout length is in seconds
 * - Remove unused variable, wgFlowConfig
 * - Add version to $wgExtensionCredits
 * - Allow customizing Flow AJAX timeout
 * - Make menu option look interactive by changing background color on hover
 * - Fix TopicHistoryStorage, which is used when no cache applies
 * - Revert &quot;Hygiene: Make box-sizing: border-box the default in the Flow world&quot;
 * - Fix VE toolbar styling to account for OOUI changes
 * - Make box-sizing: content-box workaround weaker
 * - Allow editor re-initialization
 * - Don't re-focus already-focused element &amp; apply collapsing styles with CSS
 * - Don't parse html-&gt;wikitext if we don't have to
 * - Remove this.$ remnant
 * - Move LQT template to top of archive page
 * - Run jshint and jscs on the qunit tests too
 * - Normalize jsduck syntax
 * - Adjust the flow-thank* messages to use recipient gender
 * - Allow board width to fill its container's width
 * - Fix metadataonly parameter and use it in JS
 * - Remove obsolete render parameter
 * - Add placeholder for input field in mention inspector
 * - Browser tests: scroll to top
 * - Remove error suppression for Handlebars compilation
 * - compileLightncandy: Don't mess with global variables
 * - Follow-up ef590319: don't float wikiglyphs inside of floated containers
 * - Recompile templates
 * - Remove unused data attr
 * - Allow delete link in menu
 * - Also require deletedtext to view deleted workflows
 * - Move tooltip to the right
 * - Expand new-topic form if it has preloaded content
 * - Get rid of hidden collapsible state
 * - Fix checks to see if board/workflow has been deleted
 * - Fix workflow_page_id when board is restored
 * - MentionTargetInputWidget: Minor cleanup
 * - Make &quot;uses wikitext&quot; link open in new tab
 * - Browser tests: fix javascript detection on load
 * - Fix browser tests
 * - Fix more than just workflow_page_id === 0
 * - Get rid of convoluted getContent failsafe
 * - build: Remove redundant global grunt-cli install
 * - Remove unused file flow-baseconvert.js
 * - Add logging so we know what filters are being hit
 * - Actually pass jscs
 * - Add jsduck support
 * - Fix jsduck warnings
 * - Only display API errors
 * - Fix check for in-flight API requests
 * - Mark new topic notifications read from both board and topic pages
 * - Move modules/vendor/* to vendor/modules/*
 * - Update jscs to 1.8.0
 * - Fix history permission check in RevisionFormatter
 * - Only replace queryMap if the prehandler returns it
 * - Transform queryMap right before submitting it
 * - Fix preHandler setup
 * - Set cleanup header revision after original to avoid collisions
 * - Make editor switching look nicer
 * - Don't show Parsoid HTML in textarea while loading VE
 * - Mark posts by autopatrolled users as patrolled
 * - Make sure allowCreation existence status is right, use Status
 * - Change ensureFlowRevision to use Status and not check summary
 * - Refactor flowEventsMixinApiRequestInteractiveHandler
 * - Get rid over queryMap overrides
 * - Make browser tests work with or without visual editor
 * - Fix onAbortMove documentation
 * - Keep source editor visible but disabled while VE loads
 * - Followup I70c50f321: Adjust margins for ltr/rtl in Flow boards
 * - Use clearInterval rather than clearTimeout to clear interval
 * - Remove ext.flow.parsoid.js
 * - Refactor switchEditor
 * - Do not add non-existent module
 * - Set min- and max-width for Flow board
 * - Explicitly define module position
 * - Polish the entry fields after VE integration
 * - Add flow-ui-focused class to wikitext editor when textarea has focus
 * - Correctly display Flow in RTL interface and content
 * - Hover on the post action menu instead of clicking on it
 * - Don't corrupt + to space in WikiLinkFixer
 * - Remove ability to abort with _abort
 * - Use new passCaptchaLimited instead of passCaptcha
 * - Use VE's fixBase utility so link previews point to the right place
 * - Fix fallback messages for unauthorized actions on a topic
 * - Fix up a[rel=mw:ExtLink] to have class=&quot;external&quot; and rel=&quot;nofollow&quot;
 * - Make FlowUpdateWorkflowPageId a run-once updatescript
 * - Create missing board pages
 * - Special:EnableFlow archives pre-existing talk page
 * - Fix ConvertLqtPageOnLocalWiki for recent core (API) and Flow changes
 * - Update for changes in OOjs UI (Ib40e3477)
 * - Replace &quot;header&quot; with &quot;description&quot;
 * - Pass scrubWikitext=true to Parsoid
 * - Bump Flow cache version to 4.7.
 * - &quot;Edited by username&quot; timeago should link to the most recent diff of that post
 * - Don't run editors on plaintext fields
 * - Get rid of metadataonly
 * - Set $wgCapitalLinkOverrides for NS_TOPIC
 * - Remove workaround code from when pageid could still be 0
 * - Don't load existing workflows for deleted boards, create new workflow instead
 * - Stop creating pages on load
 * - Improve user experience when using '@' sequence trigger for mentions
 * - Use the Workflow mapper in UrlGenerator
 * - Fetch Storage from ManagerGroup every time
 * - Add down indicator for text style toolgroup in VE
 * - Make the WT-&gt;VE switch button not constructive
 * - Remove unused editor switcher CSS
 * - Fix JS error in wikitext warning
 * - Remove platform instantiation hack
 * - Add some missing namespace use statements

FundraiserLandingPage

 * - i18n: Add missing documentation for messages

FundraisingTranslateWorkflow

 * - Add extension.json, empty old PHP entry point
 * - build: Configure banana-checker and jsonlint

GWToolset

 * - i18n: Add documentation for message &quot;gwtoolset-mapping-no-gwtoolset-title&quot;
 * - Do not retry UploadMediafileJob jobs with bad parameters
 * - Replace deprecated $wgSpecialPageGroups
 * - Check php max_file_size limit directly from PHP $_FILES

Gadgets

 * - Fix typo in Ib09944359
 * - Add Korean translation
 * - Add Orya translation
 * - chmod 644 for php and json files
 * - Add namespace names for Arabic
 * - Add Western Balochi namespaces
 * - Add german namespace aliases
 * - Load namespaces
 * - Add Mazandarani namespaces
 * - Add Northern Luri namespaces
 * - Add South Azerbaijani namespaces
 * - Add Central Kurdish namespaces
 * - Add Italian translation for namespaces
 * - Add Urdu translation for namespaces
 * - Add Polish translation for namespaces
 * - Vietnamese namespaces
 * - Add Persian translations
 * - Add Hebrew namespace translation
 * - Set up &quot;Gadget&quot; and &quot;Gadget definition&quot; namespaces
 * - Add support for 'messages' and 'hidden' gadgets
 * - Don't load legacy gadget scripts
 * - Remove deprecated API functions
 * - Remove ConfigRegistry entry for gadgets
 * - Move GadgetResourceLoaderModule class to separate file
 * - Add abstract GadgetRepo and MediaWikiGadgetsDefinition implementation
 * - Removed caching config variables and always enable caching
 * - Revert &quot;Add $wgGadgetsEnableLegacyGadgets to allow disabling of legacy gadgets&quot;
 * - Refactor Gadget construction process
 * - Add $wgGadgetsEnableLegacyGadgets to allow disabling of legacy gadgets
 * - Set 644 file permissions on .php files
 * - API: set 'legacyscripts' to whether a gadget includes non-ResourceLoader JS
 * - build: Configure banana-checker and jsonlint
 * - Update api module constructors
 * - Update GadgetResourceLoaderModule::getDependencies method signature
 * - Added a blind 10 second TTL to loadStructuredList for local caching
 * - Set manifest_version in extension.json
 * - Acknowledge that gadgets have their position explicitly defined
 * - Conversion to using WAN cache
 * - Replace deprecated $wgSpecialPageGroups
 * - Make the ObjectCache implementation used for Gadget def's configurable
 * - Remove unused i18n shim
 * - Add extension.json, empty PHP entry point

Gather

 * - Get rid of deprecated module warnings
 * - Fixed Metrics/LineLength RuboCop offense
 * - Fixed Style/AlignParameters RuboCop offense
 * - Fixed Style/HashSyntax RuboCop offense
 * - Fixed Style/IndentationWidth RuboCop offense
 * - Fixed Style/RegexpLiteral RuboCop offense
 * - Fixed Style/SpaceAfterColon RuboCop offense
 * - Fixed Style/SpaceAroundOperator RuboCop offense
 * - Fixed Style/SpaceInsideParens RuboCop offense
 * - Fixed Style/StringLiterals RuboCop offense
 * - Update dependency and fix browser tests
 * - Remove mobile.experiments in favor of mediawiki.experiments
 * - Fixed Style/TrailingBlankLines RuboCop offense
 * - RuboCop setup
 * - Don't log events during unit tests
 * - Register schemas using hooks not via globals
 * - Hygiene: Pass skin from initialisation script to things that need it
 * - QA: Add sleep step to workaround test flakiness
 * - build: Updating development dependencies
 * - Follow up change in MobileFrontend
 * - Hygiene: Gather shouldn't use getCurrentPage
 * - QA: Avoid flakiness in various test steps due to race conditions
 * - Add Persian special pages aliases
 * - QA: Check login succeeded
 * - Correctly identify LocalSettings.php as php
 * - QA: More integration tests on each commit
 * - Run Gather browser tests on various commits
 * - Fix template for collection item
 * - QA: Tweak tests to work with user_factory
 * - Unhide the 'Collections' menu item
 * - Remove useless &quot;targets&quot; parameter in module definitions
 * - Revert &quot;Extend the core TemplateParser&quot; and similar related workarounds
 * - Tweak versioning for jscs to avoid errors
 * - QA: Use the mobile-only host when testing beta
 * - Revert &quot;Avoid spamming mailing list by skipping&quot;
 * - Avoid undefined index error
 * - Avoid spamming mailing list by skipping
 * - Hygiene: Update module name usage
 * - Render collections via template
 * - QA: Fix menu browser test
 * - More padding to check icons in collection overlay
 * - QA: Add browser test for changing a collection name
 * - QA: All public collection steps should use a brand new collection
 * - [QA] Check for user's own lists in browser tests
 * - Regression: correctly position the .collection-confirmation-overlay
 * - Reload collection when exiting overlay after making changes.
 * - Make watchlist bold in first onboarding screen
 * - i18n: Add missing qqq code
 * - Advertise the collections feature
 * - Allow user to add to more than 50 collections from page
 * - Close tutorial when clicking in to search input
 * - i18n: Fix wording of Gather CTA tipsy
 * - i18n: Definition list in apihelp using wiki markup
 * - Add i18n linting
 * - &quot;Owner&quot; spelling in a message
 * - Fix some API doc problems
 * - Implement flagging backend
 * - Introduce tests for pagination
 * - Do not show hide button on hidden/private collections
 * - Fix tooltip for hide button
 * - Change &quot;userright&quot; to &quot;user right&quot;
 * - Add API help messages
 * - Add close icon to the collections content overlay
 * - QA: Add browser test for onboarding tutorial
 * - Update to new mediawiki selenium gem
 * - Fix broken pagination when JS is disabled
 * - Don't show collections link in stable
 * - Delay tutorial so it is more noticeable to the user
 * - Onboarding tutorial for first time gatherers
 * - Changes to collection edit interface
 * - QA: Disable onboarding code for all Gather tests
 * - Fix Gather:Special/all/recent pagination
 * - i18n: Use same title across all collections
 * - Fix query-continue in Gather
 * - Update dependency
 * - Ensure correct icon in used in edit collection overlay
 * - Tools: Make it possible to generate qunit coverage report
 * - Fix api call for recent/active collections
 * - Make collections link show on special pages
 * - Fix horizontals scroll on collections
 * - Make sure mode is always set to avoid php warnings
 * - Show correct label for the pagination button
 * - Render tabs to my collections and recent collections
 * - Add a wfWaitForSlaves call in the count update loop
 * - build: Updating development dependencies
 * - Fix collections list pagination
 * - On bad /explore/ urls render page not found
 * - Collections link for anon takes user to public view.
 * - Extend the core TemplateParser
 * - Correctly insert collections into the main menu
 * - Work around Mustache problems
 * - Pass skin to PageActionsOverlay.
 * - Revert &quot;Render tabs to my collections and active collections&quot;
 * - Revert &quot;Collections link for anon takes user to public view.&quot;
 * - Add recently edited collection
 * - Render tabs to my collections and active collections
 * - Hygiene: Add explore collections list page
 * - Collections link for anon takes user to public view.
 * - Add the public collection
 * - Encapsulate list item count updates in a transaction
 * - Fix create collection workflow
 * - Re-enable Gather on beta labs when experiment is not setup
 * - Delegate watchstar loading to Gather
 * - Hygiene: Separate watchstar from content overlay
 * - Gather: message enhancement.
 * - Fix ios zoom issue when selecting member for collection
 * - Fix Gather editor interface
 * - i18n: Add gender support to no public view
 * - Show related pages when editing 1 to 3 items collections
 * - Make the tests run in Jenkins
 * - The random collection
 * - Update MobilePersonalTools hook handler
 * - build: Add explicit dependency upon grunt-cli
 * - Hygiene: Refactor how we generate collections from api
 * - Don't load Gather on all pages
 * - Filter lists by item count
 * - Add (gli_gl_id, gli_namespace, gli_title) index
 * - QA: Fix create collection selector
 * - Track collection item counts
 * - Use mw-ui button with spinner for the create collection button
 * - Add sort &quot;namespace,title&quot; sort option for listpages
 * - Edit icon goes in title when description is empty.
 * - Fix headers on desktop when editing a collection
 * - Update mediawiki/codesniffer to 0.2.0 and fix issues
 * - Remove button with spinner to fix iOS tap not capturing
 * - QA: Support tag for temporarily skipping tests
 * - Fix pagination on moderation view
 * - Add UserMerge hooks for gather_list.gl_user
 * - Reflect upstream infrastructure change
 * - Set manifest_version in extension.json
 * - Ensure collection items are rendered correctly in rtl languages
 * - Fix warnings in Gather due to non-explicit position
 * - QA: Use beta for Gather tests, make rule more generic
 * - i18n: Reword message to remove &quot;click here&quot;
 * - Fix false input style for select field on Special:GatherEditFeed
 * - Add GENDER support in gather-collection-owner-text
 * - UX changes to the collection editing overlay
 * - Update collection information when created and edited.
 * - Fix floating border at the bottom of collections list column
 * - Use MobileFrontend toast module to show toasts on page reload
 * - QA: Fixes to browser tests
 * - Invert placeholder text on create collection input
 * - Make dependencies explicit
 * - Change search input placeholder on editing collection
 * - Add mediawiki.ui.checkbox module to style edit checkbox
 * - Empty search suggests searching instead of /no results/
 * - Adjustments to how we load ext.gather.menu.icon
 * - Get rid of MOBILEFRONTEND constant
 * - Go to main pane after selecting element on a search
 * - Fix duplicate 'new' tag and menu item CTA
 * - Fix confirmation message styling inside overlay
 * - QA: Fix failing browser tests
 * - Add extension.json, empty PHP entry point
 * - Updates to editor search panel styling and behaviour
 * - Don't auto-zoom on input box in add collection
 * - Improve spacing in the `add to collection` overlay.
 * - Improve star styles on phones
 * - Fix the create collection button
 * - Fix hidden collections view of Special:Gather/all/hidden
 * - Migrate Special:GatherLists code to Special:Gather
 * - Display a message for no search results
 * - Make dependencies explicit
 * - When creating a collection show CTA &amp;&amp; toasts after edited
 * - Fix exception if image passed to models is a boolean
 * - Use the CollectionsList model to generate Special:GatherLists
 * - Allow editing of title/description of hidden collections
 * - QA: Fix Gather edit test
 * - Fix delete overlay
 * - Ensure collection members can be removed
 * - Create collection button on Special:Gather
 * - QA: Fix watchstar selector
 * - Fix re-enable form after save failed
 * - Re-add future toast to show when page reloads after editing collection
 * - Only reload page after CollectionEditOverlay if page is special.
 * - Show loading screen while the collection editor loads
 * - i18n: Update i18n message to link to collection

GeoCrumbs

 * - build: Configure banana-checker and jsonlint

GeoData

 * - Remove use of no longer existing $wgUseDumbLinkUpdate variable
 * - Move updateIndexGranularity into maintenance subdirectory
 * - Remove ignored $wgAPIGeneratorModules
 * - Lowercase coordinate types to be slightly foolproof
 * - Update bug tracker links
 * - Elastica\Query::setFilter is deprecated.
 * - build: Configure banana-checker and jsonlint
 * - Avoid synecdoche in apihelp-query+geosearch-description

GettingStarted

 * - Remove !ie hacks
 * - Defer the saveSettings call in onMakeGlobalVariablesScript
 * - gitignore: Fix missing newline
 * - build: Configure banana-checker and jsonlint
 * - Explicitly define module position

GlobalBlocking

 * - Remove $1 parameter from 'globalblocking-block-expiryinvalid' message
 * - Migrate local block logging in GlobalBlocking to new system
 * - Remove use of deprecated wfRunHooks
 * - Make local blocks editownusertalk consistent with global blocks
 * - build: Configure banana-checker and jsonlint
 * - Add documentation to GlobalBlocking messages currently missing them
 * - Use FormSpecialPage in SpecialGlobalBlockStatus
 * - Fix settings for local block which comes with the gblock
 * - Remove i18n shim
 * - Replace deprecated $wgSpecialPageGroups
 * - Remove duplicate code in SpecialGlobalBlockList

GlobalCssJs

 * - Enhance message &quot;globalcssjs-custom-css-js&quot;
 * - Link to docs in MediaWiki:Globalcssjs-warning-js and MediaWiki:Globalcssjs-warning-css, per T110516
 * - Don't require $wgConf in order to generate correct URLs on a wiki farm
 * - build: Configure banana-checker and jsonlint
 * - s/wfRunHooks/Hooks::run/
 * - Set manifest_version in extension.json
 * - Explicitly define module position
 * - Empty PHP entry point
 * - tests: Don't use getDefinitionSummary as an API

GlobalUsage

 * - Add a text message above the form on Special:GlobalUsage
 * - Add extension.json, empty php entry point
 * - build: Configure banana-checker and jsonlint
 * - Remove i18n shim
 * - Give warning about false positives from case sensitive wikis
 * - Replace deprecated $wgSpecialPageGroups

GlobalUserPage

 * - Edit ambiguous word
 * - Remove use of deprecated wfRunHooks
 * - build: Run jsonlint too
 * - build: Updating development dependencies
 * - Set manifest_version in extension.json
 * - test: Automatically get list of i18n directories from extension.json
 * - Update extension.json, empty PHP entry point
 * - Make 'globaluserpage-central-editnotice' message less repetitive
 * - Explicitly define module position

GoogleNewsSitemap

 * - Remove use of deprecated wfRunHooks
 * - build: Configure banana-checker and jsonlint

Graph

 * - VisualEditor: Only draw focus box around canvas, instead of full width
 * - Remove CSS hacks
 * - Fixed tracking category incomplete commit
 * - Add CSSLint
 * - Update grunt-banana-checker
 * - Update JSCS and pass
 * - Add two tracking categories for pages with graphs
 * - build: Updating development dependencies
 * - VisualEditor: Replace jQuery node with HTMLElement
 * - VisualEditor: Override GeneratedContentNodes methods at a lower level
 * - VisualEditor: Remove ve.ui.BlockLabelWidget
 * - VisualEditor: Remove incorrect tagName property
 * - VisualEditor: Fix size of raw input after spec has been changed
 * - VisualEditor: Add graph icon
 * - VisualEditor: Always use LTR for JSON input
 * - Add features to TableWidget
 * - Edit a single graph data pipeline within VE
 * - Add custom TableWidget and RowWidget
 * - Revert &quot;Handle missing parser in onParserAfterParse&quot;
 * - Handle missing parser in onParserAfterParse
 * - Add ability to swap between bar, area and line charts within VE
 * - Added property removal support to spec update
 * - Improve fallback rendering logic
 * - Add basic editing of Vega graphs within VisualEditor
 * - Load ext.graph.visualEditor on mobile
 * - Render Vega specifications inside VisualEditor
 * - build: Configure jsonlint and banana-checker
 * - Set manifest_version in extension.json
 * - For now, disabled word clouds until Vega is fixed
 * - Bumped Vega, added d3.layout.cloud lib
 * - CI: add npm test, for Jenkins
 * - Allow semi-valid parsable JSON for graphs
 * - Added class=&quot;mw-wiki-graph-img&quot; to the graph &lt;img&gt;
 * - Option to always use Graphoid if possible
 * - Added missed &quot;GraphDataDomains&quot;: [] to configs
 * - Add extension.json, empty PHP entry point
 * - Start rendering graphs when the wiki content is ready
 * - Dependencies shouldn't go in the boilerplate
 * - Fix undefined error in Graph editor
 * - Bring JS code style in line with our current standards
 * - Graph URL blacklisting, security headers
 * - Added missing namespace for graphoid invocation

GuidedTour

 * - Make LESS compatible with oyejorge/less.php
 * - Delete cookie for current tour if isSinglePage, on onShow
 * - Add GuidedTourLauncher::launchTourByCookie for server-side launch
 * - Set license-name
 * - Convert extension registration for GuidedTour extension
 * - Ignore transitions if there is no active tour.
 * - build: Configure banana-checker and jsonlint

ImageMap

 * - build: Configure banana-checker and jsonlint
 * - Set manifest_version in extension.json
 * - Add extension.json, empty PHP entry point
 * - Fix $wgExtensionCredits index
 * - Remove i18n shim

ImageMetrics

 * - build: Updating development dependencies
 * - Remove CORS metrics
 * - build: Configure jsonlint, banana-checker, jscs
 * - build: Run jshint through &quot;grunt test&quot;
 * - build: Updating development dependencies
 * - Don't log null fallbackFullLoadingTime

InputBox

 * - Add option to use VE instead of WikitextEditor
 * - Set license-name to &quot;MIT-Licence&quot;
 * - Don't add a margin if no line break is added between input and button
 * - Use Html::hidden for hidden input fields
 * - Add space between input fields and buttons
 * - Add mobile target to styles module
 * - build: Configure banana-checker and jsonlint
 * - Set manifest_version in extension.json
 * - Re-apply a6a7dc02e5d
 * - Convert InputBox.php to extension.json for extension registration
 * - Explicitly define module position
 * - Add mobile target for inputbox styles

Insider

 * - build: Configure banana-checker and jsonlint

Interwiki

 * - Set license-name
 * - Add missing global $wgInterwikiViewOnly declaration
 * - Special:Interwiki: Remove &quot;View log&quot; link when $wgInterwikiViewOnly is not set to false
 * - chmod 644 Interwiki_body.php
 * - build: Configure banana-checker and jsonlint
 * - Set manifest_version in extension.json
 * - Replace deprecated $wgSpecialPageGroups
 * - Add extension.json, empty PHP entry point
 * - Remove i18n shim
 * - Move global functions into static class in separate file
 * - Use __DIR__, get rid of $dir
 * - Use InterWiki::invalidateCache instead of DIY

Josa

 * - Change author name
 * - build: Configure banana-checker and jsonlint
 * - Add missing parser tests
 * - Use === instead of ==
 * - Fix documentation and styles
 * - Set manifest_version in extension.json
 * - Comment out deprecated PHP entry point warning for now
 * - Add extension.json, empty PHP entry point
 * - Fix typo
 * - Add parser tests
 * - Fix some codes to fit the style guide
 * - Fix mistake on if condition.

JsonConfig

 * - Add message for the API user right
 * - build: Configure banana-checker and jsonlint

LandingCheck

 * - Replace deprecated $wgSpecialPageGroups
 * - build: Configure banana-checker and jsonlint

LdapAuthentication

 * - Remove use of deprecated wfRunHooks
 * - AIn connect, avoid ldap_connect in case of empty servers list
 * - Tighter check to confirm a variable is empty
 * - build: Configure banana-checker and jsonlint
 * - Remove i18n shim
 * - Trim leading blanks from servernames

LiquidThreads

 * - Use quickUserCan in showHeader to avoid master queries
 * - Remove new messages notice from watchlist
 * - Remove $wgPageProps
 * - Disable write actions when a page is not LQT
 * - Remove non-functional Echo integration
 * - Remove use of deprecated wfRunHooks
 * - Flag to disable Special:NewMessages
 * - When user can not post a new thread, let the non-AJAX path handle it
 * - Separate message for Summary field with 4 tildes
 * - Expose thread_signature in API
 * - Remove i18n shim
 * - Use __DIR__
 * - Replace deprecated $wgSpecialPageGroups
 * - More accurate documentation for use-liquid-threads

Listings

 * - Set manifest_version in extension.json
 * - Empty PHP entry point

LocalisationUpdate

 * - Add license name to main php file
 * - Set license-name
 * - build: Configure banana-checker and jsonlint
 * - Set manifest_version in extension.json
 * - Prepare for composer

MapSources

 * - build: Configure banana-checker and jsonlint

MassMessage

 * - Use formatversion=2 for API query in ext.MassMessage.special.js
 * - Add &quot;MassMessageWikiAliases&quot; configuration setting
 * - build: Upgrade jscs to 2.1.0
 * - Use &quot;TrackingCategories&quot; as an attribute in extension.json
 * - Remove deprecated API documentation
 * - Use wfGlobalCacheKey
 * - build: Updating development dependencies
 * - Use a wikilink to display local targets
 * - Add help link for &quot;Special:MassMessage&quot;
 * - build: Configure jshint, jsonlint, banana-checker, jscs through npm
 * - build: Updating development dependencies
 * - Update mediawiki/codesniffer to 0.2.0 and fix issues
 * - Set manifest_version in extension.json
 * - Update extension.json, empty PHP entry point
 * - Only check if the title is an interwiki if it is for the local site
 * - Explicitly define module position

Math

 * - Fixed Style/StringLiterals RuboCop offense
 * - Fixed Style/SpaceInsideHashLiteralBraces RuboCop offense
 * - Fixed Style/SpaceAroundOperators RuboCop offense
 * - Updated RuboCop to the latest version
 * - Upgrade browser tests to use mediawiki_selenium 1.x
 * - Add composer.json and php lint
 * - Fix old class name
 * - Remove redundant size property
 * - VisualEditor: Remove MathJax support
 * - Rename modules/VisualEditor to modules/ve-math
 * - build: Add csshint, jshint and jscs to math extension
 * - VisualEditor: Ignore id when getting hash object
 * - Add Persian special page alias
 * - Replace updatePreview with updateMwData
 * - Fix: Special page ShowMathImage should read the mode as string
 * - Remove use of deprecated wfRunHooks
 * - Fix: Set default MathStyle to inlineDisplaystyle
 * - Support for LaTeXML line break feature
 * - Remove double space in a message
 * - Add en.json credits
 * - Add full stop to a message for consistency with a similar message
 * - Convert spaces to tabs in en.json
 * - Fix: Set default MathStyle to inlineDisplaystyle
 * - Disable overwriting of the fallback image
 * - Add info about failed tests to MathStatus
 * - Use extension.json, empty PHP entry point
 * - Add release notes for version 3.0.0
 * - Pass arguments to ParserAfterParse by reference
 * - Fix: Undefined variable passed to hook
 * - Remove client-side MathJax support
 * - Remove useless debug functionality
 * - Fix: SVG images for LaTeXML were not cached
 * - Delete unused &lt;math-preference*&gt; i18n strings
 * - Fix perl script permissions and shebang
 * - build: Configure banana-checker and jsonlint
 * - Add required arguments to ParserAfterParse hook call
 * - Add mathtex as default to the LaTeXML options
 * - Remove i18n shim
 * - Replace deprecated $wgSpecialPageGroups
 * - Remove this.$ remnants
 * - Explicitly define module position
 * - Update Hook call

MobileApp

 * - Stop setting all image backgrounds to #fff in dark mode
 * - Fix edit pencil active state for RTL languages
 * - build: Configure banana-checker and jsonlint
 * - Use Material-ish edit pencil background
 * - Add &quot;clear: both&quot; to .wideImageOverride to protect image centering for widened images.
 * - Update styles for image captions
 * - Center edit pencil icon active state
 * - Fix width of collapsed infoboxes.
 * - Update Less files to accommodate updated image resizing approach
 * - Add active state to article edit pencil icons
 * - No longer explicitly refer to .less files from MobileFrontend.
 * - Make images larger and higher-resolution

MobileFrontend

 * - Fix module deprecation warning in WatchListGateway
 * - Hygiene: WatchlistApi -&gt; WatchlistGateway
 * - Do not apply max-width to notifications overlay
 * - Don't double load gallery css
 * - Get rid of deprecated module warnings
 * - Make Categories overlay work again
 * - Goodbye yellow brick alpha
 * - Hygiene: Cleanup cached page FiXMES
 * - Tweaking WikidataPageBanner compatibility
 * - Hygiene: NearbyApi and PhotoListApi should be gateways
 * - Tooling: No need to run `bundle install` to make documentation
 * - Rename modules in resources
 * - Hide the back button label
 * - Remove obsolete CSS rules and files
 * - Promote max-width styles from beta to stable
 * - Fix this/self confusion in callback in SearchApi
 * - Revert &quot;Don't show close icon when max-width applying&quot;
 * - Hygiene: jscs follow up
 * - Revert &quot;Revert &quot;Migrate from SchemaMobileWebEditing to SchemaEdit&quot;&quot;
 * - Fix ResourceLoader module dependency issues
 * - Hygiene: Fix a jscs issue
 * - Center align the last modified bar on the Main page
 * - Don't show close icon when max-width applying
 * - Browse tags, page secondary actions and last modified bar outside #bodyContent
 * - Fix toggling initialization code
 * - Remove SpecialMobileNotifications
 * - Simplify construction of qunit test module
 * - Don't pull in initialisation code.
 * - Restore resources/mobile.pagesummary.styles/noimage.png
 * - Push max-width work from beta to stable
 * - Remove history-link-loaded event and inline script wrapper
 * - Promote last-modified-bar beta work to stable
 * - Remove mobile.experiments as mediawiki.experiments is in core
 * - Tooling: Use checkParamExistence, upgrade to 2.1.0
 * - Revert &quot;Migrate from SchemaMobileWebEditing to SchemaEdit&quot;
 * - Temporarily kill hovercards until we can work out the behaviour
 * - Remove console.log statement from WatchListApi
 * - Log events using mw#track
 * - Migrate from SchemaMobileWebEditing to SchemaEdit
 * - Search input cutoff in nojs mode
 * - Distinguish input for non-js users
 * - Hide loginform and language links on the login page
 * - Defer User::saveSettings updates on watchlist view
 * - Be consistent in generation of last edited times
 * - Hygiene: Enforce requireObjectKeysOnNewLine
 * - Don't overwrite Schema property defaults when logging
 * - Message text enhancements
 * - Little message text clarifications.
 * - Fix EventLogging schema dependencies
 * - Remove import reference to missing file
 * - QA: Fix failing tests due to change to desktop login form
 * - build: Bump grunt-contrib-jshint from 0.11.2 to 0.11.3 to fix upstream issue
 * - Move commons category to beta
 * - Remove hard requirement of mobile.search.api in mobile.search
 * - QA: Run language browser tests per commit
 * - Make commons category non-dependent on infobox experiment
 * - QA: Run ui links tests per commit
 * - Use core login form
 * - minerva: Let background-color of last-modified-bar transition
 * - Let interested parties know whether the beta opt-in panel is shown
 * - Make edit link and watchstar accessible to ios voiceover
 * - Hygiene: SchemaMobileWebBrowse extends SchemaMobileWeb
 * - Separate Search Api code from search frontend modules
 * - Blacklist iOS8 for new Wikitext editor
 * - Adapt to Echo's new modules
 * - Hygiene: Provide utility function for generating a last modified message
 * - Allow to use custom displayTitle in search
 * - Use Firefox for browser @integration tests
 * - Only load gallery styles when needed
 * - Make the list of possible top headings configurable
 * - Extract some methods in SearchApi
 * - Hide languagelinks list on alpha/beta login page
 * - Use the new mediawiki.storage API
 * - Don't try to construct a Title object with anything other a string
 * - Have mobile.usermodule cache invalidate properly
 * - Register mobile.loggingSchemas with optional schema dependencies
 * - Fix font size of oojs-ui component
 * - Remove isBorderBox from editor overlay
 * - Bring back the last modified bar padding in beta
 * - Empty message on watchlist center aligned
 * - QA: Assert that diff page has fully loaded at end of click diff link step
 * - Rename quickLookup to Hovercards
 * - Simplify editor switcher to match VE implementation
 * - Return the redirect target with Fragment
 * - Remove the experimental header from alpha and beta
 * - Make mobile site module position bottom.
 * - QA: Assert login step has completely successfully before continuing
 * - Promote expand sections by default to beta
 * - Default to always remember password for Minerva login screen
 * - Don't force anonymous editing on in alpha
 * - jscs: Require variable declarations at top of file
 * - build: Setup banana test for i18n messages
 * - Don't register an invalid jscs rule
 * - Make tables visible
 * - Remove errorReport from MobileFrontend
 * - Hygiene: Whitespace cleanup
 * - Hygiene: Enforce dot notation
 * - build: Update jscs devDependency to 2.0.0
 * - Queue mobile head inline scripts with Resource Loader
 * - QUnit: Add tests for settings.js
 * - Fix ImageOverlayBeta for thumb count &lt; 2
 * - Another follow up to killing infoboxes
 * - Follow up &quot;Kill infobox feature&quot;
 * - Kill infobox feature
 * - Do not override login form in beta
 * - Diff should be centered in beta
 * - Follow up styling tweaks for captcha and sign up form
 * - Adjust styling of CAPTCHA in alpha
 * - Don't show toolbar, if not enough space available
 * - Follow up: Scrolled to pages that exist shouldn't show as red links
 * - Revert &quot;Don't hardcode script tags. Use RL makeInlineScript method&quot;
 * - Page actions should not be cut off on the right
 * - Toast should be border-box to be centered correctly
 * - Don't hardcode script tags. Use RL makeInlineScript method
 * - VisualEditor: Adjust how toolbar floating works
 * - Fix watchlist query continuation and rendering
 * - Fix content padding when toolbar changes height
 * - VisualEditor: Bring in overlay z-index hack from VE-MW
 * - Use Button to create buttons
 * - Rewrite fontchanger to live in mobile settings now
 * - Tweak the layout of the experiments code
 * - Make Minerva skin more consistent with Vector
 * - Add a new Wikitext editor with very basic formatting features
 * - Fix toolbar position in iOS
 * - No longer need to pass isIOS to VE target
 * - Remove widescreen restriction for VE mobile
 * - Remove title styling from heading.
 * - Use default order of footer elements
 * - Hygiene: Restore some skipped tests
 * - Move title into VE toolbar
 * - Remove unused toolbar config code
 * - Revert &quot;Don't register unloadable test modules&quot;
 * - Skip tests that have side effects
 * - Declare correct dependencies for pagelist
 * - Delete save process code in favour of VE's own save dialog
 * - Prevent a call to mw.loader.using
 * - Remove CodeMirror support
 * - Hygiene: Register ForeignApi tests.
 * - build: Update various devDependencies to be pinned to latest
 * - build: Remove 'grunt-svg2png' task which is unused
 * - VisualEditor: Create a MF target and move code into method overrides
 * - Hygiene: Temporarily skip infinite scroll test
 * - Don't register unloadable test modules
 * - Move ImageGalleryNew to stable (partially)
 * - Add @integrate tag to all the things that currently pass
 * - Fix search in pages feature in firefox
 * - Use OO.ui button for category overlay and fix saving spinner
 * - Implement a way in MobileContext::getMobileUrl to work with local URLs
 * - Make registered schemas reflect active schemas
 * - Post border box tweaks to pointer overlays
 * - Remove new page handling from beta
 * - Use placeholder message in VE
 * - Load all mobile license messages along with Skin.js
 * - Move more code to VE
 * - Use simplified toolbar for VE now that it handles back/save itself
 * - Rename mobileViewTarget to mobileArticleTarget
 * - QA: Upgrade MW-Selenium to 1.5 for video recording support
 * - Reduce the module build time
 * - Modify cache conditions for replacing the last-modified-bar
 * - Regression: Don't show button labels in Overlay
 * - Fix flakey search in pages feature
 * - Disable fixed headers on overlays in ios 8
 * - Rewrite wikidata description search test
 * - Make unit tests agnostic about whether a meta[viewport] tag is present
 * - Adjust how position-fixed works in light of new beta
 * - QA: Make notifications test compatible with user_factory
 * - Fix disable Images via Special:MobileOptions
 * - Stop running toggling tests in alpha environment
 * - Skin itself should not be border box
 * - Fix the position of the edit button in Safari
 * - Update LanguageOverlay test
 * - Hygiene: Don't pull in watchlist code in InfiniteScroll test
 * - Update Overlay test to be skin agnostic
 * - Package message up with the module that uses it.
 * - QA: Make a flakey test less flakey
 * - Fix mobile-frontend-page-edit-summary truncated text
 * - Prevent back button hiding on scroll in chrome
 * - Don't hook into desktop mode login page
 * - QA: Add barry environment
 * - Handle CAPTCHAs with different mime types different
 * - Always show a logo on Login/Create page
 * - Documentation: CategoryLookupInputWidget
 * - Fix displayTitle of CategoryLookupInputWidget
 * - Only apply indicator circle to first instance of main menu button
 * - Correct typo in tables stylesheet of minerva
 * - Add MobileFrontendLogo to alpha login/create page
 * - Hygiene: Adjust styling of main menu so browser tests do not fail
 * - QA: Allow more time for search test to pass
 * - Create PHP docs with Doxygen instead of phpdocumentor
 * - QA: Voting MW-Selenium integration tests
 * - Remove opacity from the close icon in media viewer
 * - Regression: bring back the padding around wikitext editor in mobile
 * - Fixing watchstar icon in beta
 * - Update browser test environment documentation
 * - Use the same close icon color for image overlay and reference drawer
 * - Promote alpha header to beta
 * - Correctly place the edit (pencil) icons for sections
 * - TalkSectionOverlay disallow empty fields
 * - Hide the search form in alpha when JS is disabled
 * - Show a missing search icon in alpha
 * - Fix missing message in Skin.js license generation
 * - Add pageactions check while rendering pre-content
 * - Add default sign in message to all login pages (stable/alpha)
 * - Display subpage breadcrumbs in minerva
 * - Use the same selector for infobox as for bannerImage
 * - Page actions and issues from beta to stable
 * - Fix minor regression in tablet pre-content gutter
 * - Regression: Remove .pre-content padding
 * - Alpha, beta: Limit the last modified bar background width
 * - Refactor the last modified bar styles
 * - PointerOverlay should be returned by advertiseNewFeature
 * - Remove MFFauxRequest
 * - Prepare for removal of MFFauxRequest
 * - Alpha, beta: Don't indent search in pages on tablets
 * - Tweaks to the blue dot courtesy of kaity
 * - Fix the positioning of overlay headings and content
 * - Switch out hamburger icon asset
 * - Remove function existing purely for caching reasons
 * - Provide infrastructure to allow showing a pointer when there's something new in the menu
 * - Show toast error icon
 * - Change label from cancel to dismiss for PointerOverlay
 * - Hygiene: Refactor main menu code to avoid two points of creation
 * - Hygiene: Refactor PageActionOverlay as PointerOverlay
 * - Search overlay: do not navigate away from the page when a watchstar is clicked
 * - Remove use of module group 'other' from special page modules
 * - Fix sitenotice config variable check
 * - Generate PHP docs with Composer
 * - Stop tests from choking in plain qunit mode
 * - Declare logging schema dependency for categories
 * - resources: Remove use of group 'other'
 * - Add a configuration option to use core login page in all modes
 * - Add detection for mobile domain request
 * - Regression: Remove last modified bar padding in stable
 * - Add feedback link to search results
 * - Promote references drawer beta to stable
 * - Fix Undefined variable: errorText
 * - Fix variable name typo
 * - Removing banner should trigger a redraw
 * - Alpha, Beta: Show wikidata descriptions in search results
 * - Hygiene: Simplify main menu button selectors
 * - Introduce a variant image module with a gray close icon
 * - QA: Add unit tests for TalkSectionOverlay
 * - Promote 'skins.minerva.alpha.images' files to beta
 * - Remove unnecessary padding
 * - Remove a redundant selector
 * - Add thresholds for QUnit coverage to ensure we don't get lazy
 * - Bring back content max-width in stable
 * - Float thanks link to right
 * - Revert &quot;QA: Skip test whilst exception occurring&quot;
 * - Apply revision history styles in stable
 * - Revert &quot;Never apply border-box to 'body' (i.e. for a 'Skin')&quot;
 * - Make it possible to customize tutorial background color
 * - build: Remove unused packages 'jshint' and 'jscs'
 * - QA: Fix failing smoke test for watchlist feature
 * - build: Updating development dependencies
 * - QA: Skip test whilst exception occuring
 * - build: Use jsduck native
 * - build: Implement 'npm run doc' entry point
 * - Correctly close SearchOverlay when the close button is clicked
 * - build: Move .jscsrctest.js to tests/
 * - Untangle external libraries into their own subtree
 * - build: Remove references to non-existent &quot;javascripts/&quot; directory
 * - build: Remove redundant 'mkdir:all' task
 * - build: Remove 'clean' task
 * - build: Remove 'checkInstallPath' task
 * - Remove duplicate x button in search bar on Microsoft browsers
 * - Correct icon sizes in left menu
 * - Hygiene: Update how browser tests work
 * - Generalise the desktop max width css
 * - Upgrade mediawiki codesniffer to 0.2.0
 * - Inherit UsercreateTemplate for User{login|create} templates to fix T102775
 * - Hygiene: Tie banner image max width to less variable
 * - Fix Notifications bell in Alpha header
 * - Render edit summaries on Special:MobileDiff
 * - Avoid undefined indices warning when revision hidden
 * - Don't mess with the cache
 * - Move mobile image viewer tobeta
 * - Never apply border-box to 'body' (i.e. for a 'Skin')
 * - Fix VE toolbar styles
 * - Vertically align the floated edit icon inside H2
 * - Revert &quot;Hygiene: Generate content area via mustache template&quot;
 * - Remove the notifications button properly
 * - Show preferred/most used languages at top of language overlay
 * - Hygiene: Generate content area via mustache template
 * - Revert &quot;QA: Enable test on Chrome&quot;
 * - Size the Special:Nearby refresh icon correctly
 * - Revert I59122b568cd353ca5c3aba0a28522effb15cfab4
 * - Fix flash of unstyled title on Special pages with pagelists/page-summaries
 * - Hygiene: Use Config object instead of globals
 * - Show a better error message, when the user can't edit a page due to the false group
 * - Don't show BetaOptinPanel on main page
 * - Add mw-content-&lt;dir&gt; class to content area
 * - QA: Fix step definitions for new talk scenarios
 * - QA: Enable test on Chrome
 * - Remove menu code in SkinMinerva that is no longer needed
 * - Fix black bar in header on older devices
 * - Promote TalkOverlay to stable
 * - QA: Fix section toggling scenarios
 * - QA: Upgrade to mediawiki_selenium 1.3.0
 * - Make sure header top border isn't visible
 * - Hygiene: Only use skin module in init.js
 * - Hygiene: Remove nonsense tests array key
 * - Use the correct inner variable name
 * - Hack around Mustache/Lightncandy loop rendering issue to show browse tags
 * - Fix the last modified bar style regression on the home page
 * - Show wikidata description at top of beta page.
 * - Hygiene: Make PageList take an array of pages
 * - Hygiene: Update main menu code to get rid of legacy cruft
 * - Hygiene: Use getter to get main menu and header html
 * - Hygiene: Adjust chrome header generation for templating
 * - Correctly add alternate and canocial links
 * - Hygiene: Remove getLanguages and getLanguageVariant wrappers
 * - Add basic support for patrolling on mobile
 * - Moving mobile browse experiment to stable (from beta)
 * - QA: Refactor flaky diff test to use API for initial state
 * - Revert &quot;Hygiene: Remove getLanguages and getLanguageVariant wrappers&quot;
 * - Hide JS-only main menu links when JavaScript is off
 * - Hygiene: Prepare renderContent function for templates
 * - Fixing formatting of buttons in main menu with Javascript off
 * - QA: Fix flaky notifications step by waiting on resource ready state
 * - Hygiene: Remove getLanguages and getLanguageVariant wrappers
 * - Hygiene: Generate banners in stable via templates
 * - Hygiene: Remove main menu template data wrappers
 * - Allow view to be the template
 * - Hygiene: Use invert to generate light coloured close icon
 * - Fix oojs ui icon naming conflict
 * - Fix composer phpcs test
 * - QA: Adjustments to make tests pass
 * - Load message box styles only when needed
 * - Client side code should use message boxes rather than alert
 * - QA: Upgrade mediawiki_selenium for fix to SauceJobs reporting
 * - Move Category button to beta
 * - Hygiene: Icons should support hrefs
 * - Sandbox alpha and beta styles from stable
 * - Message box standardisation (step 1)
 * - Hygiene: Rename resources folders to reflect modules
 * - Alpha, Beta: Center align the contents of Special:History
 * - QA: @skip VisualEditor tests
 * - QA: Make opt in to beta step quicker
 * - QA: Increase timeout for toast notification check
 * - QA: Mark all editing tests with @edit tag
 * - QA: Remove dead tests
 * - QA: Temporarily skip basic site scenarios
 * - QA: Fix page actions receive notification scenario
 * - QA: Fix broken redirects tests
 * - Correctly align the heading edit icon
 * - Fix SpecialMobileDiffTest#testNames test
 * - Fix the last modified bar regression for cached pages
 * - QA: history link now inside #mw-mf-last-modified
 * - QA: Support tag for temporarily skipping tests
 * - Kill 'Read in another project' in alpha
 * - Correctly determine if a license message should be printed or not
 * - Disable broken test &quot;SpecialMobileDiffTest::testNames&quot;
 * - Title::__construct takes no arguments
 * - ApiMobileView: Use a boolean for some properties
 * - Tooling: Run jsduck against every patch
 * - Fix Schema#samplingRate documentation
 * - Generalize the Schema sampling code
 * - Load main page styles only on main page
 * - Move special page styles to module only loaded on special pages
 * - Remove the phplint.sh dev script
 * - i18n: Fix category message texts.
 * - ForeignApi: Allow posting for anonymous users
 * - Fix Style-position warnings
 * - Hygiene: Move searchForm into includes folder
 * - Icons in beta should be loaded via JavaScript
 * - Fix the template location
 * - Don't load some of the default skin css
 * - Show a CtaDrawer when the user clicks a red link
 * - Explicitly define module position
 * - Move oojs ui declaration code to top of javascript file
 * - Hygiene: Documentation fix ups
 * - Explicitly set position on various RL modules
 * - Hygiene: Update Gruntfile, kill javascripts README
 * - Hygiene: Move javascripts/specials directory to resources
 * - Hygiene: Remove style guide generation
 * - Hygiene: Move mobileoptions.js and templates into resources
 * - Hygiene: Move templates into folder where they are used from
 * - Hygiene: Clear the root folders
 * - Hygiene: Cleanup special page styles
 * - Show article snippets for Browse article
 * - Use the power of alphabet to ensure reset file loads first.
 * - Separate reset stylesheet from chrome styles
 * - Re-enable fontchanger in alpha
 * - Hygiene: Fontchanger-&gt;resources folder
 * - Hygiene: Modules =&gt; resources folder
 * - Hygiene: Notifications styling =&gt; resources folder
 * - Hygiene: Move mobile.search to resources folder
 * - Hygiene: Allow more rubocop comments
 * - Don't try to initialise watchstar on main page
 * - Fix icons in the search overlay
 * - Fix Infobox dates
 * - Don't try to access a non-existing key in an array
 * - Apply padding max width to container not header
 * - Have link to switch back to desktop view be protocol-relative
 * - Remove deprecated options being passed in preRender and postRender
 * - Alpha, Beta: Center-align the last-modified bar on tablets
 * - Enable experiments for anons
 * - Hygiene: quick lookup -&gt; resources
 * - Make the banner image clickable
 * - Hygiene: Change module name so it's easier to locate to things outside MobileFrontend
 * - Hygiene: Merge all stable initialisation scripts into one single file
 * - Hygiene: Move mobile.issues files to resources
 * - Hygiene: Move toggle code to resources folder
 * - Hygiene: error report modules -&gt; resources
 * - Hygiene: mobile.contentOverlays =&gt; resources
 * - Hygiene: Move external files to resources folder
 * - Hygiene: Move reference code to resources folder
 * - Alpha, Beta: Make banners center-aligned
 * - Alpha, Beta: Make overlays center-aligned
 * - Alpha, Beta: Make Special:Watchlist and Special:Nearby contents center-aligned
 * - Alpha, Beta: Make the header center-aligned on tablet
 * - Remove an unneeded use of SITENAME
 * - Deal with undefined wgMFMenuData
 * - Add support for future toasts
 * - Prevent navigating back on QUnit tests
 * - Support for cached menu data in HTML
 * - Hygiene: Move notifications code to resources/
 * - Use mediawiki.confirmCloseWindow
 * - Fix &quot;Create account password mismatch message&quot; test
 * - Simplify CSS animations feature detection
 * - Replace deprecated $wgSpecialPageGroups
 * - Add login and signup urls to the editor overlay for anons
 * - Hygiene: Remove classes that are no longer cached
 * - Browse: output articles in designated order
 * - Remove deprecated RL modules
 * - Remove uploads
 * - Hygiene: Reorganise mobile.head modules
 * - Hygiene: More reorganisation of folders
 * - Hygiene: Move editor to resources
 * - Clarify scope of action-mf-uploadbutton
 * - Hygiene: Address all cache related FIXMEs
 * - Hygiene: Remove dead code in editor init.js.
 * - Load icons only needed in JS via JS
 * - Don't show beta panel in special page
 * - TWN: Fix mobile-frontend-editor-previewing-page truncated text
 * - Update WatchListApi API query continuation
 * - Load MobileDiff icons on the special page
 * - Request &quot;small&quot; images in PhotoListApi#getQuery
 * - Update PhotoListApi API query continuation
 * - Load main menu styles via JS
 * - Hygiene: Move main menu icons to the main menu module
 * - Hygiene: Remove unused stub class
 * - Show the logout link
 * - Only load inputs-box styles on login page
 * - Hygiene: Move site-specific configs to Site.php and improve documentation
 * - Hygiene: Beta scripts/styles -&gt; resources
 * - Only load the icons needed for the main chrome in head
 * - Make Skin work correctly when run from the head of the document
 * - Add missing image
 * - Hygiene: Introduce hooks on user dashboard page
 * - Update CSS to accomodate latest collections
 * - Hygiene: Stop logging in watchstar tests
 * - Hygiene: Make WatchListApi tests synchronous
 * - Hygiene: Generate user dashboard via server side template
 * - Disable router tests until proper fix
 * - Use formatversion=2 where it fixes errors we manually work around
 * - Adding mobile.settings as dependency for mobile.startup
 * - Remove unused less/images/close-button-beta.png
 * - Style mw.notify in the same way as toasts
 * - Correctly extract sections from headings
 * - Fix Notice: Undefined index: title error
 * - Fixing broken browser tests for mobile
 * - Move noimage.svg to the correct folder
 * - Implement Schema:MobileWebBrowse logging
 * - Generate Gather lists from static Browse lists
 * - Hygiene: Stop using mw-ui-button without abstraction
 * - Remove beta no images correction
 * - Don't load mobile.editor.common on every page load
 * - Fix 'module not found: toast' error in alpha
 * - Alpha: Show the main menu without a page reload when JavaScript is enabled
 * - Hygiene: Move Nearby code to resources/
 * - Browse Design review
 * - Don't show toast on startup
 * - Temporarily disable MobileWebSearch logging
 * - Sample MobileWebSearch event logging
 * - Lower sampling rate
 * - Re-enable images for our users.
 * - Restrict default styling to panels in #content area
 * - Don't disable images whilst opting into beta
 * - Hygiene: Move categories code into resources folder
 * - Hygiene: Watchstar and watchlist -&gt; resources folder
 * - Hygiene: Remove config rules from jscs where in preset
 * - Hygiene: Reintroduce spacing constraint
 * - Generate menu HTML via JavaScript.
 * - Render main menu via a server side template
 * - Allow ios users to close the main menu
 * - Hygiene: Move logging schemas into resources
 * - Allow View to enhance existing a server side rendered view

MoodBar

 * - Remove i18n shim
 * - Replace deprecated 'jquery.mwExtension' by 'mediawiki.RegExp'
 * - Moodbar: message clarified.
 * - Explicitly define module position

MultimediaViewer

 * - Fix IE9 CSS hack
 * - Remove CSS readiness workaround
 * - Improve Personality Rights restriction icon
 * - Add missing dependency on 'mediawiki.ui.button'
 * - Use wikipage.content hook for updating thumbnail list
 * - Work even when cookies are disabled
 * - Re-add event listeners to images after a finished VE edit
 * - Add most common non-bucket size to statsv performance tracking
 * - Set test assertions to new date format
 * - Track image load time with statsv
 * - Moar restriction icons!
 * - Revert no-longer-needed fix for MS Edge browser
 * - Reduce number of RL modules in MultimediaViewer
 * - Replace webkitMovementX with movementX
 * - Workaround apparent bug in Edge's history.pushState
 * - Remove i18n shim
 * - build: Configure banana-checker and jsonlint
 * - Fix clipping of text when metadata panel is closed
 * - Remove the 640 bucket
 * - Avoid not caching meta=filerepoinfo calls for logged in users
 * - mmv.mixins.less: Remove '-ms-linear-gradient'
 * - Fix two failing QUnit tests

MwEmbedSupport

 * - Fix for fullscreen video in IE 11
 * - Remove i18n shim

NavigationTiming

 * - Measure non-compliant Navigation Timing browsers
 * - Set mediaWikiLoadEnd directly in resourceloader.loadEnd
 * - Small clean-ups
 * - Ensure timings are reported after the page has loaded
 * - Revert &quot;Fetch missing Navigation Timing metrics and mwLoadEnd.&quot;
 * - Revert &quot;Fetch missing Navigation Timing metrics and mwLoadEnd.&quot;
 * - build: Updating development dependencies
 * - Fetch missing Navigation Timing metrics and mwLoadEnd.
 * - build: Enforce jshint and jscs test
 * - Add domLoading property
 * - build: Configure banana-checker and jsonlint
 * - Record region when available
 * - Bump SaveTiming SCID to 12236257

NewUserMessage

 * - build: Configure banana-checker and jsonlint

Nuke

 * - Set license-name
 * - build: Configure banana-checker and jsonlint
 * - Set manifest_version in extension.json
 * - Replace deprecated $wgSpecialPageGroups
 * - Add extension.json, empty PHP entry point
 * - Remove i18n shim

OAI

 * - Supress DBPerformance log entries from OAI special page
 * - Remove use of deprecated wfRunHooks
 * - build: Configure banana-checker and jsonlint
 * - fix up w/s

OATHAuth

 * - Replace deprecated $wgSpecialPageGroups
 * - build: Configure banana-checker and jsonlint
 * - Make authentication window leniency configurable
 * - Cache OATH tokens to avoid replay

OAuth

 * - Update OAuth.sql
 * - Remove use of deprecated wfRunHooks
 * - Conversion to using getMainStashInstance
 * - Prevent canonical redirect when OAuth is in use
 * - Fix tab order of buttons
 * - Small improvements to migration script
 * - Avoid IDE warning about @throw docs
 * - Remove unblockself right
 * - build: Configure banana-checker and jsonlint
 * - Add dir='ltr' for apps and versions
 * - Apply coding conventions for JavaScript
 * - Add developer agreement
 * - Added $data_store var doc
 * - Fix documentation and error message for custom callbacks for OAuth
 * - Replace deprecated $wgSpecialPageGroups
 * - A few small i18n string fixes
 * - Use skin-wise privacy link method
 * - Clarify messages, de-emphasize privacy policy
 * - Removed mwoauthmanageconsumers-viewing message
 * - Explicitly define module position
 * - Removed hard coded punctuations from Special:oauthlistconsumers

OpenStackManager

 * - Revert &quot;Fix logic to refresh the service catalog.&quot;
 * - Fix logic to refresh the service catalog.
 * - Don't cache the service catalog for nearly as long.
 * - Use EchoEvent::getExtraParam
 * - Remove use of deprecated wfRunHooks
 * - Revert &quot;Revert &quot;Do not make an automatic shell request for all new accounts&quot;&quot;
 * - Revert &quot;Revert &quot;Automatically add to shell group when adding to a project&quot;&quot;
 * - Revert &quot;Automatically add to shell group when adding to a project&quot;
 * - Revert &quot;Do not make an automatic shell request for all new accounts&quot;
 * - Do not make an automatic shell request for all new accounts
 * - Use correct hooks for bastion project membership
 * - Replace deprecated $wgSpecialPageGroups
 * - Automatically add to shell group when adding to a project
 * - Remove ldap host-entry creation and deletion from OSM.
 * - Use fqdn instead of ecid for ldap host dn
 * - Refer to $user the correct way
 * - Introduce 'editallhiera' permission
 * - Get rid of 'puppet status' column in NovaInstance
 * - Remove two maintenance scripts.
 * - Remove code to specify sudoer host.
 * - Explicitly define module position
 * - Trim SSH key input before processing

PageImages

 * - build: Configure banana-checker and jsonlint

PageTriage

 * - Fix unsanitized message
 * - Defer &quot;lastuse&quot; preference updates
 * - build: Use npm for jshint, jscs, jsonlint, csslint and banana; composer
 * - Performance tweaks and fixes to onNewRevisionFromEditComplete
 * - Performance tweaks to onArticleSaveComplete
 * - Update ResourceLoaderSchemaModule::getDependencies method signature
 * - Replace deprecated $wgSpecialPageGroups
 * - Adding '@license MIT License' to file header for PageTriage.php
 * - Conversion to using WAN cache
 * - API: Completely set backwards-compatibility boolean metadata
 * - API: Set backwards-compatibility boolean metadata

PagedTiffHandler

 * - Remove use of deprecated wfRunHooks
 * - build: Configure banana-checker and jsonlint

ParserFunctions

 * - Set license-name
 * - build: Configure banana-checker and jsonlint
 * - Set manifest_version in extension.json
 * - Add extension.json, empty PHP entry point
 * - Move hooks into static class
 * - Remove i18n shim

ParsoidBatchAPI

 * Newly deployed extension

PdfHandler

 * - build: Configure banana-checker and jsonlint
 * - Set manifest_version in extension.json
 * - Update for XMP logging changes
 * - Add extension.json, empty PHP entry point
 * - Remove i18n shim

Petition

 * - Fix for American English spelling
 * - build: Updating development dependencies
 * - Follow-up: I11eb8292ca9fce18add93167a53db314d3bf8df5
 * - Use jshint in npm
 * - Update i18n messages and files
 * - Convert spaces to tabs in i18n files
 * - build: Configure banana-checker and jsonlint

Poem

 * - build: Configure banana-checker and jsonlint
 * - Set manifest_version in extension.json
 * - Add extension.json, empty PHP entry point

PoolCounter

 * - Add support for connect_timeout
 * - build: Configure banana-checker and jsonlint

Popups

 * - Hi-DPI/Retina support for hovercard images
 * - Add jscs and jshint tasks to the Gruntfile
 * - Remove stray &quot;)&quot; from the &quot;Enable previews&quot; link
 * - Use pg.fn.disablePopups to detect and stop NavigationPopups
 * - Setup jsduck to run on 'npm run doc'
 * - Move all images to resources/images
 * - renderer.article: Increase exsentences to 5 in the API call
 * - Add maxage, s-maxage and uselang parameters in API call
 * - Remove i18n shim
 * - Add extension.json, empty php entry point
 * - API query improvements
 * - Use actual booleans in API request
 * - Replace 'jquery.mwExtension' by 'mediawiki.RegExp'
 * - build: Configure banana-checker and jsonlint

ProofreadPage

 * - Improves the range checking of &lt;page&gt; tag
 * - Remove i18n shim
 * - Adds Page: pages scan image to imagelinks
 * - Makes api prop=proofread pass context to its subrequest
 * - Fix style issues in Special:IndexPages
 * - Adds a textual alternative to index quality displays
 * - Replace deprecated $wgSpecialPageGroups
 * - Explicitly define module position

Quiz

 * - Remove use of deprecated wfRunHooks
 * - build: Configure banana-checker and jsonlint

RSS

 * - build: Configure banana-checker and jsonlint
 * - Don't rely on strip marker uniqueness
 * - Extension:RSS make manual reference in message a link.

RandomRootPage

 * - build: Configure banana-checker and jsonlint
 * - Set manifest_version in extension.json
 * - Remove unneeded $wgSpecialPageGroups

RelatedSites

 * - build: Configure banana-checker and jsonlint

Renameuser

 * - build: Configure banana-checker and jsonlint
 * - Set manifest_version in extension.json
 * - allow the new username to be populated by subpage
 * - Replace deprecated $wgSpecialPageGroups
 * - Removed unused $wgMemc
 * - Avoid DIY cache update that violates SoC
 * - Remove deprecated SpecialRenameuser.php entry point
 * - Add extension.json, empty out PHP entry point
 * - Remove i18n shim
 * - Remove global 'RENAMEUSER_CONTRIBJOB' constant

RestBaseUpdateJobs

 * - Lower maximum job age to 30 days
 * - Drop jobs with a rootJobTimestamp older than 60 days
 * - Signal page deletion to restbase.
 * - Explicitly disallow retries of RestbaseUpdateJobs
 * - build: Configure banana-checker and jsonlint
 * - Use lazyPush and avoid now-redundant deduplicateRootJob call
 * - Push both jobs at once instead of via two trips
 * - Try to make the extension description less cryptic

SandboxLink

 * - build: Configure banana-checker and jsonlint
 * - Add author to i18n/en.json
 * - build: Updating development dependencies
 * - Update mediawiki/codesniffer to 0.2.0

Score

 * - Add attribute-setting support to score inspector
 * - Extend LiveExtensionInspector node for score nodes
 * - build: Configure banana-checker and jsonlint

Scribunto

 * - Localize Module and Module_talk namespaces for Armenian wikis
 * - Add mw-scribunto-console placeholder to view source page
 * - Update namespace for gom-deva
 * - Fix-up for I32bad5fd9
 * - Cache Lua code files in APC
 * - Don't override other content added to the edit page
 * - Prevent leaking title fragments across invokes
 * - Re-restrict the Scribunto content handler to NS_MODULE
 * - Check content model instead of title
 * - Add Module namespace translation for Albanian (sq)
 * - Add namespace aliases for South Azerbaijani (azb)
 * - Fix accidental global in mw.uri.parseQueryString
 * - Display backtraces in the Scribunto console
 * - Fix some PHPCS issues
 * - Add Module/Module_talk ns translations for or
 * - Add Module/Module_talk namespace translations for Gujarati
 * - Add Module/Module_talk namespace translations for Marathi
 * - Mark metatables from mw.loadData
 * - Add Module/Module_talk namespace translations for Telugu and Kannada
 * - Replace deprecated wfRunHooks by Hooks::run
 * - lint: 'if(' =&gt; 'if ('
 * - build: Configure banana-checker and jsonlint
 * - Allow nil in mw.text.jsonEncode
 * - Add Brad Jorsch (Anomie) to extension credits
 * - Fix unit test for core change I31d4556b
 * - Fix race condition in SIGXCPU handling
 * - Add namespace aliases for gom-deva

SearchExtraNS

 * - build: Configure banana-checker and jsonlint
 * - Convert to extension registration

SecurePoll

 * - Use context's $out instead of undefined $wgOut
 * - purgePrivateVoteData: Don't cronspam if table isn't there
 * - Translate namespace name in MediaWiki:Securepoll-ns-readonly
 * - T99768: Render wikicode in custom error messages, display multiple errors
 * - Remove use of deprecated wfRunHooks
 * - Remove unused talliers.
 * - Rename &quot;parent&quot;, SecurePoll_BasePage, SecurePoll_Page to be more descriptive
 * - Remove deprecated calls to wfMsg and updated SecurePoll special pages
 * - Refactor tooltip patch that removes &lt;p&gt; tags
 * - Remove &lt;p&gt;&lt;/p&gt; wrapping around label that shows in tooltip
 * - [SecurePoll] Replace deprecated sajax call with API module
 * - Add bv2015/doSpam.php
 * - populateEditCount: Don't assume type of COUNT(*) will be int
 * - Fixup script for bv2015 incorrect date range
 * - Follow-up for I422d390c: correct method name
 * - Central list feature and BV 2015 list script
 * - Edit count for 2015 elections
 * - Limit edit reason sections to 250 characters

SemanticForms

 * - Version 3.4
 * - Added check for null $title to getDefaultForm
 * - possible values for Cargo fields should not include null values
 * - Changed dummy title used for Special:RunQuery to just be &quot;Special:RunQuery&quot;
 * - Updated README file
 * - Fix undefined variable property_name
 * - Changed auto page creation to use #formredlink (special prop deprecated)
 * - Superficial fixes to comments and spacing
 * - Show normal edit page on hook error raised by an extension
 * - Add plural support to two system messages
 * - bug fix for mapping explicit value list
 * - Fix for e06bc28	to get tree input displaying correctly
 * - added mapping property and mapping cargo table/field
 * - Added needed 'position' param for ext.semanticforms.wikieditor
 * - Temporary disabling of wfLoadExtension, due to global vars issue
 * - Added handling for wfLoadExtension, new in MW 1.25
 * - Fixed delayed initializations to only happen if SMW is installed
 * - Simplified extension type
 * - Improved parsing of #cargo_store calls in templates
 * - Replaced deprecated wfRunHooks with Hooks::run
 * - Removed $wgPageProps - unused since MW 1.17
 * - Changed getWordForYesOrNo to use messages from MW, not SMW
 * - Fixed longtime bug in setting aggregation label
 * - Revert of 4fe0d19 - this is better fixed in External Data
 * - Fixed handling for &quot;values from external data&quot; when XPath used
 * - Version 3.3.2
 * - Added fix for ID value in &quot;tree&quot; input
 * - Another improvement to string replacement for multi-inst. templates
 * - Made preg_replace search &quot;non-greedy&quot;
 * - Version 3.3.1
 * - Fixes for Cargo input type handling
 * - Fixes for Cargo registration of form inputs
 * - Spacing fixes
 * - Added escaping of many i18n messages
 * - Simplified and standardized getPageHeader calls
 * - Disabled &quot;select all/none&quot; for checkboxes in multi-instance templates
 * - More replacement of hardcoded HTML
 * - Fix so SFUtils::getCategoriesForPage works more often
 * - Another replacement of hardcoded HTML
 * - Fixed handling of multi-instance templates - fix for 5ef348d
 * - Changed more hardcoded HTML to use the Html class
 * - Replace deprecated $wgSpecialPageGroups
 * - Set context title when editing other pages
 * - Version 3.3
 * - Added more contributors to README file
 * - Cosmetic changes
 * - Fixed &quot;show on select&quot; for multiple-instance templates
 * - &quot;values=&quot; param now gets parsed
 * - Added &quot;existing page link text&quot; param for #formredlink
 * - Got autocomplete for #forminput working again - fix for a75d58a
 * - Add .jshintignore for libs/
 * - Made Special:FormEdit unlisted in Special:SpecialPages
 * - Removed numbered params option for #formlink and related functions
 * - Another fix for Cargo 0.8
 * - Stop using StripState
 * - Unbreak tests
 * - Unbreak tests by adding missing entries to $wgAutoloadClasses
 * - Changed tabbing to fit with other JSON files
 * - Added $wgMaxUploadSize to variables passed to upload window
 * - On second thought, make $sfgLinkAllRedLinksToForms false by default
 * - Fixed handling for Cargo 0.8
 * - SF now (by default) links all red-links to a &quot;form chooser&quot; interface
 * - Fixed calling of MW messages that now include URLs
 * - Fixed very old bug with &quot;autocomplete on property&quot;
 * - Yet another small fix for 5fbbd05
 * - Another small fix for 5fbbd05
 * - Some fixes (mostly for Cargo handling) for bfbe580
 * - Fix for ad8d5c3 - fixed querying of default forms
 * - Fix for SMW querying of page values with non-main NS
 * - Fixes for automatic template creation with Cargo

SemanticResultFormats

 * - Add wgMessagesDirs for WMF usage in LocalisationUpdate (noop for older MW)

ShortUrl

 * - Avoid exceptions on encodeTitle INSERT races
 * - Make README reflect reality of LICENSEs
 * - Set manifest_version in extension.json
 * - Replace deprecated $wgSpecialPageGroups

SiteMatrix

 * - Get language names via core functions
 * - Add sitename to special wikis
 * - Fix loading of canonical url and site name settings
 * - build: Configure banana-checker and jsonlint
 * - Set manifest_version in extension.json
 * - Add extension.json, empty PHP entry point
 * - Remove i18n shim
 * - More explicit apihelp-sitematrix-description about dbname
 * - Replace deprecated $wgSpecialPageGroups

SpamBlacklist

 * - Actually use clearCache instead of copy-pasting key names
 * - Added local blacklist caching
 * - Made getArticleText plausibly work unlike before
 * - Declare BaseBlacklist::filter interface to avoid IDE warnings
 * - Support protocol relative and https URLs
 * - build: Configure banana-checker and jsonlint
 * - Set manifest_version in extension.json
 * - Add extensions.json, empty PHP entry point, remove i18n shim
 * - Conversion to using WAN cache

SubpageSortkey

 * - build: Configure banana-checker and jsonlint

SyntaxHighlight_GeSHi

 * - build: Update CSSLint from 0.4.0 to 0.5.0
 * - build: Update grunt-banana-checker from 0.2.0 to 0.3.0 and make pass
 * - build: Update JSCS from 1.8.0 to 2.1.0 and make pass
 * - Rename modules/VisualEditor to modules/ve-syntaxhighlight
 * - VisualEditor integration: Fix handling of (None) language
 * - Split nodes into block/inline
 * - build: Bump grunt-contrib-jshint from 0.11.2 to 0.11.3 to fix upstream issue
 * - VE integration: Fix regression in Ic84c5afb
 * - VE integration: Provide a combobox for language input
 * - Revert &quot;Don't top-load CSS&quot; (causes FOUC)
 * - Fix-up for I2de8a400d: explicitly declare module position
 * - Don't top-load CSS
 * - Unbreak VE integration in debug mode
 * - Map 'gettext' to 'pot'
 * - Render &quot;dcl&quot; as &quot;sql&quot;
 * - Use $parser-&gt;mUniqPrefix instead of $parser::MARKER_PREFIX for MW 1.25 compatibility
 * - Map other assembler language to 'asm' or 'nasm'
 * - Render &quot;arm&quot; as &quot;asm&quot;
 * - Use 'ebnf' to render 'bnf'
 * - Render &quot;bibtex&quot; as &quot;latex&quot;
 * - Restore 'direction: ltr;' for .mw-highlight
 * - Fix &quot;MWException: Unexpected output from Pygments&quot; in highlight fallback
 * - Add VisualEditor support for 'line' attribute
 * - Highlight background of whole lines, not just text in them
 * - Refactor final output formatting
 * - Add a tracking category on pages that contain invalid &lt;syntaxhighlight&gt; attributes
 * - Hide the red border around syntax errors
 * - Support local composer setup
 * - Avoid displaying double borders for inline code snippets
 * - Revert &quot;Remove obsolete mw-highlighter styles&quot;
 * - Follow-up for Idb7e03aee: update i18n message for Pygments switch
 * - Add parser tests for block and inline behaviour
 * - Remove obsolete mw-highlighter styles
 * - Document the 'enclose' and 'inline' parser tag attributes
 * - Revert &quot;Add Pyglet, a web micro-service for highlighting using Pygments&quot;
 * - Add Pyglet, a web micro-service for highlighting using Pygments
 * - ext.geshi.visualEditor: Store languages in the module instead of mw.config
 * - Merge ext.geshi.data and ext.geshi.visualeditor modules
 * - Removed unused getDefinitionSummary implementation.
 * - Add VisualEditor support
 * - Follow-up for I07446ec98: update i18n messages for Pygments switch
 * - On parser cache invalidation, purge Varnish as well.
 * - Add 'direction: ltr;' to .mw-highlight
 * - RejectParserCacheValue may pass a WikiPage or Article
 * - Use RejectParserCacheValue hook to invalidate caches that were using GeSHi
 * - Render &quot;xpp&quot; as &quot;java&quot;
 * - Add cache versioning and makeCacheKey method
 * - Use &lt;code&gt; instead of &lt;span&gt; for inline code snippets
 * - Support 'inline' as an alias for 'enclose=&quot;none&quot;'
 * - Correct whitespace around &lt;syntaxhighlight&gt; blocks
 * - Unbreak &lt;syntaxhighlight enclose=&quot;none&quot;&gt;
 * - Correct behavior of &lt;syntaxhighlight highlight=&quot;[lines]&quot;&gt; with more than one line
 * - Enable syntaxhighlighting on mobile target
 * - Use wfGlobalCacheKey
 * - Add basic parser tests for functionality of non-recognized languages
 * - If unable to shell out to Pygments, emit a warning and fall back to plain text.
 * - Bundle Pygments 2.0.2
 * - Follow-up for I07446ec98: remove geshi/
 * - Only look for a compatible lexer if a direct Pygments match is unavailable
 * - Highlight using Pygments rather than Geshi
 * - Use normal line numbers
 * - Compare against '$geshi-&gt;error' instead of '$geshi-&gt;error' in prepare
 * - build: Updating development dependencies
 * - Remove redundant ResourceLoaderModule::getModifiedTime implementation
 * - Remove redundant position code defined in ResourceLoaderWikiModule
 * - build: Use npm for repo testing (jshint, jsonlint, jscs, banana)
 * - Explicitly define module position
 * - Set manifest_version in extension.json
 * - Revert &quot;Revert &quot;Add extension.json, empty PHP entry point&quot;&quot;
 * - Revert &quot;Add extension.json, empty PHP entry point&quot;
 * - Add extension.json, empty PHP entry point
 * - Remove i18n shim
 * - Fix I062a2246

TemplateData

 * - Dialog: Use a 'done' button on edit param page instead of 'back'
 * - Use ActionFieldLayout for 'Add parameter'
 * - Fix language widget
 * - Remove $ = this.$ from OOJSUI code
 * - Go back to using a configurable link for documentation
 * - build: Bump grunt-contrib-jshint from 0.11.2 to 0.11.3 to fix upstream issue
 * - Gruntfile.js: Remove unused 'pkg'
 * - build: Updating development dependencies
 * - build: Update banana-checker, add jsonlint
 * - Use the plain-text GPL
 * - build: Switch from grunt-jscs-checker to grunt-jscs
 * - build: Updating development dependencies
 * - Update mediawiki/codesniffer to 0.2.0
 * - Fix ResourcesTest::testUnsatisfiableDependencies test failure
 * - Use valid spdx license identifier
 * - test: Read i18n directories for banana-checker from extension.json
 * - test: Add explicit dependency upon grunt-cli
 * - Sync extension.json, empty PHP entry point
 * - Remove i18n shim
 * - HtmlView: Move &quot;default&quot;, &quot;example&quot;, and &quot;autovalue&quot; under description
 * - Add example property to HTML rendering

TemplateSandbox

 * - Update extension.json to use &quot;ResourceFileModulePaths&quot; property
 * - build: Configure banana-checker and jsonlint
 * - Remove i18n shim file from TemplateSandbox.php
 * - Set manifest_version in extension.json
 * - Remove i18n shim
 * - Use Title::isExternal, not Title::isLocal

TextExtracts

 * - SECURITY: Disallow extracts for non-wikitext for now.
 * - Update for rename of WikiPage::isParserCacheUsed in I7de67937f0
 * - build: Configure banana-checker and jsonlint

Thanks

 * - Permission file problem.
 * - Remove unused key &quot;notification-link-text-respond-to-user&quot;
 * - build: Bump grunt-contrib-jshint from 0.11.2 to 0.11.3 to fix upstream issue
 * - Add pre-commit hook script
 * - Remove use of deprecated TestUser-&gt;user
 * - Don't fatal when context doesn't know the title
 * - Make inclusion of API action=flowthank conditional on Flow being installed
 * - Fix doc comment for BeforePageDisplay hook
 * - Remove unnecessary dependency upon user.tokens
 * - Use mw.Api#postWithToken for mobilediff
 * - build: Add .jshintignore
 * - Use log_search to track already sent thanks
 * - Call mw.Api constructor properly
 * - build: Adding configuration for jsonlint
 * - Use __DIR__ directly
 * - Add explicit dependency upon grunt-cli
 * - build: Updating development dependencies
 * - Remove message reuse for &quot;send thanks&quot;
 * - Further document Thanks gender (both en and qqq), and fix bug
 * - Check the thanked user's gender for Thanks messages
 * - Actually pass jscs
 * - Add Grunt infrastructure for CI

TimedMediaHandler

 * - Remove reference to non-existent file in CSS
 * - Update ogv.js to 1.0 offical stable release
 * - Another hack at fixing embed player
 * - chmod 644 WebVideoTranscodeJob.php
 * - Do language formatting on numbers in Special:TimedMediaHandler
 * - build: Bump grunt-contrib-jshint from 0.11.2 to 0.11.3 to fix upstream issue
 * - Update qqq.json messages
 * - TimedText: Fix the create/edit selector script
 * - Re-disable 2-pass Theora encoding temporarily
 * - Fix jshint errors
 * - Update ogv.js libraries to 0.9.9
 * - Allow for potentially multiple types of subtitles
 * - Add support for 4K videos
 * - Fix for VP9/Opus transcodes: actually use Opus
 * - Use ResourceLoader for ogv.js core
 * - Make register a public static
 * - Further increase Theora transcode quality
 * - Cortado: fully and wholly remove it
 * - Clean up transcode info table on File: page
 * - Fix playback of WebM source files
 * - Add support for WebM VP9/Opus playback and transcodes
 * - Update ogv.js to 0.9.8; fixes IE audio stuttering
 * - Add license name to main php file
 * - Mark parseroutput that includes TMH elements
 * - Fix regression in iframe embedding for MediaWiki core updates
 * - Update ogv.js to 0.9.7 release
 * - Get subtitles working in ogv.js
 * - Remove use of deprecated TestUser-&gt;user
 * - Don't try to use broken XiphQT-as-HTML5 in Safari
 * - Add translatible name support to TimedMediaHandler
 * - Fix various regressions in transcode list/update
 * - Update TMH default transcode set
 * - Add self to authors for TMH
 * - Disable Cortado
 * - ogv.js media player for desktop Safari/IE/Edge (2 of 2)
 * - Update ogv.js libs to 0.9.6
 * - Update ogv.js libraries to 0.9.5 release
 * - Increase quality of Ogg Theora video transcodes
 * - Fix broken video player on first popup dialog open
 * - Fix for double-playback of videos in IE/Edge with WebM components
 * - Tiny bug in error condition
 * - Natural sort for transcode list
 * - Remove use of ResourceLoader::makeLoaderConditionalScript
 * - Made WebVideoTranscodeJob bail if the work is started already
 * - build: Re-add private=true in package.json
 * - Update TimedMediaHandler tests
 * - Update ogv.js libraries to 0.9 release
 * - chmod 644 WebVideoTranscodeJob.php
 * - build: Configure banana-checker and jsonlint
 * - Flush the trx in WebVideoTranscodeJob before the transcode
 * - Kill dependency on PEAR
 * - i18n: Document message timedmedia-subtitle-no-video
 * - Fix transcode download links on mobile
 * - Fix MP4/H.264 transcodes on modern avconv
 * - Replace prior fix for view-time master manipulation in transcodes
 * - Revert regression breaking reset of media transcodes
 * - Update ogv.js from upstream commit bbd24dafd
 * - Consistently use &quot;mw&quot;, &quot;mediaWiki&quot; and &quot;jQuery&quot; as globals instead of properties
 * - Update message documentation
 * - Explicitly define module position
 * - Remove i18n shim
 * - Replace deprecated $wgSpecialPageGroups
 * - Flush transactions in WebVideoTranscodeJob to avoid contention
 * - Removed redundant/useless LIMIT and ORDER BY clauses

TitleBlacklist

 * - Revert &quot;Avoid checking blacklists in isBlacklisted for existing titles&quot;
 * - Avoid checking blacklists in isBlacklisted for existing titles
 * - Avoid loading the blacklist in TitleGetEditNotices hook handler
 * - Optimize the order of checks
 * - Add config option to disable blocking auto account creations
 * - build: Configure banana-checker and jsonlint
 * - Set manifest_version in extension.json
 * - Use extension registration, replace constants with some reasonable values, kill i18n shim
 * - Conversion to using WAN cache

TocTree

 * - build: Configure banana-checker and jsonlint
 * - Use HTTPS url to mediawiki.org
 * - Set manifest_version in extension.json

TorBlock

 * - Remove i18n shim
 * - Remove use of deprecated wfRunHooks
 * - build: Configure banana-checker and jsonlint

Translate

 * - Defer the ApiTranslateUser::trackGroup saveSettings call
 * - Updated watir-webdriver Ruby gem to the latest version
 * - Remove ignored $wgAPIGeneratorModules
 * - Ignore filter parameter on querying an invalid filter.
 * - Add support for levenshtein_distance_score
 * - Avoid FOUC on translatable pages
 * - Allow external or per-namespace support URL
 * - Restore table styles on Special:Translations
 * - Refactor $wgTranslateSupportUrl constructions
 * - Add position for ext.translate.legacy
 * - Fix styles on Special:SearchTranslations
 * - Reduce flash of unstyled content appearance
 * - Remove code supporting MediaWiki 1.23
 * - Breaking change: Do not autoload anymore with composer
 * - Support for 'filter' search operator.
 * - Support for search operators.
 * - Update version for MLEB 2015.08
 * - Cxserver: use the new mt list api
 * - Add 'match' and 'case' parameters for search translations API.
 * - Allow case sensitive search
 * - Show the selected language at the top left, even though it has no results.
 * - Special:SearchTranslations addHelpLink
 * - List the selected filters at the top left in Special:SearchTranslations.
 * - Make query_aggregator timings back in results
 * - Support search for all words in the search string.
 * - Use TUX elements to build tabs.
 * - API support to get untranslated, translated and outdated messages in the target language, using MessageCollection.
 * - Get outdated messages in the target language using MessageCollection
 * - Add missing continue to avoid PHP notice
 * - Search with exact title match
 * - Sort groups before the groups slicing.
 * - Elastica\Query::setFilter is deprecated. Use setPostFilter instead
 * - Pass array instead of FormOptions in search translations API.
 * - Fix lang and dir assignment in translation helpers
 * - Get translated messages in the target language, using MessageCollection.
 * - Created CrossLanguageTranslationSearchQuery class for cross language search.
 * - Add appropriate lang and dir to all translation suggestions
 * - Get untranslated messages in the target language, using MessageCollection
 * - Sort the group list based on search result count
 * - Remove use of deprecated wfRunHooks
 * - Remove periods from page titles
 * - Remove undeclared member variable &quot;highlight&quot;.
 * - Allow wildcard strings search
 * - Remove support for gettext documentation in non-tux editor
 * - Ignore composer.lock
 * - Fix help indicator support for MW 1.25 and above
 * - Remove support for getLastDiff from non-tux editor
 * - Remove suggestion support from non-tux editor
 * - Special:SearchTranslation provide link to foreign messages
 * - MessageGroupStats: use TranslateUtils::getLanguageNames
 * - Search translations using API
 * - Enable message group toggle
 * - Remove empty rows from the group list
 * - List subgroups after click on group
 * - Replace obsolete method Revision-&gt;getRawUserText
 * - Only hide facets when there are no results at all
 * - Check that tables exist before trying to update them in UserMerge hooks
 * - Hide facet headers when there are no facets
 * - chmod 644 utils/TranslateSandbox.php
 * - Use Filtered query instead of post_filter for TTMServer suggestion.
 * - Rip out non-TUX workflow state selector
 * - Avoid deprecation notices for Http::get
 * - Remove unused return values
 * - Remove superflous return statement
 * - Remove unused local variable
 * - Remove various code formatting inconsistencies
 * - Remove jquery.chosen from .jshintignore
 * - Skip stats cache purges on no-op edits
 * - Normalize key in WikiPageMessageGroup::getMessage
 * - getTargetLanguage should return a Language object
 * - Use canonical class name for FormatJson
 * - Add validations to autoloader processing
 * - Fix the grammar of an apihelp message
 * - Add a missing # in an HTML entity in a message
 * - Remove unused local variable
 * - Update some documentation in messagegroups related files
 * - Make tpt-mark-nochanges impervious to manual addition of &lt;!--T...--&gt;
 * - &quot;Translate&quot; to English in English translation stash
 * - Fix exception &quot;Checker class XYZ does not exist.&quot;
 * - Use mw.Api.post in ext.translate.messagetable.js
 * - Quotes and clarity in apihelp-query+messagecollection-param-filter
 * - Update API query continuation usage for future change of default
 * - Fix one instance of 'MWException' with message 'Oops, this should not happen!'
 * - Less jargon in translate-group-desc-nfcring-control
 * - Mention re-entering translations in tux-session-expired
 * - Less legoish tsb-reminder-sent timestamps
 * - Refactor MessageGroups and MessageIndex for test friendliness
 * - Remove ApiHardMessages entirely
 * - Add article: &quot;The Translate extension&quot;
 * - Improve translation web services performance by doing queries in parallel
 * - Introduce and use MessageGroups::recache
 * - Improve workflow selector on Special:Translate
 * - Remove unneeded $wgSpecialPageGroups
 * - Remove duplicate results when searching
 * - &quot;The language code&quot; in apihelp-ttmserver-param-*
 * - Delimit proper name in apihelp-query+messagegroups-param-depth
 * - Delimitate examples with quotation marks as stated in qqq
 * - Breaking change: ApiQueryMessageGroups workflow format
 * - Finish cleanup of RevTag schema migration
 * - Drop BC code for MediaWiki 1.22
 * - Avoid DIY cache update that violates SoC
 * - Update version before MLEB release

TranslationNotifications

 * - build: Configure banana-checker and jsonlint
 * - SpecialNotifyTranslators: Sort translatable pages alphabetically

TrustedXFF

 * - build: Configure banana-checker and jsonlint

UnicodeConverter

 * - build: Configure banana-checker and jsonlint
 * - Set manifest_version in extension.json

UniversalLanguageSelector

 * - Update grunt-contrib-jshint to 0.11.3
 * - Add jshint to npm
 * - Update jquery.uls from upstream
 * - Do not use setlang to change user language
 * - Fix-up for Ib98499040
 * - Use localStorage to store previous languages, not cookies
 * - Add missing dependency to 'mediawiki.notify'
 * - Remove not useful comments
 * - Breaking change: No longer autoload with composer
 * - Update version for MLEB 2015.08
 * - Defer &quot;language&quot; preference update
 * - Update jquery.ime to 91dc90c2f2
 * - Update jquery.uls from upstream
 * - Update jquery.uls from upstream to 5f35b1805e
 * - Use jQuery.i18n from MediaWiki core if available.
 * - Avoid (safe) exception by using empty options
 * - Add two hooks entries missed in extension.json
 * - Add Gothic font
 * - Update jquery.uls from upstream
 * - Upgrade jquery.i18n library from v1.0.2 to v1.0.3
 * - Set ULS_VERSION when using extension registration
 * - Use Language::isSupportedLanguage for language code validation
 * - Migrate to JSON configuration based extension registration
 * - Remove i18n shim
 * - Update jquery.uls localization from upstream
 * - build: Configure banana-checker and jsonlint
 * - Update ext.uls.webfonts.repository.js
 * - Update ResourceLoaderULSJsonMessageModule::getDependencies method signature
 * - Update jquery.ime to b3f68eb6f8
 * - Update jquery.uls to 9386f1cf94
 * - Update jquery.ime to bb38f7d711
 * - Clarify API help message for language code
 * - Update jquery.ime to beeab196dd
 * - Update geoiplookup URL endpoint for I8c90977e4
 * - Explicitly define module position
 * - Update jquery.ime to 5498eae
 * - Update version before MLEB release
 * - Update jquery.ime to v0.1.0+20150429

UploadWizard

 * - Use OOUI dialogs instead of jquery.ui
 * - Actually pass the blacklist page title and header text to mw.Feedback
 * - Consistently use NS_CATEGORY / NS_FILE for namespace numbers
 * - Remove some dead code related to jQuery UI buttons
 * - Remove lightbox image preview dialogs
 * - Remove unused mw.UploadWizardDeedPreview class
 * - Remove unused mw.UploadWizardDeleteDialog class
 * - Display duplicates inline rather than in a popup
 * - Do not redefine canonical English namespace aliases
 * - uw.ui.Details: Remove some dead code
 * - Remove prefixed border-radius properties from CSS
 * - Remove unused 'mw-coolcats' messages
 * - Add missing 'mwe-upwiz-calendar-date' message to module definition
 * - Remove legacy JSHint options
 * - Allow long file names on 'Upload' step to be wrapped
 * - Prevent 'filename-toolong' errors during 'Upload' step
 * - Allow uploading files with the same name but different extension at once
 * - Remove 'mw' as allowed global variable from .jshintrc
 * - Do not obfuscate class names when adding prototype methods
 * - Always use 'OO' rather than 'oo' for OOjs and OOjs UI
 * - Remove non-existent files/directories from .jshintignore
 * - Really recover from 'badtoken' error when uploading
 * - Revert &quot;Disable jQuery.validator debug mode&quot;
 * - Handle invalid titles better in mwCoolCats
 * - Disable jQuery.validator debug mode
 * - Don't fail horribly when invalid categories are passed
 * - Do not claim that a file with given name already exists if the extension differs
 * - Treat 'thumb-name' warning the same as 'thumb'
 * - Move details step status labels from PHP to JS
 * - Unbreak final &quot;Continue anyway&quot; button on 'Details' step
 * - Allow reupload of deleted files ('duplicate-archive' warning)
 * - Actually display a button to try after errors in the 'Details' step
 * - Always set 'offset' with chunked uploads, even for first chunk (offset == 0)
 * - Better handle revdeleted file duplicates when displaying warning popup
 * - Get language names via core functions
 * - Consider the object reference not being passed in the expected format
 * - build: Updating development dependencies
 * - Check for global blocks in addition to regular ones before showing the wizard
 * - Added support to ignore file extension
 * - Work around &lt;input type=file multiple&gt; having wrong .value on IE 11
 * - Correctly report an error for file names without extension
 * - Tweak spacing of checkboxes in metadata copier
 * - Improve OpenStreetMap link
 * - Help users trying to input a template as upload date
 * - Fix button config for campaigns to check for a given object reference
 * - Keep the uploads sorted in the order they were created in initially
 * - Redesign switcher between calendar and freeform date inputs
 * - Revert &quot;Never import the time of creation from anywhere, only the date&quot;
 * - [UploadWizard] Introducing the usage of an object reference
 * - [UploadWizard] Introducing the usage of an object reference
 * - Always quote object keys which are also reserved keywords
 * - Fail gracefully when UploadWizard is disabled
 * - Move &quot;Skip tutorial&quot; checkbox from PHP to JS, and display it better
 * - Move file upload status labels from PHP to JS, and display them better
 * - Don't put 'Thanks' step buttons in a ButtonGroupWidget
 * - Add needed whitespace between buttons and text in UploadWizard
 * - .gitreview: Set defaultrebase=0, like in mediawiki/core
 * - Use mw.widgets.DateInputWidget instead of jQuery UI datepicker
 * - SpecialUploadWizard: Reindent the massive HTML blob
 * - mw.UploadWizardUpload: Replace some pubsub usage, use promises
 * - Remove some dead commented-out code
 * - Use OO.ui.ProgressBarWidget instead of jQuery UI progressbar
 * - Remove no-op method #prefillSource
 * - jquery.morphCrossfade: Do not set 'overflow: hidden' permanently
 * - Never import the time of creation from anywhere, only the date
 * - Remove commented-out for ages 'altitude' code
 * - Remove unused message 'mwe-upwiz-error-date'
 * - Use HTTPS for links to Commons and MediaWiki.org
 * - Remove some pointless datepicker code
 * - Fix minor style issue with Thanks step buttons
 * - [UploadWizard] Make button labels and targets configurable
 * - Replace references to screen positions in 2 messages.
 * - Check campaign content model
 * - build: Adding configuration for jsonlint
 * - Fix conditional deed step skipping for Flickr
 * - build: Updating development dependencies
 * - Test API now exit 1 on failure
 * - QA: Upgrade mediawiki_selenium to 1.2.0 for Raita support
 * - Flickr upload form: Make button of type=submit
 * - Use a valid &quot;license&quot; in package.json
 * - Remove i18n shim
 * - Fix deed validation
 * - Use OOUI checkboxes for metadata copying
 * - Replace buttons with OOUI button widgets
 * - Replace deprecated $wgSpecialPageGroups
 * - Add oojs to uw.ui.Step dependencies
 * - Change callback handling of mw.confirmCloseWindow
 * - Remove some unused CSS
 * - Do not set 'overflow: hidden' on text fields
 * - UploadWizard doesn't need addModuleStyles
 * - mwCoolCats: Use action=opensearch instead of getCategoriesByPrefix
 * - mw.FormDataTransport: Make it possible to skip the 3000 ms timeout in tests
 * - Recover from 'badtoken' error when uploading
 * - Remove some dead code
 * - Remove incredibly weird message override for 'mwe-upwiz-code-unknown'
 * - build: Bump grunt-jscs to latest version
 * - Move &quot;x&quot; control to the top-right of the description div and make it a bit bigger
 * - Call requiredFieldLabel after text
 * - Add placeholder text for the Description field
 * - Increase space between &quot;Add new description&quot; link and the text box
 * - Add 'default' environment for browser tests
 * - Explicitly define module position
 * - Conversion to using WAN cache
 * - Trim trailing dots in UploadWizard filename

UserDailyContribs

 * - Mark ApiUserDailyContribs as deprecated
 * - build: Configure banana-checker and jsonlint
 * - Message text clarification

UserMerge

 * - Only pass strings to User::newFromName on Special:UserMerge
 * - build: Configure phplint and phpcs
 * - Fix typo in MergeUser::mergeBlocks
 * - Remove use of deprecated wfRunHooks
 * - Added USE_MULTI_COMMIT flag to enable query batching
 * - Don't depend upon $wgUser for attributing log entries
 * - build: Configure banana-checker and jsonlint
 * - Convert to extension registration
 * - Remove i18n shim
 * - Replace deprecated $wgSpecialPageGroups

Validator

 * - Add wgMessagesDirs for WMF usage in LocalisationUpdate (noop for older MW)

VectorBeta

 * - build: Configure banana-checker and jsonlint
 * - Set manifest_version in extension.json
 * - Explicitly define module position
 * - Remove unused i18n shim
 * - Add extension.json

VipsScaler

 * - build: Configure banana-checker and jsonlint
 * - Replace deprecated $wgSpecialPageGroups

VisualEditor

 * - DesktopArticleTarget: Fix page title (first H1) font size in Vector
 * - Zero-width space to avoid empty annotation cursoring bug
 * - Update VE core submodule to master (171fe11)
 * - Allow pressing 'escape' from all pages of save dialog
 * - Make save dialog variable height
 * - Update VE core submodule to master (8012620)
 * - Skin specific fixes for external link cartouches
 * - MWReferenceResultWidget: Remove border from last item
 * - Make gallery icon slightly lighter and smaller by thinning borders
 * - Load mwgallery on mobile as well
 * - build: Update CSSLint from 0.4.0 to 0.5.0
 * - Actually get uploader details when querying media info
 * - Template placeholder: Don't show delete button if we're the only transclusion part
 * - MWInternalLinkAnnotation: Make protocol matching case-insensitive
 * - MWWelcomeDialog: .html, not .text, as we're inserting HTML
 * - MW*LinkAnnotation: Fix class names
 * - Update VE core submodule to master (5018704)
 * - MWWelcomeDialog: Split text, tweak styling
 * - Update VE core submodule to master (9dcfbdb)
 * - Server-side replace Edit=&gt;Edit Source on talk NS
 * - MWWelcomeDialog: Switch out graphic for new one
 * - Update VE core submodule to master (ce39ef0)
 * - Use ve.resolveAttributes instead of resolveUrl in clipboard conversion
 * - WelcomeDialog: Fix vertical spacing
 * - MWWelcomeDialog: Alter to be welcoming, use a nice image
 * - Update VE core submodule to master (7847bf5)
 * - If init fails once, don't completely break when the user retries
 * - MWSaveDialog: Checkbox vertical alignment tweak
 * - Hooks: Respect VisualEditorDisableForAnons for section edit links too
 * - Update VE core submodule to master (e33a584)
 * - Remove command help height hack
 * - Order template title results by provided index
 * - Resolve image paths when writing to clipboard
 * - Use rendered contents when copying to clipboard
 * - Exclude citefromid and cite-(book,journal,...) commands from ref dialog
 * - Load visualeditor-saveerror-titleblacklist and fancycaptcha-reload-text for all targets
 * - Update VE core submodule to master (97742c0)
 * - build: Upgrade grunt-banana-checker to v0.3.0
 * - Initialize actions toolbars
 * - Update VE core submodule to master (d58d7d4)
 * - mw.trackSubscriber: Log platform as phone vs. desktop
 * - Abstract mwExtension behaviour into MWExtensionWindow
 * - Load new gallery styles module
 * - Bump Schema:Edit to revision 13457736
 * - VisualEditorDataModule: remove $msgKeys
 * - build: Bump grunt-contrib-jshint from 0.11.2 to 0.11.3 to fix upstream issue
 * - Don't break when you cancel the link inspector
 * - Fix cancelling of extension inspectors
 * - MWLinkInspectorTool: Add parent method call to #updateState
 * - Remove explicit setting of ce=false on FocusableNodes
 * - Specialized inspector for ISBN magic links
 * - &lt;visualeditor-dialog-media-size-section-help&gt;: Fix grammar
 * - Update VE core submodule to master (62cf769)
 * - Rerender extension node immediately if no images exist
 * - Implement getUserConfig and setUserConfig in MW
 * - Update VE core submodule to master (83c5ca4)
 * - MWReferenceNode: Don't allow cross-VE paste of template-defined ref
 * - Update VE core submodule to master (ff259df)
 * - Use RESTBase v1 API
 * - Allow trailing punctuation for typed ISBN/PMID/RFC autolinks
 * - ve.dm.MWImageModel: Require parent document
 * - ve.dm.MWReferenceModel: Require parent document
 * - Update VE core submodule to master (9123d3b)
 * - MWSaveDialog: Use .moveCursorToEnd instead of ve.selectEnd
 * - Remove compatibility aliases for old ve init modules
 * - page-not-found*.svg: Provide semi-flipped variant for he, yi
 * - bin/listRecentCommits.sh: Don't try to loop over OOUI commits
 * - Use mw.Title to localise file: prefix on new images
 * - Update VE core submodule to master (bf76dd7)
 * - Hooks: Don't show the tab just to hide it when 'DisableForAnons' is true
 * - Use new internal link builder
 * - Fix flash of bad ve-edit tab on non-wikitext page in enabled namespacea
 * - mw.DesktopArticleTarget.init: Don't make non-VE edit tab collapsible
 * - Fix flash of wrong Edit tab in non-VE namespaces
 * - ve.ce.MWTransclusionNode: Pass number of templates to context
 * - MWInternalLinkAnnotation: Override new getDisplayTitle method
 * - Fix pattern for matching wikitext headings
 * - Move MWReferenceSourceSelectWidget out to Citoid
 * - MWWikitextStringTransferHandler: Show indeterminate progress bar while converting
 * - Update VE core submodule to master (442ec14)
 * - Update VE core submodule to 89f6c2d7
 * - Autolink typed ISBN/RFC/PMIDs
 * - Update VE core submodule to b5eaa6f
 * - Add spacer above basic reference option
 * - Update VE core submodule to master (7ec7bb5)
 * - Don't retry request in tryWithPreparedCacheKey unless the error was badcachekey
 * - QA: Upgrading to mw-selenium 1.x
 * - MWLinkNodeInspector: Remove 'Open' button
 * - Use ve.dm.MWInternalLinkAnnotation for autolinks where appropriate
 * - Builder for ve.dm.MWInternalLinkAnnotation
 * - build: Enable jscs jsDoc rules 'require*Types' and make pass
 * - build: Enable jscs jsDoc rule 'checkTypes' and make pass
 * - build: Enable jscs jsDoc rules 'checkRedundant*' and make pass
 * - build: Enable jscs jsDoc rule 'checkParamNames' and make pass
 * - build: Enable jscs jsDoc rule 'requireNewlineAfterDescription' and make pass
 * - build: Enable jscs jsDoc rule 'checkAnnotations' and make pass
 * - build: Enable jscs rule 'requireVarDeclFirst' and make pass
 * - build: Enable jscs rule 'requireSpacesInsideBrackets' and make pass
 * - build: Enable jscs rule 'requireDotNotation' and make pass
 * - build: Bump jscs devDependency from 1.8.0 to 2.1.0
 * - Update VE core submodule to master (4c8168a)
 * - Add down indicator to advanced menu in mobile
 * - Save dialog: Don't try to pass in undefined checkboxes fields to setupCheckboxes
 * - Update VE core submodule to master (1191940)
 * - Detect paste of wikitext and convert it
 * - Update VE core submodule to master (0bf4ce7)
 * - Fix typos in function names
 * - Update VE core submodule to master (cf224ad)
 * - MWNumberedExternalLinkNode: Provide a context item
 * - ve.init.mw.Target#saveErrorCaptcha: Focus CAPTCHA input on display
 * - Convert save checkboxes to OOUI widgets
 * - Update VE core submodule to master (d020898)
 * - Increase PageImages limit to number of pages requested
 * - Set the default feedback message to the page URL
 * - Update message list
 * - Clear old captchas after building save options
 * - MobileArticleTarget: Restructure the toolbar
 * - MWMediaResultWidget: Fallback for 'images' without dimensions
 * - Fix foreign file repositories (e.g. InstantCommons or equivalent) support
 * - Update VE core submodule to master (28c686e)
 * - Make URL schemes case-insensitive
 * - Add missing message for done button in mobile
 * - Update VE core submodule to master (e61ebf2)
 * - Don't reset edit summary every time we open the save dialog
 * - Update VE core submodule to master (d3d2293)
 * - Slightly rephrase visualeditor-dialog-media-alttext-section-help
 * - Silence deprecation and invalid param warnings in API responses
 * - Only add tab on the server-side if we're in a VE-namespace
 * - ve.ui.MWMediaDialog: Remove dead code with 'HACK' comments
 * - ve.ui.MWMediaDialog: Remove weird spinner relicts
 * - MobileArticleTarget: Centre toolbar tools
 * - Update VE core submodule to master (da9d929)
 * - Remove Minerva MobileWindowManager.css
 * - Update VE core submodule to master (58912e1)
 * - MobileArticleTarget: Add webkit touch scrolling to panels
 * - Switch to using surface model focus/blur events
 * - Update VE core submodule to master (07288e0)
 * - MWMobileSaveDialog: Use short save messages for space
 * - MobileArticleTarget: Use platform's iOS detection, not MobileFrontend's
 * - MobileArticleTarget: Remove incorrect border from toolbar
 * - MobileArticleTarget: Give toolbar split focused/unfocused modes
 * - MobileArticleTarget: Fix over-sized debug bar
 * - [BREAKING CHANGE] Use save dialog in mobile
 * - *Dialog: Flag back/cancel actions
 * - Update VE core submodule to master (1360bca)
 * - Remove use of deprecated wfRunHooks
 * - DesktopArticleTarget.init: Don't overwrite mw.libs.ve
 * - Add aliases for old ve init modules
 * - mw.Target: Add jsconfigvars and modules to the save mechanism
 * - Move theme style files to appropriate skinStyles sections
 * - [BREAKING CHANGE] Target*: Replace target events with methods
 * - Make transclusions which are td/th elements behave as table cells
 * - Update VE core submodule to master (15e5545)
 * - Target*: Remove 'on' from methods which aren't event handlers
 * - Follow-up fd2ef3e: Keep passing data.isRedirect in #onSave
 * - Revert &quot;Revert &quot;For empty / whitespace-only headings, output &lt;p&gt; instead of &lt;h#&gt;&quot;&quot;
 * - Follow-up fd2ef3e: Call prototype., not ve.init.mw.Target#onSerialize
 * - Unbreak meta dialog cancel button
 * - MWImageModel#insertImageNode: Separate out linmod generation
 * - MWMediaDialog: Remove redundant check of this.imageModel existence
 * - Use target-specific command registry for lookup
 * - MWCommandRegistry: Move commands' registrations to their code
 * - MWSaveDialog: Remove unnecessary &lt;br /&gt; from diff panel
 * - Use super constructors in ArticleTargets
 * - ve.init.mw.Target#save: Bind this#onSave, not #onSave
 * - Revert &quot;Revert &quot;Replace wgVisualEditorNamespaces with an associative array&quot;&quot;
 * - Update VE core submodule to master (d9d4e33)
 * - MWSaveDialog: Make a FragmentDialog now that's available
 * - MW target: Make 'static' methods either static or be instance methods
 * - Don't error when we try to close a reference/media dialog with inspectors still open
 * - Revert &quot;Only change edit tab text if the current text is as expected&quot;
 * - Only change edit tab text if the current text is as expected
 * - Move toolbarSaveButton init to base class
 * - Revert &quot;Replace wgVisualEditorNamespaces with an associative array&quot;
 * - Bring in code from MobileFrontend
 * - Remove empty DesktopArticleTarget-shared.css
 * - Follow-up Ieb4e4eb3: Remove @until jsduck tag
 * - Update VE core submodule to master (8feab4e)
 * - Fix target rename merge conflict in CSS
 * - MobileArticleTarget: Collapse text style buttons
 * - [BREAKING CHANGE] Bring in some code from MobileFrontend
 * - Settings dialog: Focus redirect target input when redirect is enabled
 * - DesktopArticleTarget-*.css: Placeholder CSS fixes for skins
 * - Remove mobileViewTarget alias hack
 * - DesktopArticleTarget#activate: Rename pageTarget to target
 * - Replace ve-init-mw-desktopArticleTarget-* with ve-init-mw-target-*
 * - [BREAKING CHANGE] Rename (View|Mobile)PageTarget to (Desktop|Mobile)ArticleTarget
 * - When saving from review screen, swap to main save screen
 * - Follow-up 8250c8ad54: unbreak ApiResponseCache
 * - Allow skin developers to set an offset for toolbar floating
 * - Update VE core submodule to master (cb14f66)
 * - Trim external link before validating
 * - Stop removal of only template placeholder from transclusion
 * - Close the wikitext switch confirmation dialog if serialisation errors
 * - Change reference context title from 'Basic' to 'Reference'
 * - Make missingref references uneditable, not uninspectable
 * - Update VE core submodule to master (a6dabf8)
 * - ParameterWidget: Connect to Search results widget 'choose' events
 * - Separate 'isMissing' micro cache from full link data cache
 * - Add save button to review mode on save dialog
 * - Update VE core submodule to master (1834dd9)
 * - Load the jquery.i18n library from MediaWiki, not lib/ve
 * - Parse SpamBlacklist error on the server-side
 * - Replace wgVisualEditorNamespaces with an associative array
 * - build: Drop last jscs over-ride and make pass
 * - Update VE core submodule to master (d6effdd)
 * - Update VE core submodule to master (aeaad4e)
 * - Disallow typing newlines in the edit summary
 * - [BrowserTest] Add prefixes to language screenshot messages
 * - Support command whitelist feature
 * - Update VE core submodule to master (8abd858)
 * - Update VE core submodule to master (edaa19b)
 * - [BrowserTest] Added screenshots scenarios for links and categories
 * - Update VE core submodule to master (67936f9)
 * - Follow-up 8b7b20b9: Add new i18n directory to banana testing
 * - Don't set browser-prefixed transition CSS classes
 * - [BrowserTest] Add true internationalized content support to language screenshot
 * - Hooks: Support auto-enabling for a proportion of new accounts
 * - Hooks: Support auto-enabling for auto-created accounts
 * - Update VE core submodule to master (ac3e349)
 * - Update VE core submodule to master (032799c)
 * - Remove listeners from deprecated search widget 'select' events
 * - ve.ui.MWReferenceResultWidget: Remove unused 'divider' code and styles
 * - ve.init.mw.TargetLoader: Error when RESTbase load call fails
 * - Never use original data optimisation when in clipboard mode
 * - Update VE core submodule to master (80b68df)
 * - Update VE core submodule to master (baa21a8)
 * - Revert &quot;For empty / whitespace-only headings, output &lt;p&gt; instead of &lt;h#&gt;&quot;
 * - ApiVisualEditor: Ask Parsoid to 'scrubWikitext' on save
 * - Bypass ve.ui.MWInternalLinkAnnotationWidget.prototype.getHref when determining text
 * - Check if links are 'known' rather than 'exist' locally
 * - Fix section scrolling
 * - Revert &quot;Make toolbar save button frameless&quot;
 * - Update VE core submodule to master (e628ef0)
 * - Use Parsoid's new Cite HTML and CSS
 * - Don't always override $wgVisualEditorNamespaces
 * - i18n: Remove references to 'VisualEditor', instead say 'the visual editor'
 * - Delete the never-used 'MW alien' Beta Feature hook/i18n
 * - Use core dimension widget times separator
 * - Remove unused dependency
 * - Add a clean-up script for use as a pre-commit hook
 * - Populate the internal target lookup menu when the user opens the link inspector
 * - Save dialog: Show reload link next to FancyCaptchas
 * - Revert &quot;Show &lt;newarticletext&gt; as surface placeholder, not an edit notice&quot;
 * - Update VE core submodule to master (973e23d)
 * - Re-do: Empty out PHP entry point
 * - Show &lt;newarticletext&gt; as surface placeholder, not an edit notice
 * - ViewPageTarget-vector.css: Fix non-HD mode typo
 * - Make toolbar save button frameless
 * - Ensure placeholder styling matches document
 * - Use new hasContent method on linear data
 * - Follow-up 8112c3ba30: fix JS error on link inspector teardown
 * - Specify 'associatedWindows' for link and citation tools
 * - Update VE core submodule to master (c23e446)
 * - Update VE core submodule to master (5268def)
 * - Make texts of edit tabs' tooltips more helpful to new users
 * - Don't add basic reference tool to catch-all
 * - Set file permissions correctly for *.php files
 * - Run the faked IME unit tests in VE-MW too
 * - Get rid of Category: prefix when looking up categories from the API
 * - MWLinkAnnotationInspector: Get HtmlDocument in a different way
 * - Use new MediaWiki core TitleInputWidget
 * - Remove redundant match function from block image
 * - Update VE core submodule to master (b4dcdf8)
 * - MWInternalLinkAnnotationWidget: Force 'Open' button to use full path
 * - ve.init.mw.Target: Strip all &lt;script&gt;/&lt;object&gt;/&lt;style&gt;/&lt;embed&gt; on save
 * - Update VE core submodule to master (7b7b3d8)
 * - build: Don't run jsonlint on lib
 * - Make ext.visualEditor.mwalienextension mandatory (no longer experimental)
 * - build: Updating development dependencies
 * - [BrowserTest] Update the commons_upload gem
 * - Converting an error image (red link) from block to inline does not lose its error state
 * - Update VE core submodule to master (2e03ab7)
 * - Give TranclusionNodes a matchFunction so they beat LanguageAnnotations
 * - Update VE core submodule to master (259f8b2)
 * - mw.ViewPageTarget: Ensure canonial view url is restored
 * - build: Configure jsonlint
 * - Add missing callback to set namespaces
 * - Sync extension.json with VisualEditor.php
 * - MWMediaResourceProvider: Use exist instead of bool check on API values
 * - Remove .jsduck/generate.sh symlink to removed file
 * - Improve readability of license text in save dialog
 * - Stop using deprecated aliases for OO.ui.mixin.*
 * - Update VE core submodule to master (5befc34)
 * - Update VisualEditorDataModule::getDependencies method signature
 * - VisualEditorDataModule: Use definition summary instead of time tracking
 * - Update VE core submodule to master (f821c6e)
 * - Omit extension attributes with an undefined value
 * - ve.ui.MWTitleInputWidget: Restore 've-ui-mwTitleInputWidget' CSS class
 * - build: Updating development dependencies
 * - Empty all inputs on link inspector teardown
 * - Move cursor to end when changing link mode
 * - Update VE core submodule to master (795550c)
 * - build: Provide a `grunt fix` task to auto-fix jscs failures
 * - Set manifest_version in extension.json
 * - Update mediawiki/codesniffer to 0.2.0
 * - Add in required calls to updateActions
 * - Always preserve input when switch between internal/external links
 * - Unregister core image types
 * - Move test registry hacks into QUnit setup/teardown hooks
 * - ve.dm.MWTemplateSpecModel: Account for data.maps being undefined
 * - Update VE core submodule to master (83d45d1)
 * - Account for MWTitleInputWidget having been moved into MW core
 * - build: Bring over git-status improvements from core
 * - Revert &quot;Update extension.json and empty out PHP entry point&quot;
 * - Update VE core submodule to master (6c72553)
 * - Update extension.json and empty out PHP entry point
 * - mailmap: Add an additional e-mail for Bartosz per request
 * - Use more appropriate RecentChange_save hook for tagging
 * - Use updateMwData when doing a live preview
 * - Representation for the red-linked inline images in VE
 * - [BrowserTest] Fixing the test for general markup
 * - [BrowserTest] Fixing broken test for Page Options test
 * - [BrowserTest] Fixing the broken test for bullets
 * - rephrase feedback button to be less ambiguous
 * - Update VE core submodule to master (3c1f698)
 * - Update VE core submodule to master (2ce2658)
 * - Make sure reference result menu can wrap
 * - Fix tabbing to info/delete buttons in template dialogs
 * - Representation of red-linked images in VE
 * - [BrowserTest] Fix the lists and indentation screenshot scenario
 * - [BrowserTest] Fix the special character button screenshot
 * - [BrowserTest] Fix the text formatting screeshot scenario
 * - Add a couple of patterns to .gitignore for emacs
 * - Close the bottom of Vector tabs in VisualEditor
 * - Remove 3px gap above toolbar in Monobook
 * - ve.init.mw.ViewPageTarget: Simplify toolbar save button and inner toolbar code
 * - Update VE core submodule to master (9c2b380)
 * - Improve progress bar
 * - Remove this.$ remnants
 * - Update VE core submodule to master (d2fc5c8)
 * - ve.ui.MWReferenceContextItem: Update context's size after rendering
 * - Make sure switch to source editing button does not get disabled
 * - Remove MWGeneralReferenceDialog
 * - Use new selectItemByData method where possible
 * - Use new TabSelectWidget in link inspector
 * - Update VE core submodule to master (2c0224d)
 * - Update VE core submodule to master (7c4bbb1)
 * - mw.Target: Fix API breakage of watchlist preference check
 * - ve.ui.MWParameterPage: Simplify handling of required parameters a bit
 * - Follow-up 5c38995bd94f: don't destroy toolbar twice
 * - api: Expand helppage url before passing to 'newarticletext'
 * - jshint: Kill file-level globals and add &quot;moment&quot; to the list
 * - Don't show placeholder references in lists
 * - Refactor reference source selection out into a widget
 * - Revert &quot;Be more selective in application of 0.8em font size&quot;
 * - Update VE core submodule to master (2127edd)
 * - Remove bold from result titles so that query highlighting works
 * - Replace &quot;articles&quot; with &quot;pages&quot;
 * - Highlight matching parts of link suggestions
 * - Update VE core submodule to master (9be0272)
 * - MWTemplateTitleInputWidget: Add missing local var
 * - ve.init.mw.ViewPageTarget.js: Fix indentation
 * - Make 'Search articles' / 'External links' i18n messages
 * - Be more selective in application of 0.8em font size
 * - Fix page restoration when Parsoid load fails
 * - Divide surface margins by 0.8
 * - Update VE core submodule to master (424a9f4)
 * - ve.init.mw.ViewPageTarget: Set custom font-size for original .mw-body-content too
 * - ve.ui.MWParameterPage: Remove dead CSS
 * - Remove unless, and almost-useless closures in response cache
 * - Make static methods static in linkCache
 * - Make 'page not found' label lowercase
 * - Fix line height inside notice/help popups
 * - Fix toolbar &amp; debug bar negative margins
 * - Update VE core submodule to master (3fd7629)
 * - Remove OOUI content icons
 * - Show different icons for different result types
 * - build: Bump various devDependencies
 * - Convert 'external' links to internal pages pasted into the search field
 * - Follow redirects in the link inspector API
 * - Only pull description from wikibase
 * - Separate inputting of internal and external links
 * - Replacing current order of link suggestions
 * - Update VE core submodule to master (170bc6b)
 * - Revert &quot;Pre-fetch RESTBase DNS and negotiate TLS&quot;
 * - Follow-up a4bbe98cd: Kill emptiness hack check in bin/updateSubmodule.sh too
 * - bin: Remove buildi18n-*.sh, unused since 2013
 * - Remove obsolete bin/generateDocs.sh script
 * - bin: Enable 'set -e' and 'set -u' in bash scripts
 * - Fix height when descriptions not present
 * - Update VE core submodule to master (d1d06fc)
 * - Update for Id369ecaec704 in MW core
 * - Follow-up 85381a6b75: update another instance of 'language' to 'textLanguage'
 * - Explicitly define module position
 * - Add images and descriptions to link context items
 * - Link inspector images and descriptions
 * - Update VE core submodule to master (345f2be)
 * - Port ve.init.mw.Target to ve.fixBase
 * - Keep the parameter list expanded after it was expanded once
 * - Don't give up immediately for revid mismatches on second load
 * - Update VE core submodule to master (40ff4c2)
 * - Fix old dates
 * - Update for changes in OOjs UI (Ib40e3477)
 * - Allow special characters with tooltip or that encapsulate text

WikiEditor

 * - Finish updates for Schema:Edit
 * - Bump Schema:Edit to revision 13457736
 * - Dialogs: handle jQuery content for dialogs
 * - Wikieditor: Rework deferred building of toolbar
 * - WikiEditor: Move HTML for dialogs to separate files
 * - Replace hidesig module with a more robust implementation
 * - Set license-name
 * - Toolbar: Remove Opera redraw hack
 * - Use &quot;B&quot; and &quot;I&quot; icon for Persian
 * - WikiEditor: Improve help section
 * - Fix spaces
 * - WikiEditor shouldn't store wrong cookies for booklets
 * - Updated insert-signature image
 * - Toolbar: Let's remove a speedup loop...
 * - Replace deprecated 'jquery.mwExtension' by 'mediawiki.RegExp'
 * - Remove reference to non-existing module
 * - Add svg to LESS file
 * - WikiEditor: Add svg images
 * - build: Configure banana-checker and jsonlint
 * - Remove unused parameter lang from $.wikiEditor.auto* functions
 * - Support fallback languages for icons
 * - build: Updating development dependencies
 * - Reduce 'Edit' EventLogging schema sampling rate to 6.25% (1/16th)
 * - Update mediawiki/codesniffer to 0.2.0
 * - Set manifest_version in extension.json
 * - Explicitly define module position
 * - Actually use the parameter in wikieditor-toolbar-tool-table-toomany
 * - Actually allow people to override $wgWikiEditorFeatures
 * - Empty PHP entry point in favor of extension.json
 * - Remove i18n shim
 * - Sync extension.json with WikiEditor.php
 * - Remove name, type, description, homepage from composer.json
 * - Bump version to 0.5.0 to reflect massive updates in last year
 * - Populate abort.type in Schema:Edit logging
 * - Follow-up cc5ca3a2f6: now that we sample client-side, send all editingStatsIds to the client
 * - Perform 25% sampling on the client side as well

WikiLove

 * - Fixed Style/StringLiterals RuboCop offense
 * - Updated RuboCop to the latest released version
 * - Update repository to mediawiki_selenium Ruby gem 1.x
 * - Hide wikilove link if JavaScript is disabled
 * - Use more reliable Flow detection
 * - Defer addition of change tag
 * - API: Stop suppressing DBQueryErrors
 * - Get rid of 'mediawiki.api.edit' dependency
 * - Check 'wikilove_log' table exists in UserMerge hooks
 * - Remove 'wikilove_image_log' from UserMerge hooks, it no longer exists
 * - WikiLove message enhancements

Wikidata

 * - Update Wikidata - Fix autocomment format and change coalescing bugs
 * - Update Wikidata - Fix uncaught exception on some diff pages
 * - Fix JSON entity keys in api results
 * - New deployment build: wmf/1.26wmf22
 * - Update Wikidata - fix for change dispatcher
 * - Update Wikidata - Fix formatting of client edit summaries
 * - Fix Wikidata.php entry point for jenkins
 * - Update Wikidata - wrap usage tracking batch updates in transaction
 * - New deployment branch - wmf/1.26wmf20
 * - Update Wikidata - add limit for pending changes in dispatcher
 * - Update Wikidata - fix fatal error in ResultBuilder / wbgetentities
 * - New deployment branch - wmf/1.26wmf19
 * - Update Wikibase: Don't write change rows where LENGTH(change_info) &gt; 65500
 * - Update Wikibase: Fix WB spinner, UnresolvedRedirectException on client
 * - Update Wikibase: Fix use class in CallbackFactory
 * - Update Wikibase: Fix the dumpJson and the rebuildItemsPerSite maintenance scripts
 * - Update Wikibase: Fix maintenance/dumpJson.php fatal
 * - Update Wikibase: Fixes for JSON dump creation
 * - Update Wikidata - fix T104609 and partial fix/debug for T107711
 * - Update Wikidata - fix api xml / raw mode handling
 * - Update Wikidata - rm set focus on page in sitelinks ui
 * - Update Wikidata - add usage tracking job
 * - New deployment branch: wmf/1.26wmf16
 * - Update Wikibase, add 'azb' interwiki sorting
 * - Update Wikibase: Add api featureLog for ungroupedlist param
 * - Update Wikibase: JavaScript ULS usage
 * - Update WikibaseQuality and WikibaseQualityConstraint
 * - Update Wikibase: SearchEntities return 'aliases' when not same as label
 * - Update Wikibase data model
 * - Update Wikibase: Remove alias uniqueness constraints
 * - Update Wikibase, fix EntityParserOutputGenerator
 * - Update Wikibase to fix the SearchEntities api
 * - New deployment branch - wmf/1.26wmf12
 * - Update Wikibase: Use SELECT FOR UPDATE in SqlIdGenerator
 * - Update Wikidata - fix property label constraints bug
 * - New deployment branch - wmf/1.26wmf9
 * - Update Wikidata - forward compatibility for usage tracking
 * - wmf/1.26wmf8 build with backports
 * - Update Wikibase: Make wbmergeitems respect the bot parameter
 * - Update Wikidata - fix rdf dump script
 * - New Wikidata deployment build - wmf/1.26wmf6
 * - Update Wikibase - fix bug with Wikibase interaction w/ AbuseFilter
 * - Update Wikidata - fix api error output when parsing values
 * - Update Wikidata, check for schema change in UsageTableUpdater

WikidataPageBanner

 * Newly deployed extension

WikimediaEvents

 * - statsd: Don't allow indefinite post-poning of dispatch
 * - Add support for statsd gauge metrics
 * - Restore dependency on mediawiki.Uri
 * - Merge ext.wikimediaEvents.search module with ext.wikimediaEvents
 * - Merge ext.wikimediaEvents.statsd module with ext.wikimediaEvents
 * - Update CompletionSuggestion bucket selection
 * - More reliable handling of WMA and WIWOSM buttons
 * - A/B test for experimental suggestions api
 * - statsd: Add missing schedule call to the 'counter' listener
 * - Bump Schema:Edit to revision 13457736
 * - V2 of user satisfaction test for search
 * - Measure usage of Special:Search did you mean
 * - Remove 'wgPoweredBy' config var
 * - Fix middle button check
 * - Track interaction with WMA and WIWOSM maps
 * - Restore the ability to open GeoHack in a new tab
 * - Fix race condition in WMA tracking
 * - Count log events in the authmanager channel
 * - Increase search sampling from 1 in 1000 to 1 in 200
 * - Track Wikivoyage maps usage
 * - Make WikimediaEventsHooks::onSpecialSearchResults static
 * - Typo fix for I5240017
 * - Add community health stats for editor milestones
 * - Enable TestSearchSatisfaction schema for anon users
 * - Remove HTTPS support detection; obsolete now that we're HTTPS-only
 * - Track geo feature usage
 * - Deactivate the HHVM tag
 * - build: Configure banana-checker and jsonlint
 * - Remove removed messages from i18n/qqq.json
 * - Measure bounce rate and dwell time for search results
 * - Log 'resourceloader.forbidden' events from readers
 * - Log 'resourceloader.forbidden' events with ModuleLoadFailure schema
 * - Add global ext.wikimediaEvents.loggedin and ext.wikimediaEvents
 * - Report time to first edit as `ttfe`
 * - Remove jquery.migrate event handler

WikimediaIncubator

 * - build: Configure banana-checker and jsonlint
 * - Remove i18n shim
 * - Use __DIR__
 * - Fix doc and public should be infront of static
 * - Replace deprecated $wgSpecialPageGroups
 * - Explicitly define module position

WikimediaMaintenance

 * - Revert &quot;Remove old be-tarask -&gt; be-x-old alias&quot;
 * - dumpInterwiki: Set links in beta to beta hostnames rather than prod
 * - Remove old be-tarask -&gt; be-x-old alias
 * - Renamed $wmf* to $wmg* for consistency
 * - Add globals for wmgAddWikiNotify, wgPasswordSender
 * - dumpInterwiki: Get interwiki map via HTTPS
 * - Automatically populate sites table when creating a wiki
 * - dumpInterwiki: Add 'cn' =&gt; 'zh' to $languageOverrides
 * - Revert rSVN69553 and improve - notifyNewProjects deferred email madness
 * - Fix defaultbranch
 * - Try to make addWiki a little more sane
 * - Add wikibase usage tracking table for new wikis
 * - Remove interwiki replacement SQL files
 * - Fix Echo and extension1 creation in addWiki.php
 * - Remove undeployed extension's schema
 * - renameInvalidUsernames: Don't try to check if username is valid
 * - Script to rename users with invalid usernames and make them global accounts
 * - Stop creating Oversight tables.

WikimediaMessages

 * - Adding oversight-related messages until group is renamed everywhere
 * - Correct Belarusian grammar forms
 * - Correct Belarusian grammar forms
 * - Change &quot;Wikimedia store&quot; to &quot;Wikipedia store&quot;
 * - Delete messages of removed groups
 * - Wikimedia-specific error message for OAuth error E008
 * - Remove coder group messages and add wmf-officeit group messages
 * - Change &quot;Wikimedia Shop&quot; to &quot;Wikimedia store&quot;
 * - Refer to correct message in wikimedia-flow-terms-of-use-summarize
 * - Add i18n messages for 'mover' user group
 * - Flow: Fix to use up to date keys and point to right messages
 * - modules: Add position=top to style module
 * - Fix incorrect args for hook EditPageCopyrightWarning
 * - Update AffCom ContactPage messages per AffCom request
 * - Remove double line break from the end of a line
 * - Update ExtensionDistributor messages, 1.25 is stable, add 1.26 messages
 * - Re-do: Move hooks from closure to a hooks file
 * - Add explicit GENDER support to wikimedia-globalrenamequeue-email-body-*
 * - Revert &quot;Move hooks from closure to a hooks file&quot;
 * - Move hooks from closure to a hooks file
 * - Update contactpage-affcom-user-group-rules-label per request
 * - Fix some contact page messages
 * - Globalrenamequeue-email-body-rejected: add $3
 * - Add RL module for meta:Special:Contact/affcomusergroup
 * - More ContactPage messages for affcom user group form

XAnalytics

 * - build: Configure banana-checker and jsonlint

ZeroBanner

 * - Interstitial design overhaul for DTAC
 * - Implemented per-partner exit warnings
 * - Check wgLocalVirtualHosts instead of just $wgConf-&gt;isLocalVHost
 * - Escape text when calling image magik's covert
 * - build: Configure banana-checker and jsonlint
 * - Replace deprecated $wgSpecialPageGroups
 * - Remove mobile.stable from dependancie
 * - Explicitly define module position

ZeroPortal

 * - Replace deprecated $wgSpecialPageGroups

cldr

 * - Add Livvi-Karelian names
 * - Add translations for Cham languages
 * - Add translations for Jinyu (cjy)
 * - Add translations for Laki language
 * - Add translations for the name of Dari language
 * - Fix Balochi language names
 * - build: Updating development dependencies
 * - test: Configuring banana-checker for i18n messages
 * - Fix Luri names
 * - Add translations for Shawiya language
 * - Remove unused variants of Goan Konkani
 * - Add translations for the name of Maharashtrian Konkani language
 * - Add translations for Southern Luri
 * - Add translations for Northern Luri
 * - Cleanup already existing names
 * - Update version

intersection

 * - ignoresubpages parameter
 * - build: Configure banana-checker and jsonlint
 * - Fix class name oversight in that last commit
 * - Move global functions into static class in separate file
 * - Remove i18n shim and remove $dir

timeline

 * - build: Configure banana-checker and jsonlint

wikihiero

 * - VisualEditor: Make icon slight bolder for consistency
 * - build: Add grunt-banana-checker
 * - README: Move history out into its own file
 * - build: Add grunt linting tasks via npm
 * - Rename modules/VisualEditor to modules/ve-wikihiero
 * - Invalidate parser cache entries generated prior to I5a0c4cbcb
 * - Only load ext.wikihiero styles if page contains hieroglyphics
 * - Replace deprecated $wgSpecialPageGroups

CologneBlue

 * - Remove use of deprecated wfRunHooks
 * - build: Configure banana-checker and jsonlint
 * - Add @metadata block to en.json
 * - Set manifest_version in skin.json
 * - Explicitly define module position

Modern

 * - build: Configure banana-checker and jsonlint
 * - Add @metadata block to en.json
 * - Set manifest_version in skin.json
 * - Explicitly define module position
 * - Add skin.json, empty PHP entry point

MonoBook

 * - Remove useless padding-on-hover rule
 * - Avoid overlap of personal menu with the logo
 * - Remove background: none from #p-personal li a rule
 * - Remove use of deprecated wfRunHooks
 * - Use canonical theme name case for SkinOOUIThemes
 * - build: Configure banana-checker and jsonlint
 * - Don't output an empty h1 element (once more, with feeling)
 * - Display the page title on pages named '0'
 * - Set manifest_version in skin.json
 * - Use the &quot;Apex&quot; OOjs UI theme
 * - Don't output an empty h1 element
 * - Explicitly define module position

Nostalgia

 * - Prefix newmessageslink and newmessagesdifflink messages with skin name
 * - Update qqq.json messages
 * - build: Configure banana-checker and jsonlint
 * - Set manifest_version in skin.json
 * - Use proper spdx license identifier for GPL 2.0 or later
 * - Convert i18n/en.json to use tabs instead of spaces
 * - Add missing 'newmessageslink' and 'newmessagesdifflink' messages
 * - Add skin.json, empty PHP entry point
 * - Remove i18n shim
 * - Use remoteSkinPath

Vector

 * - Use underscore hack to set IE6-only style, rather than `!ie`
 * - Add missing semicolon to import stmt
 * - Remove en-gb.json file
 * - build: Bump grunt-contrib-jshint from 0.11.2 to 0.11.3 to fix upstream issue
 * - collapsibleTabs: Don't mix Arrays and jQuery objects for one property
 * - Apply personal bar z-index hack to modal OOUI window managers
 * - Use body instead of .mediawiki to increase CSS selector specificity
 * - Style for notification types
 * - Unbreak styles for installer
 * - Don't use core config in Vector skin
 * - Fix viewport argument value to use commas
 * - Make Vector more responsive
 * - More-menu needs to overlap indicators
 * - build: Move config to phpcs.xml and require php 5.3.3
 * - Update mediawiki codesniffer to 0.3.0
 * - build: Configure jshint, jsonlint, banan-checker &amp; jscs
 * - Don't autoload Vector.php using composer.json
 * - Don't output an empty h1 element (once more, with feeling)
 * - Removing obsolete `-moz-inline-block` property
 * - Display the page title on pages named '0'
 * - Remove superfluous whitespace from HTML output
 * - Support 'rel' attributes in namespace navigation elements
 * - Run phplint and phpcs through &quot;composer test&quot; entry point
 * - Trying to clean this up a bit
 * - Set manifest_version in skin.json
 * - jquery.ui.button.css: Remove '-ms-linear-gradient'
 * - Minor header fixes for Typography Refresh
 * - Don't output an empty h1 element
 * - Explicitly define module position
 * - Skin styles for mediawiki.notification should not be overriden
 * - Add skin.json, deprecate and empty PHP entry point
 * - wfRunHooks -&gt; Hooks::run