MediaWiki 1.40/wmf.21/Changelog

Core changes

 * - Branch commit for wmf/1.40.0-wmf.21 by trainbranchbot
 * - SpecialRevisionDelete: Set default of '' for wpReason by Reedy
 * - maintenance: Remove PopulateArchiveRevId and DeduplicateArchiveRevId by Umherirrender
 * - rdbms: Simplify how 'laggedReplicaMode' is set by Timo Tijhof
 * - rdbms: Remove getLaggedReplicaMode in favour of laggedReplicaUsed  by Timo Tijhof
 * - rdbms: Remove "read-only primary" and restore "short cache" in lagged mode by Timo Tijhof
 * - skins: Migrate SkinComponentLastModified to laggedReplicaUsed by Aaron Schulz
 * - Special:Preferences fix production JS error by jsn
 * - rest: forward query parameters to redirects by msantos
 * - Language: Use mb_strcut in truncateForDatabase by Func
 * - Replace some use of Language::truncateForDatabase with mb_strcut  by Func
 * - MaintenanceRunner: Split up findScriptClass by Kevin Israel
 * - page: Do not show "change visibility" button for foreign files by Umherirrender
 * - Pass empty string to strlen if schema is null for PostgresDatabase by Dreamy Jazz
 * - Add namespaces in Farefare (gur) by Amir E. Aharoni
 * - Remove BotPassword summary from alterForm by BrandonXLF
 * - Maintenance: Add support for documenting multi-args by daniel
 * - Update Italian translation of (no)index magic words (adding NONINDICIZZARE and INDICIZZARE) by Superpes15
 * - Hard-deprecate Language::fetchLanguageNames/fetchLanguageName by Umherirrender
 * - Hard-deprecate Language::isSupportedLanguage/isValid(BuiltIn)Code by Umherirrender
 * - specials: Change type documention to UserIdentity on Special:UserRights by Umherirrender
 * - Implement Bcp47Code in Language class by C. Scott Ananian
 * - Move LinksMigrationTest to proper subdirectory by C. Scott Ananian
 * - ClientHtml: Fix use of ${var} string interpolation by Reedy
 * - Move LanguageTest unit test to proper subdirectory by C. Scott Ananian
 * - Move Parsoid-related unit tests to proper subdirectory by C. Scott Ananian
 * - Maintenance: find file by name in maintenance dir by daniel
 * - parser: Use LinkBatchFactory to create LinkBatch objects by Umherirrender
 * - maintenance: Cleanup purgeExpiredBlocks.php file header and `@ingroup` by Timo Tijhof
 * - Special:Preferences: fix "Save" button regression by jsn
 * - ClassicInterwikiLookupTest: Avoid usage of deprecated wfGetDB by Derick Alangi
 * - interwiki: Inject wikiId into ClassicInterwikiLookup by Derick Alangi
 * - deferred: Make use of ServiceOptions by Derick Alangi
 * - json: Dont try to deserialize actual user-land instances by thiemowmde
 * - Clean up old ICU version checks by Kevin Israel
 * - Replace more usages of MWException by Daimona Eaytoy
 * - Replace some usages of MWException by Daimona Eaytoy
 * - Generate TOC HTML on demand in ParserOutput::getText by C. Scott Ananian
 * - Fix padding of galleries by Bartosz Dziewoński
 * - rcfilters: Fix icon alignment in "Save current filter settings" by Bartosz Dziewoński
 * - rcfilters: Fix alignment of "How do these work?" buttons by Bartosz Dziewoński
 * - Update systemblockedtext variable with a full stop by AnaïsGueyte
 * - Avoid deprecated usage of `Job::factory` by Derick Alangi
 * - Add linebreaks after by Amir E. Aharoni
 * - rdbms: Simplify $options argument in commitPrimaryChanges and more by Amir Sarabadani
 * - Running maintenance scripts is now done with the `run.php` script by Derick Alangi
 * - cache: Deduplicate RESTBagOStuff error logs by Gergő Tisza
 * - ResourceLoader: Follow-up to adding ResourceLoaderClientPreferences by Timo Tijhof
 * - ResourceLoader: Basic client side user preferences by Jon Robson
 * - SiteConfig: Transition away from hardcoded Cite info by Subramanya Sastry
 * - API i18n: Add NaN undefineds for byte count messages by James D. Forrester
 * - Simplify PermissionManagerTest logic by DannyS712
 * - Add missing php extension ext-exif as suggested by Derk-Jan Hartman
 * - Separate skin data for copyright and last modified by Jon Robson
 * - Correct some uses of "who's" to "whose" in documentation by Thalia
 * - mediawiki.user: Add methods for isNamed and isTemp by Kosta Harlan
 * - Parsoid: cache warming job: add render reason by daniel
 * - Maintenance: improve option help by daniel
 * - Add Parser::msg helper for messages from extensions or parser functions by C. Scott Ananian
 * - Parsoid: trigger cache warming on page view by daniel
 * - rdbms: Drop waitTimeout and maxLag from ctor params of LB/LBF by Amir Sarabadani
 * - UserTimeCorrection: Validate time offsets in 'Offset|…' format by Bartosz Dziewoński
 * - apisandbox: Fix showing 'info' labels (PARAM_HELP_MSG_INFO) by Bartosz Dziewoński
 * - Rest: Check for the correct header when setting cache-control by Alexander Vorwerk
 * - Break down block error messages for clarity and better maintenance by AnaïsGueyte
 * - Hard-deprecate Language::getFallbackFor/getFallbacksFor by Umherirrender
 * - Hard-deprecate Language::get(Json)(Messages)FileName by Umherirrender
 * - Parser: Fix and update a few parser related PHPDoc type hints by thiemowmde
 * - Installer: Don't tell people they're using Intl by James D. Forrester
 * - Change $wgLang to use Message::*Param functions by Umherirrender

Vendor

 * - Bump wikimedia/parsoid to 0.17.0-a13      by C. Scott Ananian
 * - Add swaggest/json-diff:3.10.4 for Wikibase REST API by Ollie Shotton

AbuseFilter

 * - Add styles to display zero contributions link in red by Matěj Suchánek

Babel

 * - Minor code cleanup by Reedy
 * - Allow babel categories to autocreate using templates by Perry Olum
 * - Update minimum PHP version to 7.4 as per MLEB policy by Abijeet

BetaFeatures

 * - Replace wgBetaFeaturesWhitelist with wgBetaFeaturesAllowList by James D. Forrester

CentralAuth

 * - Use User::newSystemUser for 'Global rename script' by Umherirrender
 * - maintenance: Convert DB selects to use SelectQueryBuilder (part 2) by Alexander Vorwerk
 * - maintenance: Convert DB selects to use SelectQueryBuilder (part 1) by Alexander Vorwerk
 * - Use JobFactory by Taavi Väänänen

CheckUser

 * - Add cul_target_text and cul_target_id from cu_log to rename user hook by Dreamy Jazz
 * - Make some small improvements to TemporaryAccountHandler by Thalia
 * - Drop default value from cul_actor by Alexander Vorwerk
 * - Add support to turn off write old for cu_log reason migration by Dreamy Jazz
 * - Specify default for cul_reason to support turning off write old by Dreamy Jazz
 * - Add write new support for cuc_comment_id migration by Alexander Vorwerk
 * - styles: Replace deprecated mixins prefix styles by Wandji69
 * - Rest: Make TemporaryAccountHandler query work with Postgres by Ammarpad
 * - Drop cul_user and cul_user_text from cu_log by Alexander Vorwerk
 * - Add API endpoint for temp account IP addresses, given revision IDs by Thalia
 * - Address some test failures when using a postgres database by Dreamy Jazz
 * - Import CheckUserHelper.js into the extension with major modifications by dreamyjazz
 * - Add API endpoint for finding IP addresses used by a temporary account by Thalia
 * - Add write new support for cuc_actor migration by Alexander Vorwerk
 * - Use already existing $services over getting new instance by Dreamy Jazz
 * - moveLogEntriesFromCuChanges: check for read stage by Alexander Vorwerk

CirrusSearch

 * - Unpack Bulgarian, Lithuanian, Persian Analyzers by tjones
 * - Unpack Armenian, Latvian, Hungarian Analyzers by tjones

Collection

 * - Replace deprecated HTMLForm::setFooterText by Umherirrender

ConfirmEdit

 * - Replace deprecated HTMLForm::addFooterText by Umherirrender

ContentTranslation

 * - styles: Replace deprecated Less mixins by Wandji69
 * - CX: Move "findByPublishedTitle" method to TranslationStore by NikG
 * - SX recent translation entrypoint: Fix query to use proper page title by NikG
 * - SX: Fix MT parallel corpora to always use the correct MT service by NikG
 * - SX: Support deletion of draft section translations by NikG
 * - SX API: Fix summary for "cxpublishsection" action by NikG
 * - SX Translation model: Fix wrong target title initialization by NikG
 * - SX: Create TranslationStore service and use it where needed by NikG

DiscussionTools

 * - Don't rely on ParserOutput::getTOCHTML to determine if ToC is present by C. Scott Ananian
 * - ApiDiscussionToolsEdit: Unwrap Parsoid sections before parsing by Bartosz Dziewoński
 * - Temporarily disable failing test by Bartosz Dziewoński

DonationInterface

 * - Handle card submission in DLocal in DonationInterface by Damilare Adedoyin
 * - Switch SE forms to Adyen by Elliott Eggleston
 * - Add CZ for Adyen by cstone
 * - Fix accidental assumption about CheckoutStatus by Elliott Eggleston
 * - Split full_name for use in minfraud queries by Elliott Eggleston
 * - Ingenico: get name from iframe, not our field by Elliott Eggleston
 * - Update smash-pig dependency and own version by Elliott Eggleston
 * - Handle errors from DLocal SmartForms by Damilare Adedoyin
 * - Use addGatewaySpecificResources for dlocal by Elliott Eggleston

Echo

 * - Hooks: Check if user is still registered by Kosta Harlan
 * - Test ServiceWiring.php by Dreamy Jazz
 * - Change edit count thanks notification link to diff by lectrician1

EntitySchema

 * - Replace deprecated ContentHandler::getForModelID by Umherirrender

EventBus

 * - page_change event - remove comment_html field  by Ottomata
 * - Start using maxWriteDuration argument by Amir Sarabadani
 * - Remove maxWriteDuration temporary by Amir Sarabadani

ExternalGuidance

 * - Reverse key-value for subdomain-migrated language code by Winston Sung

FileImporter

 * - Remove obsolete, backwards-compatible constructor signature by thiemowmde
 * - More compact @var class property documentation by thiemowmde

Flow

 * - Use $row->type if it exists as $row->cuc_type won't be set soon by Dreamy Jazz
 * - Update for CheckUser comment migration by Alexander Vorwerk
 * - RecentChangeFactory: Always set 'changed' for pageStatus by Kosta Harlan
 * - Add a user right to control editing flow topic titles of other user's posts. by Brian Wolff

GlobalBlocking

 * - Fix incomplete type hints when User can be null by thiemowmde
 * - Do not show expired blocks in API by Matěj Suchánek

GlobalUserPage

 * - Support new style of table of contents by Bartosz Dziewoński

Graph

 * - Update mw-graph-shared to latest version by Derk-Jan Hartman

GrowthExperiments

 * - SECURITY: Do not include edits with revdeleted user in NewImpact by Gergő Tisza
 * - SpecialEditGrowthConfig: Give grep a chance to find message usages by Martin Urbanec
 * - [i18n] Delete few unused messages by Martin Urbanec
 * - User impact: add graceful fallback for browsers without Intl by Sergio Gimeno
 * - ImpactHooks: Remove unused DBLoadBalancer injection by Kosta Harlan
 * - Rename SpecialQuitMentorshipStructured by Martin Urbanec
 * - Remove wikitext mentor provider by Martin Urbanec
 * - Process more articles when fetching page view data by Kosta Harlan
 * - SpecialCreateAccount: Make it possible to force mentor via ?forceMentor by Martin Urbanec
 * - selenium: Throw error if inserting link recommendation fails by Kosta Harlan
 * - Adjust script paths for use with run.php by daniel
 * - User impact: amend incorrect parameter for the single day streak text by Sergio Gimeno
 * - Remove more @var declarations by Kosta Harlan
 * - Declare VisualEditor a hard dependency by Martin Urbanec
 * - ChangeMentor: If mentee has mentorship module disabled, enable it by Martin Urbanec
 * - [refactor] Replace @var declarations with PHP typing by Martin Urbanec
 * - Test ScoreCards component by Sergio Gimeno
 * - Suggested edits: show funnel-add icon when the topic match mode is AND by Kayla Morgan
 * - [tests] Rewrite MentorPageMentorManagerTest to not use wikitext provider by Martin Urbanec
 * - selenium: Show onboarding dialog in AddLink by Kosta Harlan

GuidedTour

 * - styles: Replace deprecated Less mixins by Wandji69

IPInfo

 * - IPInfo should return country name translations by tsepothoabala

JsonConfig

 * - Replace deprecated ContentHandler::getForModelID by Umherirrender

Kartographer

 * - tests: Remove unused constructor argument from State by thiemowmde
 * - Make getText/Int/Float return null instead of useless `false` by thiemowmde
 * - Rename tag handlers to "legacy" tag handlers by Isabelle Hurbain-Palatin
 * - Decouple addModules/getTargetLanguage from the legacy Parser by thiemowmde
 * - Rename $cssWidth variable for clarity by thiemowmde
 * - Fix wrong WikitextParser type hints by thiemowmde
 * - Pass $isPreview as parameter to TagHandler::render by thiemowmde
 * - Remove redundant $fullWidth flag in MapFrame class by thiemowmde
 * - Make dynamic preview behave like static map in static mode  by thiemowmde
 * - Fix static draggable check by WMDE-Fisch
 * - Don't renable draggable when map is static by WMDE-Fisch
 * - Decouple code a bit better from actual Language objects by thiemowmde
 * - Nearby: Fix caching of features with no title by thiemowmde
 * - Nearby: Extract mwApi helper method by thiemowmde
 * - Nearby: Tweaks for the cluster behavior by WMDE-Fisch
 * - Additional information about the ExternalData response by Adam Wight
 * - Send event for every ExternalData expansion by Adam Wight

Linter

 * - Fix linter table linter_params definition to not be nullable by sbailey

MassMessage

 * - MassMessage: Remove duplicate page header by Ammarpad

Math

 * - New lookups for tests enabling reference MathML by Stegmujo
 * - Add script to export json with Mathoid/latexml-MML reference by Stegmujo
 * - Add Full-Coverage Test TexVC-MMLGeneration for Mathoid-LateXML by Stegmujo

MediaSearch

 * - styles: Replace deprecated Less mixins with CSS unprefixed property by Wandji69

MobileFrontend

 * - Minor JavaScript code and doc fixes and optimizations by Thiemo Kreuz
 * - build: Re-generate package-lock using modern npm by James D. Forrester
 * - Drop unused MobileFrontend modules by Jon Robson

Newsletter

 * - Replace deprecated HTMLForm::addHeaderText by Umherirrender

PageAssessments

 * - PageAssessments.i18n.alias.php: add alias for ne by MusikAnimal

PageTriage

 * - Add missing apihelp-pagetriageaction-param-tags message by Ayush-Kori
 * - DB: Remove pagetriage_log table references by Kosta Harlan

Phonos

 * - Copy aria-label attr from HTML to JS by Sam Wilson

Popups

 * - Tests: correction to unit test by Jon Robson
 * - Performance: Remove unnecessary requestIdleCallback delay by Jon Robson

ProofreadPage

 * - Improve phrasing of right/action name by Sam Wilson
 * - Add error message when edit fails to save by Sohom

SearchVue

 * - Mobile: Show wiki data description of the article in quick view by Simone Cuomo
 * - Mobile - Search Preview displays errors for title with apostrophe by Simone Cuomo
 * - mobile -Opening Preview search produces error this.$el.querySelectorAll by Simone Cuomo
 * - Allow search preview arrow to be clicked by Simone Cuomo
 * - Uncaught TypeError: this.handleEventTimeout is not a function by Simone Cuomo
 * - Add keyboard navigation to Search Preview by Simone Cuomo
 * - Result without body breaks the SearchVue extension by Simone Cuomo
 * - Mobile quick view doesn't consistently have bouncing effect by Simone Cuomo
 * - Mobile: Show Commons widget in the quick view panel by Simone Cuomo

SecureLinkFixer

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

TemplateSandbox

 * - Restore NewPP limit report in a HTML comment by Bartosz Dziewoński
 * - Replace deprecated ContentHandler functions by Umherirrender

TemplateWizard

 * - Optimize TemplateWizard at tablet and mobile resolutions by Jon Robson
 * - Load ext.TemplateWizard on mobile domain by Jon Robson

TimedMediaHandler

 * - TimedText: Diff previews should show the correct revision by Derk-Jan Hartman

Translate

 * - Update minimum PHP version to 7.4 as per MLEB policy by Abijeet
 * - MessageGroupStats: Small optimization to forEverything by Niklas Laxström

UniversalLanguageSelector

 * - Update jquery.ime and .uls from upstream by Amir E. Aharoni
 * - style: Replace deprecated prefixed mixins with unprefixed CSS property by Wandji69
 * - Update language name search index by Niklas Laxström
 * - Update jquery.uls from upstream by Amir E. Aharoni
 * - Update minimum PHP version to 7.4 as per MLEB policy by Abijeet
 * - Add separate buttons for 'add languages' and language settings menus by NikG

VisualEditor

 * - Update VE core submodule to master (6ed9b00f1) by Bartosz Dziewoński
 * - Revert "Rewrite mw.libs.ve.getTargetDataFromHref with URL API" by Bartosz Dziewoński
 * - Revert "Remove references to mediawiki.Uri" by Bartosz Dziewoński
 * - Doc comment: Replace nbsp with normal space by Ed Sanders
 * - Authors.txt: Remove old reference to fork by Ed Sanders
 * - ve.ui.MWLiveExtensionInspector: Account for this.selectedNode being null in debounced method by Ed Sanders
 * - Fix Wikitext editor preview layout in Vector 2022 by Jan Drewniak

Wikibase

 * - Fix name of the "link to Item" entry in the ULS actions menu registry by NikG
 * - Split wikibase.common into wikibase.alltargets + wikibase.desktop by Lucas Werkmeister
 * - REST: Remove phpcs rule affecting all of Wikibase by sihe
 * - REST: Deduplicate StatementDeserializer test setup by Jakob Warkotsch
 * - Include the current page title in static mapframe image URL by Adam Wight
 * - Add link to Item to make adding sitelinks easier by Michael Große
 * - REST: Refactor WikibaseEntityLookupItemDataRetriever by Ollie Shotton
 * - REST: Remove incorrect @throws annotation by Ollie Shotton
 * - REST: Create UnexpectedErrorHandlerMiddleware factory method by Jakob Warkotsch
 * - Remove (JobQueue)ChangeNotificationSender  by Marius Hoch
 * - Add API integration test for change dispatching by Lucas Werkmeister
 * - RecentChangeSaveHookHandler: Handle (un)deletions by Marius Hoch
 * - Add types and define strict_types in EmtityChange by Michael Große
 * - REST: Remove non read model statement serializer by Jakob Warkotsch
 * - REST: Stop serializing write models in tests by Jakob Warkotsch
 * - REST: Patch serialized read model, not write model by Jakob Warkotsch
 * - REST: Use error log level for unexpected errors by Jakob Warkotsch

WikibaseLexeme

 * - Remove $wgLexemeTalkNamespace option by Lucas Werkmeister

WikidataPageBanner

 * - Fixes lang/dir attributes for banner table of contents by C. Scott Ananian
 * - styles: Replaced deprecated mixins prefixes by Wandji69
 * - Fixes the table of contents in banners by Jon Robson

wikihiero

 * - td specificity to fix override when embedded in another table by malnadach-konkno

WikiLambda

 * - tests: Add initial coverage of ParserHooks by James D. Forrester
 * - ParserHooks: Replace createFunctionCallJSON with new ZFunctionCall by James D. Forrester
 * - Hooks: Split Parser-related hooks to their own file by James D. Forrester
 * - Fixup API tests after orchestrator change by Stef Dunlap
 * - tests: Add coverage for registerExtension and onNamespaceIsMovable by James D. Forrester
 * - Hooks: Drop onCodeEditorGetPageLanguage by James D. Forrester
 * - use inline radio buttons for zBoolean by Julia Kieserman
 * - Update function-schemata sub-module to HEAD (e7af92e) by James D. Forrester
 * - Change styles from package ext.wikilambda.specialpages to ext.wikilambda.edit by gengh
 * - Adapt ZMonolingualString component to fit content and expand by gengh
 * - add debounce to function input by adesoji
 * - Create ZBoolean Component for Default View by Julia Kieserman
 * - Update function-schemata sub-module to HEAD (558872d) by EWright
 * - Fix creating and editing function calls that return types. by EWright
 * - ZObjectStore: Create updateZObjectAsSystemUser to consolidate code by James D. Forrester
 * - Update function-schemata sub-module to HEAD (db3d74a) by James D. Forrester

WikimediaEvents

 * - clientError: Fix error in mw.centralNotice.isBannerShown check by Gergő Tisza

WikimediaMessages

 * - Add messages for Farefare Wikipedia (gurwiki) by gerritbot

Wikistories

 * - Builder: url navigation by Stephane Bisson

MinervaNeue

 * - Don't show download button if there's no window.print by Ammarpad
 * - Blank skin styles for login and create account by Jon Robson

MonoBook

 * - Optimization: use skinStyles to load CSS specific to File: pages + rm unused #login-sectiontip rule by Jack Phoenix

Vector

 * - Add check for activeTopSection in activateSection by bwang
 * - search: Fix unclickable search footer by Roan Kattouw
 * - Enable sticky header on all talk pages by Bartosz Dziewoński
 * - Add missing ID param to VectorComponentMenuListItem constructor by Jan Drewniak
 * - Increase threshold for table of contents collapsing by Jon Robson
 * - Print: Hide table of contents and nav menus in print by Jon Robson
 * - Limited width made persistent for anonymous users by Jon Robson
 * - Account for temporary row in grid template row by bwang
 * - Moves feature classes from BODY element to HTML element by Jon Robson
 * - Disable headless puppeteer for a11y testing by bwang
 * - Make sticky header edit the default by Jon Robson
 * - Define grid template row for .mw-body grid container to ensure the grid cell containing the content will expand in height when needed by bwang
 * - Add temporary extra grid-area for content translation extension by Jan Drewniak
 * - Fix grid blowout with limited width turned off by bwang
 * - Remove VectorComponentTableOfContentsContainer in favor of directly using VectorComponentPinnableContainer, by bwang

VisualEditor/VisualEditor

 * - Update papaparse to 5.3.2 by Ed Sanders
 * - ve.ui.CommandHelpDialog: Move populating of dialog to getSetupProcess by Ed Sanders
 * - Minor fixes to AUTHORS.txt by Ed Sanders

No changes

 * 3D
 * ActiveAbstract
 * AdvancedSearch
 * AntiSpoof
 * ApiFeatureUsage
 * ArticleCreationWorkflow
 * ArticlePlaceholder
 * BounceHandler
 * Calendar
 * CampaignEvents
 * Campaigns
 * Capiunto
 * CategoryTree
 * CentralNotice
 * CharInsert
 * ChessBrowser
 * Cite
 * CiteThisPage
 * Citoid
 * CodeEditor
 * CodeMirror
 * Cognate
 * CologneBlue
 * CommonsMetadata
 * ContactPage
 * CreditsSource
 * Dashiki
 * Disambiguator
 * DismissableSiteNotice
 * DoubleWiki
 * Elastica
 * ElectronPdfService
 * EventLogging
 * EventStreamConfig
 * ExtensionDistributor
 * FeaturedFeeds
 * FileExporter
 * FlaggedRevs
 * FundraiserLandingPage
 * FundraisingTranslateWorkflow
 * GWToolset
 * Gadgets
 * GeoCrumbs
 * GeoData
 * GlobalCssJs
 * GlobalPreferences
 * GlobalUsage
 * GlobalWatchlist
 * GoogleNewsSitemap
 * ImageMap
 * ImageSuggestions
 * InputBox
 * Insider
 * Interwiki
 * InterwikiSorting
 * Josa
 * LabeledSectionTransclusion
 * LandingCheck
 * LdapAuthentication
 * LiquidThreads
 * Listings
 * LoginNotify
 * MachineVision
 * MapSources
 * MediaModeration
 * MobileApp
 * Modern
 * MultimediaViewer
 * NavigationTiming
 * NearbyPages
 * NewUserMessage
 * Nostalgia
 * Nuke
 * OATHAuth
 * OAuth
 * OAuthRateLimiter
 * ORES
 * OpenStackManager
 * PageImages
 * PageNotice
 * PageViewInfo
 * PagedTiffHandler
 * ParserFunctions
 * PdfHandler
 * Poem
 * PropertySuggester
 * QuickSurveys
 * Quiz
 * RSS
 * ReadingLists
 * RelatedArticles
 * Renameuser
 * RevisionSlider
 * SandboxLink
 * Score
 * Scribunto
 * SearchExtraNS
 * SecurePoll
 * ShortUrl
 * SimilarEditors
 * SiteMatrix
 * SpamBlacklist
 * StopForumSpam
 * SubPageList3
 * SubpageSortkey
 * SyntaxHighlight_GeSHi
 * TemplateData
 * TemplateStyles
 * TextExtracts
 * Thanks
 * TheWikipediaLibrary
 * Timeless
 * TitleBlacklist
 * TocTree
 * TorBlock
 * TranslationNotifications
 * TrustedXFF
 * TwoColConflict
 * UploadWizard
 * UploadsLink
 * UrlShortener
 * VipsScaler
 * VueTest
 * WebAuthn
 * WikiEditor
 * WikiLove
 * WikibaseCirrusSearch
 * WikibaseLexemeCirrusSearch
 * WikibaseMediaInfo
 * WikibaseQualityConstraints
 * Wikidata.org
 * WikimediaApiPortal
 * WikimediaApiPortalOAuth
 * WikimediaBadges
 * WikimediaEditorTasks
 * WikimediaIncubator
 * WikimediaMaintenance
 * Wikisource
 * XAnalytics
 * cldr
 * intersection
 * timeline

Total changes
289 Changes in 58 repos by 82 authors