MediaWiki 1.42/wmf.1/Changelog

Core changes

 * - Branch commit for wmf/1.42.0-wmf.1 by trainbranchbot
 * - MockAuthorityTrait: Move helper methods from UserAuthorityTest into trait by Kosta Harlan
 * - Extract methods in DefaultOutputTransform by Isabelle Hurbain-Palatin
 * - Refactor ParserOutput::getText into DefaultOutputTransform service by Isabelle Hurbain-Palatin
 * - Remove meaningless /** #@- */ comments by thiemowmde
 * - Follow-up I545354e8c: Add tests for mw.hook early registration by Ed Sanders
 * - maintenance: Return false rather than silently continue on corrupted legacy blobs by James D. Forrester
 * - Use the expression assignment operator to simplify code by Umherirrender
 * - Make ParsoidOutputAccess a wrapper over ParserOutputAccess by Subramanya Sastry
 * - diff: add help message to inline switch by hmonroy
 * - mw.hook: Register handlers before running from memory by Ed Sanders
 * - Revert "Remove allowances for missing `redirect` rows" by Bartosz Dziewoński
 * - Use getServiceContainer in maintenance by Fomafix
 * - Edit recovery: Don't save until form field is modified by Ed Sanders
 * - ServiceWiring: Fix unusual line breaks by Bartosz Dziewoński
 * - jquery.tablesorter: Fix data-sort-type with numeric values by Bartosz Dziewoński
 * - Maintenance: use getServiceContainer method by daniel
 * - ResourceLoader: Update wikimedia/minify to 2.5.1 by Timo Tijhof
 * - RollbackPage: rate limit checks are now implicit by daniel
 * - Diff: Skins should be able to determine whether they present no comment by Jon Robson
 * - api: add missing help URLs that exist on mw.org by Aaron Schulz
 * - ParserOutput::hasTOCHTML: Remove old back-compat code  by C. Scott Ananian
 * - specials: Use the new page name for comment formatting by Umherirrender
 * - Update Codex from v0.20.0 to v1.0.0-rc.1       by lwatson
 * - Mention implicit group exception in apihelp-query+allusers-param-group by Aaron Schulz
 * - Remove Block cache from User by Tim Starling
 * - Add cache to BlockManager by Tim Starling
 * - Improve the readability of test code by making the BlockActionInfo::ACTION_* constants public+internal by Tim Starling
 * - specials: Use correct title in NewPagesPager by Lucas Werkmeister
 * - ApiBase: Make sure that requirePostedParameters implies mustBePosted by Bartosz Dziewoński
 * - ApiSandbox: Only use POST and multipart/form-data when necessary by Bartosz Dziewoński
 * - SearchSuggestionSet: update pageMap when shrinking by David Causse
 * - PurgeAction: Properly report rate limiting by daniel
 * - dumpLinks: Add support for pagelinks read new by Amir Sarabadani
 * - rcfilters: Improve some uses of mw.message by Bartosz Dziewoński
 * - ActionFactory: don't choke on special pages by daniel
 * - wvui: Remove unused empty files by Lucas Werkmeister
 * - es6-polyfills: Remove unused skip-es6-polyfills.js by Lucas Werkmeister
 * - typo fixes in inline docs for logger spi module by Ariel T. Glenn
 * - Add CompositeBlock::createFromBlocks by Gergő Tisza
 * - recentchanges: Clarify filter wording for account creations by EpicPupper
 * - db: Allow describing table creation via abstract schema change by Gergő Tisza
 * - Update wikimedia/parsoid to 0.19 series for MW 1.42 by C. Scott Ananian
 * - parser: Improve PHPDoc type hints in MagicWord… classes by thiemowmde
 * - Use IReadableDatabase over IDatabase in DatabaseLogEntry::newFromId by Dreamy Jazz
 * - DifferenceEngine: Separate previous/next from diff itself by Jon Robson
 * - SpecialWantedPages: Support READ_NEW for pagelinks by Amir Sarabadani
 * - Tweak assertions in RevisionHTMLHandlerTest for clarity by Subramanya Sastry
 * - LinkFilter::makeIndexes: Don't explode if the 'host' key is missing for news:// by James D. Forrester
 * - Turn the "purge" permission into an implicit right. by daniel
 * - diffs: add line number headings to inline diffs by MusikAnimal
 * - Prepare active branch following REL1_41 cut, labelling as 1.42-alpha by James D. Forrester
 * - Title: Simplify Title::newMainPage by Ammarpad
 * - Convert numerous DB queries to use QueryBuilders by Reedy
 * - Use Authority in thumb.php by daniel
 * - Parser: Remove misplaced + in regular expression by thiemowmde
 * - DifferenceEngine: Comments on diff page should be themeable by Jon Robson
 * - DifferenceEngine: Make timestamps data readable by Jon Robson
 * - Remove allowances for missing `redirect` rows by Bartosz Dziewoński
 * - Remove allowances for nullable `rd_interwiki` and `rd_fragment` by Bartosz Dziewoński
 * - Simplify and compact code in ApiQuerySiteinfo class by thiemowmde
 * - upload: Log all filebackend errors in UploadFromChunks by Umherirrender

Vendor

 * - Bump wikimedia/parsoid to 0.19.0-a2    by Arlo Breault
 * - Add wikimedia/json-codec 2.2.1  by C. Scott Ananian
 * - Update wikimedia/minify to 2.5.1 by Timo Tijhof
 * - Update wikimedia/parsoid to 0.19.0-a1 for MW 1.42 by C. Scott Ananian
 * - Rebuild composer files by C. Scott Ananian
 * - .gitignore: Update exclusions and rebuild composer files by Reedy
 * - Upgrading dasprid/enum (1.0.4 => 1.0.5) by Reedy

AbuseFilter

 * - Use the expression assignment operator to simplify code by Umherirrender

ActiveAbstract

 * - Simplify catch by using multi catch syntax by Umherirrender

AdvancedSearch

 * - Vertically align the search labels and preview pills by Adam Wight

AntiSpoof

 * - Use normal localisation message for username conflict error by Bartosz Dziewoński

Babel

 * - Use the expression assignment operator to simplify code by Umherirrender

BetaFeatures

 * - Inject service HookContainer into class ApiQueryBetaFeatures by Fomafix

CampaignEvents

 * - Show non PII data on scrolling by Claudio Melo
 * - Return non PII answers on ListParticipants API by Claudio Melo
 * - Adjust min dates in the registration form according to the time zone by Daimona Eaytoy
 * - editeventregistration: Move code from index.js to TimeFieldsEnhancer.js by Daimona Eaytoy
 * - Hide "clear form" in registration dialog if the event has no questions by Daimona Eaytoy
 * - Hide retention info in Special:RegisterForEvent if the event has no questions by Daimona Eaytoy
 * - Improve validation of email message by Daimona Eaytoy
 * - Show registration form footer iff participant questions are not enabled by Daimona Eaytoy

CentralAuth

 * - Improve API docs (mainly for centralauthtoken) by Gergő Tisza
 * - Improve central login and autologin documentation by Gergő Tisza
 * - Remove success notification when we can't get autologin response    by Bartosz Dziewoński
 * - Change strncmp to str_starts_with by Bartosz Dziewoński

CheckUser

 * - Use the expression assignment operator to simplify code by Umherirrender
 * - Migrate the extension to use ICP instead of LB/LBF by Amir Sarabadani
 * - In SpecialCheckUserTest don't have the test sysop block themselves by Tim Starling

CirrusSearch

 * - Use the expression assignment operator to simplify code by Umherirrender

Cite

 * - Use the expression assignment operator to simplify code by Umherirrender
 * - Get context directly from $editpage by Fomafix
 * - Remove unnecessary $ callback by Fomafix

cldr

 * - Clean up, remove outdated, useless comments by Raymond
 * - Add language name translations for sr-ec and sr-el by Raymond

CodeMirror

 * - Use $this->getServiceContainer in tests and update class names by Fomafix
 * - Add $wgCodeMirrorConflictingGadgets instead of checking wikEd directly by MusikAnimal
 * - CodeMirror: fix scrollToCaretPosition $.textSelection implementation by MusikAnimal
 * - CodeMirrorWikiEditor: add missing hook and fix reference to textarea by MusikAnimal
 * - CodeMirror6: add new modules, feature flag, and URL query parameter by MusikAnimal

Collection

 * - Use the expression assignment operator to simplify code by Umherirrender

CommonsMetadata

 * - Handle possible null for parentNode by Umherirrender
 * - tests: Add newline between html tag for php8 by Umherirrender

ContentTranslation

 * - CX: Add DTO classes for draft translation payload for desktop editor by NikG
 * - CX contenttranslation list: Add 'translation-corpora-units' usecase by NikG
 * - CX contenttranslation list: Add 'desktop-editor-draft' usecase by NikG
 * - CX Special Page: Use "requireNamedUser" instead of "requireLogin" by NikG
 * - CX contenttranslation list: Move translation unit fetching to method by NikG
 * - Use the expression assignment operator to simplify code by Umherirrender
 * - CX contenttranslation list: Remove "sectiontranslationsonly" parameter by NikG
 * - CX contenttranslation list: Add "usecase" parameter by NikG
 * - Parse html as whole document to avoid encoding issues by Reedy
 * - CX draft fetching: Align response payload with UI needs by NikG
 * - Move "getUsernameAndGender" functionality to UserService by NikG
 * - CX translation init: Transform jquery promises to ES promises by NikG
 * - CX: Move "getConflictingTranslations" to TranslationStore by NikG
 * - CX: Move find method from Translation class to the TranslationStore by NikG
 * - Move static method "findForTranslator" to TranslationStore by NikG
 * - Create UserService and move "getGlobalUserId" method there by NikG

DiscussionTools

 * - Merge ReplyWidget[Plain/Visual] modules by Ed Sanders
 * - CommentFormatterTest: OutputPage returns a User, not UserIdentity by Kosta Harlan
 * - overflow menu: Factor code into its own file by Kosta Harlan
 * - overflow menu: Only show edit button in mobile by Kosta Harlan
 * - OverflowMenus: Don't pass 'editable' data to reply button overflows by Ed Sanders
 * - Support ignoring "mw-notalk" before/after/between comments by Bartosz Dziewoński
 * - Don't clear comment highlight when clicking on another link by Bartosz Dziewoński
 * - Fix truncating multibyte chars in section names by Bartosz Dziewoński
 * - Avoid a Chrome bug causing text to be cut off in topic subject input by Bartosz Dziewoński

DonationInterface

 * - Donation amount in Civi does not match the donation amount received at dLocal by Damilare Adedoyin
 * - Add more error handling and actually send through recurring token by cstone
 * - Add submitPayment api by cstone
 * - Drop WmfFramework::debugLog by Elliott Eggleston
 * - Pass gateway_session_id from playload paymentContextId by wfan

Echo

 * - Use dependency injection in hooks by Siddharth VP

EventBus

 * - Use the expression assignment operator to simplify code by Umherirrender

FileImporter

 * - Allow autocorrection the set correct title by WMDE-Fisch
 * - Codex: Warn about unsaved changes when aborting the workflow by Svantje Lilienthal
 * - First step to add a dynamic UI with Codex by Adam Wight

FlaggedRevs

 * - Update the Parsoid ?useparsoid=1 hook for testing read views by C. Scott Ananian
 * - Use the expression assignment operator to simplify code by Umherirrender
 * - Use options-messages to delay message parsing on Special:Preferences by Umherirrender
 * - build: Fix issues with phan/taint-check by Umherirrender

GeoCrumbs

 * - Use the expression assignment operator to simplify code by Umherirrender

GlobalBlocking

 * - Don't double-escape link contents by Taavi Väänänen

GrowthExperiments

 * - Use the expression assignment operator to simplify code by Umherirrender
 * - LinkRecommendationUpdater: Update $linkRecommendationTaskType declaration by Sam Smith

ImageMap

 * - ParsoidImageMap: use wfMessage to localize description types by Subramanya Sastry
 * - Add a test to verify correct behavior of localized desc types by Subramanya Sastry

IPInfo

 * - Migrate ILoadBalancer to IConnectionProvider and other fixes by Dreamy Jazz

JsonConfig

 * - Make JsonConfig copyright warnings wiki agnostic by MarcoAurelio
 * - Rename `jsonconfig-edit-dialog-error-data-inavlid` by MarcoAurelio
 * - Add missing `jsonconfig-blocked-page-creation` message by MarcoAurelio

Kartographer

 * - Use $this->getServiceContainer in maintenance and tests by Fomafix

Linter

 * - Remove ParserMigration association by Arlo Breault

LiquidThreads

 * - Remove LEFT-TO-RIGHT MARK (U+200E) from comments by Fomafix

MassMessage

 * - Use the expression assignment operator to simplify code by Umherirrender

Math

 * - Use the expression assignment operator to simplify code by Umherirrender
 * - Fix table alignment to left by Stegmujo
 * - Deactivate stretchy attribute in left and right by Stegmujo
 * - Fix issues in MMLmhchemTest with braces and macro longrightleftharpoons by Stegmujo
 * - Add rendering to MathmL visual results to MathMLTest by Stegmujo
 * - Add intbar and intBar to MathML rendering  by Stegmujo

MediaModeration

 * - ModerateExistingFilesHelper: Don't use job queue by default by Kosta Harlan
 * - build: Add quibble.yaml and enable early warning bot feedback by Kosta Harlan

MobileFrontend

 * - Remove wgMFShowEditNotices by Ed Sanders

MultimediaViewer

 * - Use a.mw-file-description to find thumbs by Umherirrender

Newsletter

 * - Use the expression assignment operator to simplify code by Umherirrender

OATHAuth

 * - Fix remaining PHPCS exclusions by Reedy
 * - Various minor cleanup by Reedy
 * - Add myself to the author list by Taavi Väänänen
 * - build: Update mediawiki/mediawiki-codesniffer from 41.0.0 to 42.0.0 by Reedy

OAuth

 * - Use the expression assignment operator to simplify code by Umherirrender
 * - Display owner-only status in ListConsumers by Gergő Tisza
 * - Remove hook CentralAuthAbortCentralAuthToken by Umherirrender
 * - Fix default refresh token expiry by Gergő Tisza
 * - Hide unconfirmed email address in identify/profile endpoint by Gergő Tisza

ORES

 * - Use options-messages to delay message parsing on Special:Preferences by Umherirrender
 * - Migrate away from LB/LBF to ICP by Amir Sarabadani

PageImages

 * - Inject service RepoGroup in APIPropModules by Fomafix
 * - Replace deprecated global function wfGetDB by Fomafix
 * - Inject service RepoGroup in PageImages by Fomafix
 * - Convert PageImages::fetchPageImage to a nonstatic method by Fomafix
 * - Inject services on JobClasses by Fomafix
 * - Use $this->getServiceContainer in maintenance by Fomafix
 * - Use the expression assignment operator to simplify code by Umherirrender

PageTriage

 * - NewPagesFeed: make vue ui the default by jsn
 * - JS modules: move views.list to views.newPagesFeed by jsn
 * - JS modules: rename list to newPagesFeed.vue by jsn
 * - Use the expression assignment operator to simplify code by Umherirrender
 * - build: Remove non-existing folder from phan config by Umherirrender
 * - cleanup a variety of linter and console warnings by jsn
 * - Special:NewPagesFeed Change spacing of list items by jsn
 * - Vue.js Curation Toolbar container  by jsn
 * - Add required params to the template  by MPGuy2824

ParserMigration

 * - Fix very slightly uneven column width by Bartosz Dziewoński
 * - Fix double TOC on Vector 2022 by Bartosz Dziewoński
 * - Update extension.json to manifest_version 2 by C. Scott Ananian
 * - Adds developer tools page "use parsoid by default" checkbox by sbailey

Phonos

 * - Phonos: trim whitespace from label before parsing by MusikAnimal

Popups

 * - mw.popups.isEnabled should always return boolean by Jon Robson

ProofreadPage

 * - Use options-messages to delay message parsing on Special:Preferences by Umherirrender
 * - PageContentHandlerTest: remove assignment to User::$mHideName by Tim Starling

ReportIncident

 * - Fix capitalization of message action-reportincident by Amir E. Aharoni
 * - Remove hard dependency on DiscussionTools by Dreamy Jazz
 * - extension: Define rights and permissions for reportincident by Kosta Harlan
 * - gitignore: Ignore tests/selenium/log by Kosta Harlan
 * - Hooks: Use variable name consistent with DiscussionTools definition by Kosta Harlan
 * - Use Codex icons for flag instead of ResourceLoader by Jon Robson
 * - Fixes Icon is missing in Minerva by Jon Robson
 * - Clear form data if user clicks "I don't want to file a report" by Dreamy Jazz
 * - Define placeholder text for the 'Something else' textbox by Dreamy Jazz

Scribunto

 * - Assign UUIDs to Scribunto errors independent of page parse order   by C. Scott Ananian

SecureLinkFixer

 * - Updating domains.php from Mozilla by SecureLinkFixer updater bot

TimedMediaHandler

 * - Remove message keys which are no longer in use by Derk-Jan Hartman
 * - Update jsdoc to version 4.0.2 by Derk-Jan Hartman
 * - Use injected service RepoGroup in Hooks::isTranscodableTitle by Fomafix
 * - Use $this->getServiceContainer in maintenance and tests by Fomafix
 * - Use the expression assignment operator to simplify code by Umherirrender
 * - Don't try to lock to serialize m3u8 file writes    by Brion Vibber
 * - Vorbis consistency fix for WebM VP8 by Brion Vibber
 * - Comment cleanup by Brion Vibber

TocTree

 * - Combine addModules calls in a private function by Fomafix
 * - Use namespaced classed from MediaWiki 1.41 by Fomafix

Translate

 * - Use the expression assignment operator to simplify code by Umherirrender
 * - Configure and implement stripAnnotationMarkup method by Isabelle Hurbain-Palatin
 * - Add leave redirect option when moving a translatable page by Wangombe
 * - Use SelectQueryBuilder in more places by Niklas Laxström

UrlShortener

 * - Use the expression assignment operator to simplify code by Umherirrender

VueTest

 * - Update Codex to pre-v1.0.0-rc.1 by Eric Gardner

VisualEditor

 * - Gallery image nodes: fall back to alt attributes in container mw-data by David Lynch
 * - Use options-messages to delay message parsing on Special:Preferences by Umherirrender
 * - Update VE core submodule to master (9deab94e2)  by Ed Sanders
 * - Exclude node_modules directories from phpcs by David Lynch
 * - Don't try to update tab text if a custom message is incompatible by Bartosz Dziewoński
 * - Fix handling of 'edit-local' and 'create-local' messages by Bartosz Dziewoński
 * - Change icon for supported skins for section edit links, too by Bartosz Dziewoński
 * - Remove 'VisualEditorTransitionDefault' and AutodisableVisualEditorPref.php by Bartosz Dziewoński

WebAuthn

 * - Various cleanup by Reedy
 * - build: Update mediawiki/mediawiki-codesniffer from 41.0.0 to 42.0.0 by Reedy

Wikibase

 * - REST: Handle PatchItemAliases request validation errors by Ollie Shotton
 * - REST: Add middlewares to PatchPropertyAliases by Jakob Warkotsch
 * - REST: Check authorization in PatchPropertyAliases by Jakob Warkotsch
 * - REST: Handle patch errors in PatchPropertyAliases by Jakob Warkotsch
 * - REST: Respond 404 if property not found in PatchPropertyAliases by Jakob Warkotsch
 * - REST: Validate patched property aliases by Jakob Warkotsch
 * - Revert "Add hook to invalidate cache entries missing TermboxOption" by Lucas Werkmeister
 * - REST: Add SetPropertyDescription spec tests by muja
 * - REST: Add OpenAPI spec tests for SetPropertyLabel by Silvan
 * - Split parser cache by desktop/mobile by Lucas Werkmeister
 * - REST: Add SetPropertyDescription middlewares by muja
 * - REST: Add middlewares to SetPropertyLabelRouteHandler by Silvan
 * - REST: Add Authorization to SetPropertyLabel by Silvan
 * - REST: Add existence check to SetPropertyLabel by Silvan
 * - REST: Add request validation to SetPropertyLabel by Silvan
 * - REST: Generate edit summaries for PatchItemAliases by Ollie Shotton
 * - REST: Remove redundant assertions in testValidatesPatch by Jakob Warkotsch
 * - REST: Rename ItemAliasesInLanguageValidator to AliasesInLanguageValidator by Jakob Warkotsch
 * - REST: Add Authorization to SetPropertyDescription use case by muja
 * - REST: Replace GetLatestItemRevisionMetadata with AssertItemExists by muja
 * - REST: Property existence check in SetPropertyDescription by muja
 * - REST: Simplify testValidatesPatch response check by Jakob Warkotsch
 * - REST: Generate edit summaries for PatchPropertyAliases by Jakob Warkotsch
 * - REST: Create SetPropertyLabel happy path by Silvan
 * - REST: Handle SetPropertyDescription validation errors by muja
 * - REST: SetPropertyDescription happy path by muja
 * - REST: Validate PatchPropertyAliases requests by Jakob Warkotsch
 * - REST: Extract patch validation e2e tests by Jakob Warkotsch
 * - REST: Add PatchPropertyAliases happy path by Jakob Warkotsch
 * - REST: Implement Patch Item Aliases happy path by Ollie Shotton
 * - REST: Add Labels to Property read model by Silvan
 * - REST: Add PUT property label route to OAS by Silvan
 * - REST: Add Descriptions to Property read model by muja
 * - REST: Create deserializer and validator for aliases by Ollie Shotton
 * - REST: Create validation and deserialization for SetPropertyDescription by muja
 * - REST: Add aliases to Property read model by Jakob Warkotsch
 * - RepoHooks: Adjust Vector's hook return value by Ammarpad
 * - REST: Add "Patch Property Aliases" to OAS by Jakob Warkotsch
 * - REST: Simplify `getModified` in patched term validators by Jakob Warkotsch

WikibaseCirrusSearch

 * - Use the expression assignment operator to simplify code by Umherirrender

WikibaseLexemeCirrusSearch

 * - Use the expression assignment operator to simplify code by Umherirrender

WikibaseQualityConstraints

 * - Bump grunt-banana-checker from 0.11.0 to 0.11.1 by Addbot

WikiLambda

 * - ZObjectContentHandlerTest: Annotate coverage of SecondaryData classes by James D. Forrester
 * - README/etc.: Update instructions for local development to have two evaluator services by James D. Forrester
 * - Pre-fetch language Zids that are referenced by stored labels by gengh
 * - Use the expression assignment operator to simplify code by Umherirrender
 * - build: Upgrade Codex test version to 1.0.0-rc.1 by James D. Forrester
 * - FunctionViewerButtonGroup: Update TODO Task reference to the actual item by James D. Forrester
 * - ZObjectDifferTest: Annotate coverage of DiffMatrix and ZObject*Differ classes by James D. Forrester
 * - Update dev codex version to v0.20.0 and fix tests by gengh
 * - ZObjectStoreTest: Annotate coverage of ZObjectPage class by James D. Forrester
 * - Rewrite labels API and improve ZObjectSelector      by gengh
 * - Use OutputPage::addHeadItem instead of ::addHeadItems by Umherirrender

WikimediaEvents

 * - Introduce Web Accessibility Features and Submodule (attempt 2) by Kimberly Sarabia
 * - Revert "Introduce Web Accessibility Features and Submodule" by Phuedx

WikimediaIncubator

 * - Add Wikifunctions to multilingual sister projects by Jon Harald Søby

WikimediaMaintenance

 * - Use the expression assignment operator to simplify code by Umherirrender

WikimediaMessages

 * - Add Wikimedia overrides for the JsonConfig extension by MarcoAurelio

MinervaNeue

 * - Revert "icons: Register 'flag' in the wikimedia icons group" by Jdlrobson
 * - icons: Register 'flag' in the wikimedia icons group by Kosta Harlan

Vector

 * - Add config option to disable Readability survery & minor fixes by Jan Drewniak
 * - Allow user preferences to be overriden by query string parameter by Jon Robson
 * - Vector sticky header dynamic edit icons order by Moh'd Khier Abualruz
 * - Remove cached CSS from vector-sidebar-container-no-toc by bwang
 * - Hook: Create HookRunner and interface for own hook by Ammarpad
 * - Move @font-size-base into mediawiki.skin.variables.less by Jan Drewniak
 * - Fixes Echo skin style for user message bar by Jon Robson
 * - Define stable and internal APIs  by Jon Robson

VisualEditor/VisualEditor

 * - Fragment inspector: Don't apply padding to hidden panels by Ed Sanders
 * - DiffElement: Remove unnecessary duplicate variable by Ed Sanders
 * - Fix logic for unwrapping wrapper paragraphs next to inline nodes by Ed Sanders

No changes

 * 3D
 * ApiFeatureUsage
 * ArticleCreationWorkflow
 * ArticlePlaceholder
 * BounceHandler
 * Calendar
 * Campaigns
 * Capiunto
 * CategoryTree
 * CentralNotice
 * CharInsert
 * ChessBrowser
 * CiteThisPage
 * Citoid
 * CodeEditor
 * Cognate
 * CologneBlue
 * ConfirmEdit
 * ContactPage
 * CreditsSource
 * Dashiki
 * Disambiguator
 * DismissableSiteNotice
 * DoubleWiki
 * Elastica
 * ElectronPdfService
 * EntitySchema
 * EventLogging
 * EventStreamConfig
 * ExtensionDistributor
 * ExternalGuidance
 * FeaturedFeeds
 * FileExporter
 * Flow
 * FundraiserLandingPage
 * FundraisingTranslateWorkflow
 * Gadgets
 * GeoData
 * GlobalCssJs
 * GlobalPreferences
 * GlobalUsage
 * GlobalUserPage
 * GlobalWatchlist
 * GoogleNewsSitemap
 * Graph
 * GuidedTour
 * ImageSuggestions
 * InputBox
 * Insider
 * Interwiki
 * InterwikiSorting
 * Josa
 * LabeledSectionTransclusion
 * LandingCheck
 * LdapAuthentication
 * Listings
 * LoginNotify
 * MachineVision
 * MapSources
 * MediaSearch
 * MobileApp
 * Modern
 * MonoBook
 * NavigationTiming
 * NearbyPages
 * NewUserMessage
 * Nostalgia
 * Nuke
 * OAuthRateLimiter
 * OpenStackManager
 * PageAssessments
 * PageNotice
 * PageViewInfo
 * PagedTiffHandler
 * ParserFunctions
 * PdfHandler
 * Poem
 * PropertySuggester
 * QuickSurveys
 * Quiz
 * RSS
 * ReadingLists
 * RealMe
 * RelatedArticles
 * RevisionSlider
 * SandboxLink
 * Score
 * SearchExtraNS
 * SearchVue
 * SecurePoll
 * ShortUrl
 * SimilarEditors
 * SiteMatrix
 * SpamBlacklist
 * StopForumSpam
 * SubPageList3
 * SubpageSortkey
 * SyntaxHighlight_GeSHi
 * TemplateData
 * TemplateSandbox
 * TemplateStyles
 * TemplateWizard
 * TextExtracts
 * Thanks
 * TheWikipediaLibrary
 * Timeless
 * TitleBlacklist
 * TorBlock
 * TranslationNotifications
 * TrustedXFF
 * TwoColConflict
 * UniversalLanguageSelector
 * UploadWizard
 * UploadsLink
 * VipsScaler
 * WikiEditor
 * WikiLove
 * WikibaseLexeme
 * WikibaseMediaInfo
 * Wikidata.org
 * WikidataPageBanner
 * WikimediaApiPortal
 * WikimediaApiPortalOAuth
 * WikimediaBadges
 * WikimediaEditorTasks
 * Wikisource
 * Wikistories
 * XAnalytics
 * intersection
 * timeline
 * wikihiero

Total changes
311 Changes in 70 repos by 69 authors
 * 311