MediaWiki 1.41/wmf.5/Changelog

Core changes

 * - Branch commit for wmf/1.41.0-wmf.5 by trainbranchbot
 * - jquery.color: Simplify async test with native async-await by Timo Tijhof
 * - tests: Configure ESLint to permit ES2022 syntax in test suites by Timo Tijhof
 * - Add GENDER support for 'diff-multi-sameuser' by Jon Harald Søby
 * - Live Preview: Show template links for known titles in blue by Ammarpad
 * - Add GENDER support for pageinfo edit history fields by Jon Harald Søby
 * - Revert "Update specialblock target text to use usersmultiselect." by Func
 * - mediawiki.special: Replace 'mediawiki.ui/variables' call with skin vars by Volker E
 * - Revert "Display SVGs in page view language for language variants"  by Func
 * - filebackend: Find thumbnails from all backends in FileBackendMultiWrite by Amir Sarabadani
 * - SpecialEditWatchlist: Don't add duplicate TOC section data by Ammarpad
 * - Add Hook suffix to ParserModifyImageHTMLHook by Umherirrender
 * - Add Hook suffix to GetBlockErrorMessageKeyHook by Umherirrender
 * - ResourceLoader: Tweak startup.js known browsers explanation by Timo Tijhof
 * - mediawiki.experiments: Prefer Object.keys to $.isEmptyObject by Jon Robson
 * - jobs: Migrate Database::select usages to SelectQueryBuilder by Amir Sarabadani
 * - rdbms: Make buildComparison reject non-numeric indices by Lucas Werkmeister
 * - mediawiki.page.watch.ajax: Restore the watchstar also on failed module by Fomafix
 * - rdbms: Add groupConcatMaxLen to setSessionOptions by Lucas Werkmeister
 * - ResourceLoader: Remove Module::getName check before $stats->timing by Timo Tijhof
 * - Eliminate noise while filtering parserTests by Arlo Breault
 * - mediawiki.ui: Import variables used in 'mixins.buttons.less' by Volker E
 * - CalendarWidget: year picker update by jsn
 * - doc: Allow wfTimestampOrNull to take mixed values as timestamps by Umherirrender
 * - build: Cleanup of .phpcs.xml by Umherirrender
 * - mediawiki.util: Simplify parseImageUrl tests using QUnit.test.each by Timo Tijhof
 * - mediawiki.util: Increase isIPv6Address test coverage by Timo Tijhof
 * - mediawiki.util: Improve setOptionsForTest UX and shorten code by Timo Tijhof
 * - jquery.makeCollapsible: Fix double activation when pressing Space by Bartosz Dziewoński
 * - jquery.makeCollapsible: Use instead of , but styled like a link by Bartosz Dziewoński
 * - ResourceLoader: Set module state "error" if request fails on network by Siddharth VP
 * - pager: Various code style and doc cleanups in ImageListPager by thiemowmde
 * - docker-compose: Add MW_DOCKER_PORT explicitly to environment by Bryan Davis
 * - Fix breakages generating TOC for API Help pages by Subramanya Sastry
 * - jobqueue: deprecate JobQueueGroup::deduplicateRootJob by Aaron Schulz
 * - rdbms: Delegate Database object creation to DatabaseFactory out of LB by Amir Sarabadani
 * - Ensure ApiHelp correctly types values in TOCData objects by Subramanya Sastry
 * - Languages: Rename the "Special" namespace in Nias (nia) by Amir E. Aharoni
 * - re-apply "mergeMessageFileList.php: move code out of file scope." by Daniel Kinzler
 * - ConfirmEmail: Show clearer error message on malformed token by Gergő Tisza
 * - rdbms: Drop IDatabase::lastQuery by Amir Sarabadani
 * - Fix preference description wrapping by suecarmol
 * - mime: Deprecate isPHPImageType function in MimeAnalyzer by rrana-wmf
 * - Start relying on IConnectionProvider instead of LB/LBF by Amir Sarabadani
 * - Remove three unused IDatabase::was* methods by Amir Sarabadani
 * - rdbms: Hard-deprecate IDatabase::lastQuery by Amir Sarabadani
 * - ApiComparePages: expose 'difftype' param if wikidiff2 is installed by MusikAnimal
 * - rdbms: Introduce UnionQueryBuilder by Amir Sarabadani
 * - Use user language for printSource wrapper by Brandon Fowler
 * - ParserTestRunner: Additional refactoring and cleanup by Subramanya Sastry
 * - Update Codex from v0.8.0 to v0.9.0        by Eric Gardner
 * - Show title for unknown log actions by BrandonXLF
 * - ParserTestRunner: Ensure knownFailures are updated for skipped tests by Subramanya Sastry
 * - ParserTestRunner: Dedupe runTests code across legacy & Parsoid by Subramanya Sastry
 * - ResourceLoader: Update wikimedia/less.php from 4.0.0 to 4.1.0 by Timo Tijhof
 * - ResourceLoader: Avoid new use of MWException  by Timo Tijhof
 * - ResourceLoader: Add structure test for ResourceLoader::respond by Tim Starling
 * - Improve support for namespace selection by path in Special:NewPages by Pppery
 * - objectcache,resourceloader,rdbms,jobqueue: Widen @covers annotations by Timo Tijhof
 * - Rollback: Properly apply user-provided tags by Ammarpad
 * - rdbms: move DatabaseFactoryTest to unit/ directory by Timo Tijhof
 * - ResourceLoader: Descriptive error for Less imports from codex-design-tokens by Roan Kattouw
 * - Display SVGs in page view language for language variants by Winston Sung
 * - Fix infinite loop for self-redirects with variants conversion by xiplus
 * - build: Update eslint-plugin-qunit to ^7.3.0 by Timo Tijhof

Vendor

 * - Bump parsoid to 0.18.0-a5 by sbailey
 * - Update wikimedia/less.php to 4.1.0 by Timo Tijhof

AbuseFilter

 * - Clean up unused DEMPTY data type by Jean-Luc Hassec

Babel

 * - Remove full stop on babel-autocreate-reason edit summary by MarcoAurelio

CampaignEvents

 * - Fix failing selenium test by Daimona Eaytoy
 * - Upgrade api-testing to 1.6.0 by Daimona Eaytoy
 * - Remove MWAuthorityProxy::getUserIdentity by Daimona Eaytoy
 * - Purge event page cache when event changes or user (un)registers by Daimona Eaytoy

CentralAuth

 * - Update specialPageAliases for Egyptian Arabic (arz) by Meno25

CheckUser

 * - Re-work SpecialBlock.js for UserInputWidget by Thalia
 * - Round seconds to days in message that reports number of seconds in days by Thalia
 * - Create group for assigning checkuser-temporary-account right by tsepothoabala
 * - Show text label when no IPs returned on Special:Block by STran
 * - Improve readability of SpecialBlock.js by Thalia
 * - In Special:Block, hide IP addresses associated with a temporary account, if there are too many by tsepothoabala
 * - Update specialPageAliases for Egyptian Arabic (arz) by Meno25

CirrusSearch

 * - Allow setting of an initial value for search_after by Cormac Parle
 * - Update moved class StubUserLang by gerritbot

Cite

 * - Drop IE CSS hacks by Ed Sanders
 * - Fix wrong "this reference is used twice" in VisualEditor by thiemowmde
 * - Fix broken selector in MWReferenceNode.less by thiemowmde

cldr

 * - Update LocalNamesEn after merge of CLDR 42 by Raymond
 * - Fix translation for "crl" for German by Raymond

ContentTranslation

 * - Translator: Use SelectQueryBuilder, UnionQueryBuilder by Lucas Werkmeister
 * - SX instrumentation: Always take "campaign" URL parameter into account by NikG
 * - SX: Reset current translation, if any, when going back to dashboard by NikG
 * - SX: Restore title too, when restoring draft translations by NikG
 * - SX: Fix TranslatedSegmentCard for page/section titles by NikG
 * - SX draft restoration: Continue translation from where it was stopped by NikG
 * - SX: Change dev server port to vite default port 5173 by Santhosh Thottingal

DiscussionTools

 * - Allow maintenance script to only process pages touched in a time period by Bartosz Dziewoński
 * - Allow maintenance script to work even when DiscussionToolsEnablePermalinksBackend is off by Bartosz Dziewoński
 * - Drop IE11 support by Ed Sanders
 * - Update talk_page_edit logging for IP masking  by Bartosz Dziewoński

DonationInterface

 * - Add a space in a recently updated message by Amir E. Aharoni
 * - Update smashpig to v0.8.4.11 by Damilare Adedoyin
 * - Update Smash-Pig by Elliott Eggleston
 * - Update the PAN field label on the dLocal India recurring form. by wfan
 * - Switch AstroPay to Dlocal in GatewayChooser by Elliott Eggleston
 * - Add ZA message for invalid national ID by Elliott Eggleston

Echo

 * - Drop targets from ext.echo.ui.desktop by Jon Robson
 * - Remove .join( '|' ) for API parameters by Fomafix

Elastica

 * - Don't disable the last connection after http error by Erik Bernhardson

EntitySchema

 * - Set up initial validators for entity-schema data type by Lucas Werkmeister
 * - Fix phpcbf exit code for lint-staged by Lucas Werkmeister
 * - tests: Migrate most Special:NewEntitySchema tests to Cypress by Michael Große
 * - tests: migrate remaining setEntitySchemaLabelDescriptionAliases by Michael Große
 * - tests: trim schema text when asserting it in browser tests by Michael Große
 * - Add EntitySchemaFormatter by Michael Große
 * - build: Add Wikibase PHP files to phan config now it's cloned for us by James D. Forrester
 * - Drop `git add` from lint-staged config by Michael Große

FileImporter

 * - Fix error handling for upload hooks setting MessageSpecifier as error by Umherirrender
 * - Replace ?: with more correct ?? operator by thiemowmde
 * - Minor CSS/LESS tweaks and fixes by thiemowmde
 * - styles: Replace 'mediawiki.ui/variables' call with skin variables by Volker E

FlaggedRevs

 * - Reduce APCu cache use in FlaggableWikiPage::pageData by Lucas Werkmeister

Flow

 * - Update moved class StubUserLang by gerritbot

GlobalUserPage

 * - Don't read 'parse' key blindly, it might not be set by James D. Forrester

GoogleNewsSitemap

 * - Use SelectQueryBuilder + UnionQueryBuilder  by Lucas Werkmeister
 * - Require latest MediaWiki core by Lucas Werkmeister

GrowthExperiments

 * - Frontend documentation: refactor OnboardingStep to named slots by Sergio Gimeno
 * - PersonalizedPraise: Add support for number of Flow topics by Martin Urbanec
 * - Personalized praise: Finalize i18n messages by Martin Urbanec
 * - Personalized praise settings: Include a help text by Martin Urbanec
 * - Improve the grammar of the appreciation message by Amir E. Aharoni
 * - Leveling up: Reword Echo notifications by Gergő Tisza
 * - SuggestedEditSession: Simplify post-edit dialog logic by Gergő Tisza
 * - Frontend documentation: refactor addlinkdialog to use Codex v0.8.0 dialog slots by vyanez

InputBox

 * - styles: Replace 'mediawiki.ui/variables' call with skin variables by gerritbot

IPInfo

 * - styles: Replace 'mediawiki.ui/variables' call with skin variables by gerritbot

JsonConfig

 * - Update moved class StubUserLang by gerritbot

Kartographer

 * - Switch to mediawiki.skin.variables.less variabls where possible by thiemowmde
 * - Use LESS variables in fullscreen map CSS by thiemowmde
 * - Inline/rearrange parsing of geometries in LegacyTagHandler by Isabelle Hurbain-Palatin
 * - Remove spinner ajax-loader.gif by Fomafix

MobileFrontend

 * - styles: Replace 'mediawiki.ui/variables' call with skin variables  by Volker E
 * - Clean up mobile editor initialization checks by Bartosz Dziewoński
 * - Mobile editor: Don't try to take over on non-wikitext content by Bartosz Dziewoński
 * - Mobile editor: Don't try to take over if the form has already been submitted   by Bartosz Dziewoński
 * - Remove ~250ms of unnecessary JS execution by Nicholas Ray

NavigationTiming

 * - Remove FeaturePolicyViolation instrumentation by Timo Tijhof
 * - Remove sending CentralNoticeTiming. by Peter Hedenskog
 * - Add First Input Delay metric by Larissa Gaulia
 * - Navtiming: Collect number of longtask that happens before First Contentful paint by babiola

OAuth

 * - Log additional error details by Gergő Tisza
 * - Hide new consumer notification if it was handled by another admin by Gergő Tisza
 * - Normalize logging of nonce error  by Gergő Tisza

PageTriage

 * - Change DB connections by suecarmol
 * - correct bug in sql/*/tables-generated.sql by Jsn.sherman
 * - make pagetriage_page.ptrp_tags_updated nullable by jsn

Popups

 * - Use native JavaScript for event handling by Jon Robson
 * - styles: Replace 'mediawiki.ui/variables' call with skin variables by gerritbot

QuickSurveys

 * - styles: Replace 'mediawiki.ui/variables' call with skin variables by Volker E

SearchVue

 * - Add conditional ellipses before the snippet in QuickView by Simone Cuomo
 * - Search preview desktop: the spacing around the close button is not consistent by Simone Cuomo

SecureLinkFixer

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

SecurePoll

 * - Update User access to polls by AnaïsGueyte
 * - Fix SecurePoll Logs display by AnaïsGueyte
 * - Fix SQL Error on Voter Details Page by AnaïsGueyte

StopForumSpam

 * - Add additional conditional to account for report-only + non-denylisted IP case by sbassett
 * - Add missing return to onGetUserPermissionsErrorsExpensive hook conditional block by sbassett

SyntaxHighlight_GeSHi

 * - Update Pygments to 2.15.0 by Bryan Davis

TemplateData

 * - Split validation and normalization into separate services by Thiemo Kreuz

TemplateWizard

 * - extension.json: Remove unnecessary targets definitions by TheresNoTime

Translate

 * - Update moved class StubUserLang by gerritbot
 * - ImportTranslationsSpecialPage: Show import form after success message by Abijeet
 * - ImportTranslationsSpecialPage: Update successful import message by Abijeet
 * - JsonFFS::isContentEqual: Allow nullable strings by Abijeet
 * - doc: Declare some properties and arguments as nullable by Umherirrender
 * - Convert timestamps in TranslationStatsDataProvider by Umherirrender
 * - ffs: Return string from SimpleFFS::writeReal implementation by Umherirrender
 * - Adjust type passed to Utilities::getMessageContent/RevisionLookup by Umherirrender
 * - docs: Adjust function and properties docs by Umherirrender
 * - Improve namespace check in PopulateFuzzy by Umherirrender
 * - YamlFFS: Fix readFromVariable method definition to match interface by Abijeet
 * - Move FFS interface to namespace by wangombe
 * - Special:ExportTranslations: EntitySelector to select group by wangombe
 * - entity.selector: Show entity label if multiple entities are configured by Abijeet

TranslationNotifications

 * - Add script to unsubscribe inactive or blocked users by wangombe
 * - TranslatorSignup: Call setHeaderHtml with empty string by Wargo

TrustedXFF

 * - Add WikiMirror by Tim Starling
 * - Generate readable PHP diffs by Tim Starling

UploadWizard

 * - Replace deprecated mediawiki.ui vars by Volker E

VueTest

 * - Reinstate CSS-only button-with-icon examples by Anne Tomasevich

VisualEditor

 * - Stop adding the 'diffmode' parameter to the URL by Bartosz Dziewoński
 * - Update VE core submodule to master (58561f036) by Ed Sanders
 * - Add narrowConfig for 'Insert' and 'Publish changes' by Ed Sanders
 * - ve.ui.MWTemplateTitleInputWidget: Drop workaround for unicode regexes by Ed Sanders
 * - Drop some IE hacks by Ed Sanders

Wikibase

 * - Check null from EntitySourceDefinitions::getDatabaseSourceForEntityType by Umherirrender
 * - build: Enable PhanTypeMismatchReturn and make pass by Umherirrender
 * - Type hint PlaceholderExpander::getHtmlForPlaceholder and fix return by Umherirrender
 * - DivergingEntityIdException: Use NormalizedException (2/2) by Lucas Werkmeister
 * - DivergingEntityIdException: Use NormalizedException (1/2) by Lucas Werkmeister
 * - build: Enable PhanPluginSimplifyExpressionBool and make pass by Umherirrender
 * - Handle null from EntityUrlLookup::getLinkUrl by Umherirrender
 * - Avoid some null when working with Title by Umherirrender
 * - Handle null from DeletePageNoticeCreator::getPageDeleteNoticeHtml by Umherirrender
 * - Avoid array to string conversion in DataValueDeserializer by Lucas Werkmeister
 * - Handle null for cache key in CachingPrefetchingTermLookup by Umherirrender
 * - REST: Remove unchanging method param by Jakob Warkotsch
 * - REST: Differentiate add vs replace description by sihe
 * - Use local variable for null checks by Umherirrender
 * - build: Enable PhanPluginNeverReturnMethod and make pass by Umherirrender
 * - doc: Declare some properties and arguments as nullable by Umherirrender
 * - REST: Generate edit summaries for SetItemDescription by Jakob Warkotsch
 * - tests: Add missing setName in SitesModuleTest by Timo Tijhof
 * - REST: Remove unused method param by Jakob Warkotsch
 * - Update moved class StubUserLang by gerritbot
 * - Change type hints from Wikimedia\Rdbms\DBConnRef to IDatabase by Umherirrender
 * - build: Disable phan option scalar_implicit_cast and make pass by Umherirrender
 * - Remove accepting bool for MediawikiEditEntity as base revision id by Umherirrender
 * - REST: Handle bots flag and tags in SetItemDescription by Jakob Warkotsch
 * - REST: Include revision data in SetItemDescription response by Jakob Warkotsch
 * - Fix type of typeId in DatabaseTermsCollisionDetector by Umherirrender
 * - REST: Add descriptions to Item read model by Jakob Warkotsch
 * - REST: Add initial SetItemDescription happy path by Norman Schwirz
 * - REST: Fix SetItemLabelTest.js file name by Jakob Warkotsch
 * - REST: Fix Serializable interface deprecated warnings by Ollie Shotton
 * - EntityUsageTable: Use UnionQueryBuilder by Lucas Werkmeister
 * - REST: Use makeEtag in SetItemlLabelTest by Jakob Warkotsch
 * - REST: Handle item not found or redirect for SetItemLabel by Ollie Shotton
 * - REST: Move `makeEtag` into a `httpHelper.js` file by Ollie Shotton
 * - REST: Mark ADR 2 as superseded on ADR index page by Jakob Warkotsch
 * - REST: Mark ADR 4 as superseded by ADR 9 by Ollie Shotton
 * - REST: Differentiate between add and replace Item Label by Ollie Shotton
 * - REST: Fix typo in import alias by Ollie Shotton
 * - REST: Clean up EditSummaryFormatter.php by Ollie Shotton
 * - REST: Replace Item's label in given language by Ollie Shotton
 * - REST: Test dev routes in RoutesTest.php by Ollie Shotton

WikibaseLexeme

 * - Revert "AddSense: Reduce cyclomatic complexity" by Umherirrender
 * - AddForm: Disallow null $baseRevId by Lucas Werkmeister

WikibaseMediaInfo

 * - Use DivergingEntityIdException as NormalizedException by Lucas Werkmeister

WikiEditor

 * - Update EditAttemptStep and VisualEditorFeatureUse for IP masking  by Bartosz Dziewoński
 * - Remove hacks that avoid duplicate event logging with MobileFrontend by Bartosz Dziewoński

WikiLambda

 * - PublishDialog: Add an upper padding to the dialog by Julia Kieserman
 * - updateSubmodule: Point to main not master now by James D. Forrester
 * - Switch-over function-schemata to gitlab by James D. Forrester
 * - Fix two CdxButton instances still using type=quiet to use weight=quiet by James D. Forrester
 * - Feat: Vuex store: Add tests for the new Zobject module methods. by Allan Jeremy
 * - tests: Raise all PHPUnit coverage claims to class level by James D. Forrester
 * - Replace lang-chip span with cdx chip component by gengh
 * - Fix ZMonolingualString styles when language is unset by gengh
 * - Show "Item" label when typed list item is expanded by gengh
 * - Fix fitWidth behavior on unselected ZObjectType by gengh
 * - Add missing terminal rule for Z1K1:Z6 by gengh
 * - tests: Wrap basic installation checks in a named group by James D. Forrester
 * - ZObjectSelector: Show label instead of ZID in the cdx-lookup by Julia Kieserman

WikimediaEvents

 * - Update EditAttemptStep and VisualEditorFeatureUse for IP masking by Bartosz Dziewoński
 * - desktopWebUIActions: Remove disabled abstraction for getEnabledClass by Timo Tijhof
 * - Only log 'visualEditorFeatureUse' events if 'editAttemptStep' events are being logged by Bartosz Dziewoński

WikimediaIncubator

 * - Update moved class StubUserLang by gerritbot

WikimediaMaintenance

 * - Convert most remaining maintenance scripts to subclass Maintenance by Reedy

WikimediaMessages

 * - Add messages for Tyap Wiktionary (kcgwiktionary) by gerritbot
 * - Add messages for Gun Wikinews (guwwikinews) by gerritbot

Wikisource

 * - Add Transkribus as an option in the OCR menu by Kolawole

Wikistories

 * - RC: Handle deleted story by Stephane Bisson
 * - styles: Replace 'mediawiki.ui/variables' call with skin variables  by Volker E
 * - Correct spelling in a message by Amir E. Aharoni
 * - Add Tracking Categories for the story without image by Huei Tan

MinervaNeue

 * - Use final action name when deciding to display navigation by Bartosz Dziewoński
 * - Add missing Create account icon on pt.wikinews.org by Klein Muçi
 * - Add custom styles for temporary user links by Thalia
 * - build: Convert resources/.eslintrc.js to json file by Umherirrender
 * - selenium: Refactor WebdriverIO tests from sync to async mode by Vaughn Walters

Vector

 * - Add custom limited width popup by bwang
 * - Clean up leftover Sidebar CSS by bwang
 * - Page tools have long labels in certain languages by Moh'd Khier Abualruz
 * - Forbid jQuery usage in Vector 2022 by Jon Robson
 * - Use modern ES6 methods by Jon Robson
 * - Point out the limited width control by Jon Robson
 * - Drop ES5 compatible code by Jon Robson
 * - Remove Eslint disable and TypeScript ignore rules, bump coverage by Jon Robson
 * - Rearrange setupIntersectionObservers by Jon Robson
 * - Consolidate and fix eslint errors, dropping ts-ignores by Jon Robson
 * - Merge skins.vector.es6 into skins.vector.js by Jon Robson
 * - Eslint: Modernize tests for ES6 by Jon Robson
 * - Refactor: Separate A/B test configuration from site configuration by Jon Robson

VisualEditor/VisualEditor

 * - ve.init.Target: Remove separate actions toolbar by Bartosz Dziewoński
 * - Drop IE Array.slice workaround by Ed Sanders
 * - Remove @supports for mix-blend-mode by Ed Sanders
 * - [DEPRECATING CHANGE] Drop ve.supportsSplice by Ed Sanders
 * - [DEPRECATING CHANGE] Drop ve.supportsIntl by Ed Sanders
 * - ve.resolveAttributes: Drop IE11 try/catch by Ed Sanders
 * - [DEPRECATING CHANGE] Drop IE11 DOM parsing hacks by Ed Sanders
 * - [DEPRECATING CHANGE] Drop ve.normalizeNode by Ed Sanders
 * - ve.ce.Surface: Remove IE11 hack for iframe focus by Ed Sanders
 * - ve.ce.Surface: Remove fallback for selectionchange event by Ed Sanders
 * - [DEPRECATING CHANGE]: ve.init.Platform: Drop isInternetExplorer/isEdge by Ed Sanders
 * - SupportCheck: Change ES5 test to ES6 by Ed Sanders
 * - [BREAKING CHANGE] Drop support for ES5 by Ed Sanders

No changes

 * 3D
 * ActiveAbstract
 * AdvancedSearch
 * AntiSpoof
 * ApiFeatureUsage
 * ArticleCreationWorkflow
 * ArticlePlaceholder
 * BetaFeatures
 * BounceHandler
 * Calendar
 * Campaigns
 * Capiunto
 * CategoryTree
 * CentralNotice
 * CharInsert
 * ChessBrowser
 * CiteThisPage
 * Citoid
 * CodeEditor
 * CodeMirror
 * Cognate
 * Collection
 * CologneBlue
 * CommonsMetadata
 * ConfirmEdit
 * ContactPage
 * CreditsSource
 * Dashiki
 * Disambiguator
 * DismissableSiteNotice
 * DoubleWiki
 * ElectronPdfService
 * EventBus
 * EventLogging
 * EventStreamConfig
 * ExtensionDistributor
 * ExternalGuidance
 * FeaturedFeeds
 * FileExporter
 * FundraiserLandingPage
 * FundraisingTranslateWorkflow
 * GWToolset
 * Gadgets
 * GeoCrumbs
 * GeoData
 * GlobalBlocking
 * GlobalCssJs
 * GlobalPreferences
 * GlobalUsage
 * GlobalWatchlist
 * Graph
 * GuidedTour
 * ImageMap
 * ImageSuggestions
 * Insider
 * Interwiki
 * InterwikiSorting
 * Josa
 * LabeledSectionTransclusion
 * LandingCheck
 * LdapAuthentication
 * Linter
 * LiquidThreads
 * Listings
 * LoginNotify
 * MachineVision
 * MapSources
 * MassMessage
 * Math
 * MediaModeration
 * MediaSearch
 * MobileApp
 * Modern
 * MonoBook
 * MultimediaViewer
 * NearbyPages
 * NewUserMessage
 * Newsletter
 * Nostalgia
 * Nuke
 * OATHAuth
 * OAuthRateLimiter
 * ORES
 * OpenStackManager
 * PageAssessments
 * PageImages
 * PageNotice
 * PageViewInfo
 * PagedTiffHandler
 * ParserFunctions
 * PdfHandler
 * Phonos
 * Poem
 * ProofreadPage
 * PropertySuggester
 * Quiz
 * RSS
 * ReadingLists
 * RealMe
 * RelatedArticles
 * RevisionSlider
 * SandboxLink
 * Score
 * Scribunto
 * SearchExtraNS
 * ShortUrl
 * SimilarEditors
 * SiteMatrix
 * SpamBlacklist
 * SubPageList3
 * SubpageSortkey
 * TemplateSandbox
 * TemplateStyles
 * TextExtracts
 * Thanks
 * TheWikipediaLibrary
 * TimedMediaHandler
 * Timeless
 * TitleBlacklist
 * TocTree
 * TorBlock
 * TwoColConflict
 * UniversalLanguageSelector
 * UploadsLink
 * UrlShortener
 * VipsScaler
 * WebAuthn
 * WikiLove
 * WikibaseCirrusSearch
 * WikibaseLexemeCirrusSearch
 * WikibaseQualityConstraints
 * Wikidata.org
 * WikidataPageBanner
 * WikimediaApiPortal
 * WikimediaApiPortalOAuth
 * WikimediaBadges
 * WikimediaEditorTasks
 * XAnalytics
 * intersection
 * timeline
 * wikihiero

Total changes
296 Changes in 59 repos by 87 authors