MediaWiki 1.38/wmf.17/Changelog

Core changes

 * - Branch commit for wmf/1.38.0-wmf.17 by trainbranchbot
 * - Styles should be added to all IndexPagers by Jon Robson
 * - ChangesList: Add .mw-changeslist-time (no date) to output to each row by jdlrobson
 * - SECURITY: properly escape output used within galleries and Special:RevisionDelete by sbassett
 * - Refactor global variables to use MediaWikiServices instead by TChin
 * - Remove unused EditPage::$mPreloadContent property by Thiemo Kreuz
 * - multiselect: Replace overqualified jQuery selector by Func
 * - Hard deprecate wfGetCache and wfGetMainCache by Alexander Vorwerk
 * - Fix typos in comments (S) by Siddharth VP
 * - Fix typos in comments (N-R) by Siddharth VP
 * - Fix typos in comments (M) by Siddharth VP
 * - Fix typos in comments (L) by Siddharth VP
 * - Fix typos in docs by Siddharth VP
 * - Sync up with Parsoid parserTests.txt by Arlo Breault
 * - Use messages mainpage-title/mainpage-title-loggedin in content language by Umherirrender
 * - Wrap StatusValue in Status for HTMLForm submit callback by Ammarpad
 * - Deprecate `mediawiki.pager.tablePager` module for more generic module by jdlrobson
 * - Follow-up 37513f796: Escape '$' in PHP strings by Ed Sanders
 * - api-testing: Combine two dependent tests into one by Kosta Harlan
 * - resourceloader: Implement debug=2 request splitting by Timo Tijhof
 * - api-testing: Run jobs for tests dependent on deferred updates by Kosta Harlan
 * - Use STRAIGHT_JOIN when filtering on frequently used tags by Tim Starling
 * - Add per-table straight join option by Tim Starling
 * - Revert "Add bindCloseOnUnload to checkboxHack.js" by Bernard Wang
 * - resourceloader: Allow debug=2 on JavaScriptTest, and misc whitespace  by Timo Tijhof
 * - resourceloader: Improve wgResourceLoaderMaxage docs, minor clean up by Timo Tijhof
 * - Rename FormSpecialPage::[pre|post]Text to *Html by Gergő Tisza
 * - Sync up with Parsoid parserTests.txt by Arlo Breault
 * - build: Updating json-schema to 0.4.0 by Alexander Vorwerk
 * - Add bindCloseOnUnload to checkboxHack.js by bwang
 * - selenium: run 4 tests in parallel by Antoine Musso
 * - objectcache: split up MapCacheLRU::getAge to avoid conditional overhead by Aaron Schulz
 * - MemcachedClient: Add support for ipv6 by Paladox
 * - MWMySQLPlatformCompat.php: Fix leading whitespace by Reedy
 * - composer.json: Temporarily allow composer/package-versions-deprecated plugin by Reedy
 * - Update doctrine/dbal versions by Reedy
 * - Update wikimedia/cdb to 2.0.0 by Timo Tijhof
 * - Upgrading symfony/yaml (v5.3.6 => v5.4.0) by Reedy
 * - api-testing: Skip flaky bot edit revert test by Kosta Harlan
 * - Prefer is_dir/is_file to file_exists by Kosta Harlan
 * - LinksUpdate refactor by Tim Starling
 * - Write to multiple categorylinks tables on update by Tim Starling
 * - Move the link updates from moveUnsafe to LinksUpdate by Tim Starling
 * - Move LinksUpdate and LinksDeletionUpdate into the new namespace by Tim Starling
 * - mediawiki.skinning: Simplify external links selectors by Volker E
 * - mediawiki.skinning: Remove `.link-https` from external selector by Volker E
 * - phpunit: Use is_file/is_dir instead of file_exists by Kosta Harlan
 * - maintenance: Add support for oldimage table metadata refresh by Amir Sarabadani
 * - installer: Set "unknown" for default value of *_major_mime in MySQL by Amir Sarabadani
 * - Rename HTMLForm::[get|set|add]*Text methods by Gergő Tisza
 * - LanguageConverter: Remove duplicate deprecation hint by Umherirrender
 * - profiler: Remove deprecated profileIn/profileOut by Umherirrender
 * - libs/mime: Remove newline from log messages by Umherirrender
 * - Update composer/semver by Reedy
 * - composer.json: Add wikimedia/composer-merge-plugin to allow-plugins by Reedy
 * - rdbms: Remove a cluster of unused and deprecated functions by Amir Sarabadani
 * - rdbms: Drop unused IDatabase::maxListLen by Amir Sarabadani
 * - Remove old orphans.php script by Aaron Schulz
 * - Match output for broken thumbnails by Arlo Breault
 * - Add "resource" attribute to img tags by Arlo Breault
 * - Add tests for ApiMain::sendCacheHeaders by Daimona Eaytoy
 * - Add nb, fi (Norwegian, Finnish) as language fallback for se (Northern Sami) by Federico Leva

Vendor

 * - Bump wikimedia/parsoid to 0.15.0-a14     by Subramanya Sastry
 * - Update wikimedia/cdb to 2.0.0 by Timo Tijhof
 * - Update composer/* by Reedy
 * - Upgrading psy/psysh (v0.10.8 => v0.10.12) by Reedy
 * - Update web-auth/* by Reedy
 * - Update symfony/* by Reedy
 * - composer.json: Add wikimedia/composer-merge-plugin to allow-plugins by Reedy

AbuseFilter

 * - selenium: Run test suites concurrently by Kosta Harlan

BetaFeatures

 * - Replace deprecated JobQueueGroup::singleton by Umherirrender

BounceHandler

 * - Replace deprecated JobQueueGroup::singleton by Umherirrender

CentralAuth

 * - Update SpecialGlobalGroupMembership for global groups by Taavi Väänänen
 * - Add a script to clean expired global_user_groups rows by Taavi Väänänen
 * - SpecialCentralAuth: Display global group expiry by Taavi Väänänen
 * - Enforce gug_expiry by Taavi Väänänen
 * - Namespace CentralAuthUser by Alexander Vorwerk
 * - Hide "User:" prefix from gblrights/usergroups log entries by Alexander Vorwerk

CheckUser

 * - Use namespaced CentralAuthUser by Alexander Vorwerk
 * - Module mediawiki.pager.tablePager was renamed to mediawiki.pager.styles by jdlrobson
 * - composer.json: Loosen firebase/php-jwt requirement by Reedy

CirrusSearch

 * - composer.json: Remove requirements that are in MW core's composer.json by Reedy

Cite

 * - Use .test instead of .match by Thiemo Kreuz

Cognate

 * - Convert to abstract schema by Umherirrender

Collection

 * - Remove db->freeResult by Amir Sarabadani

ContentTranslation

 * - Update skinStyles with new vector skin key. by Clare Ming
 * - CX3 Build 0.1.0+20220110   by Santhosh Thottingal
 * - SX: Show invite for SX after publishing in the Sandbox by NikG
 * - SX: Disable auto-scroll when sentence already inside the viewport by NikG
 * - SX: Avoid wikibase link request for sandbox publishing by NikG
 * - SX suggestions api: Remove slice in fetchPageSuggestions method by NikG
 * - SX store: Add application/isSandboxTarget getter by NikG

DiscussionTools

 * - Fix collapsing whitespace in button section divider by Ed Sanders
 * - Fix styling of reply links when reply tool is open by Ed Sanders
 * - Test case for several bugs from it.wp  by Bartosz Dziewoński
 * - Filter username suggestions to accounts with edits by Ed Sanders
 * - Use new `wikipage.watchlistChange` hook by Ed Sanders
 * - Fix some typos in doc comments by Bartosz Dziewoński

Echo

 * - Update skinStyles with new vector skin key. by Clare Ming

FlaggedRevs

 * - Remove db->freeResult by Amir Sarabadani

Flow

 * - Use namespaced CentralAuthUser by Alexander Vorwerk
 * - Replace deprecated JobQueueGroup::singleton by Umherirrender
 * - Revert "Use strict equality when safe to do so" by RhinosF1
 * - ContributionsFormatter: Pass missing context to showCharacterDifference by Timo Tijhof
 * - Convert topic title in Extension:StructuredDiscussions to language variants   by Winston Sung

GlobalBlocking

 * - maintenance: add a script for updating outdated blockers by Alexander Vorwerk

GlobalPreferences

 * - Fix support for setting local exceptions on CheckMatrix fields  by Func

GlobalUsage

 * - Replace deprecated JobQueueGroup::singleton by Umherirrender

GrowthExperiments

 * - selenium: Conditionally load Parsoid by Kosta Harlan
 * - Add Image: Do not use local namespace name when calling Commons API by Gergő Tisza
 * - Structured tasks: Fix no suggestion dialog link URL by Gergő Tisza
 * - MentorStore: Stop using local cluster cache by Martin Urbanec
 * - Rename files in ext.growthExperiments.Homepage.Impact, ext.growthExperiments.Homepage.Mentorship and ext.growthExperiments.Homepage.RecentQuestions by MewOphaswongse
 * - Add an image: fix guidance content styles by MewOphaswongse
 * - Mentor dashboard: Make it possible for pilot wikis to have more modules by Martin Urbanec
 * - HelpPanelHooks::getMentorData: Do not fatal if $effectiveMentor is null by Martin Urbanec
 * - MentorPageMentorManager::getMentorForUser: Ensure backup mentor is a mentor by Martin Urbanec
 * - Rename files in ext.growthExperiments.Homepage.styles by MewOphaswongse
 * - Update qunit tests by MewOphaswongse
 * - Add an image: Move desktop logic for quality gate to QualityGateDecorator & update doc string for formatImageRecommendationTaskForDesktop by MewOphaswongse
 * - Post-edit dialog: hide the homepage when taking the user back to suggested edits on mobile by MewOphaswongse
 * - Suggested edits: set the newcomer task token in this.currentCard.data.token right away by MewOphaswongse
 * - Add an image: save the article without showing the save dialog on desktop by MewOphaswongse
 * - selenium: Test for AddLink by Kosta Harlan
 * - Add an image: hide edit mode toggle and show toolbar when submitting rejection by MewOphaswongse
 * - Add an image: desktop image inspector by MewOphaswongse
 * - Monitoring: Track task click rate by task type ID by Kosta Harlan
 * - Monitoring: Adjust logic for counting reverts by Kosta Harlan
 * - Monitoring: Track question asking for mentorship by Kosta Harlan
 * - Do not use implicit string conversion of mw.message by Gergő Tisza
 * - abstract schema: Remove unneeded length from integer type by Umherirrender
 * - Maintenance script to fix structured edit tags by Gergő Tisza

GuidedTour

 * - Update skinStyles with new vector skin key. by Clare Ming

ImageMap

 * - Add "resource" attribute to img tags by Arlo Breault

InputBox

 * - Fix MediaWiki.Commenting.PropertyDocumentation.WrongStyle by zoranzoki21

IPInfo

 * - Update GeoLite2 reader to reflect supported dbs by STran
 * - Add IP Info to Beta Feature by AnaïsGueyte
 * - Fix Firefox outline styling in history pages by wikitrent
 * - Remove ISP and ASN from PopUp by AnaïsGueyte
 * - Add padding to the popup by Thalia
 * - Pass message instead of key fragment to IP Info property by STran
 * - Add tooltips for Connection Method and Connection Owner by STran

LdapAuthentication

 * - Provide i18n for old AuthPlugin messages by Ammarpad
 * - Include ldap errno on account creation debug logs by Taavi Väänänen

Linter

 * - Fix lint error updating  by Arlo Breault
 * - Move outputting headers back to the top by Arlo Breault
 * - Add a title for single page view by Arlo Breault
 * - All lint errors for a single page was missing error detail label by sbailey
 * - Linter: Display lint errors for a single page by sbailey

LiquidThreads

 * - Convert content in Extension:LiquidThreads to language variants by Winston Sung

LoginNotify

 * - Use namespaced CentralAuthUser by Alexander Vorwerk

MassMessage

 * - MassMessage: Move isNotFoundError private function to bottom of class by Abijeet
 * - MassMessage: Remove usage of deprecated Language::isKnownLanguageTag by Abijeet
 * - Introduce LocalMessageContentFetcher by Abijeet
 * - Introduce RemoteMessageContentFetcher by Abijeet

MediaModeration

 * - Add README file to MediaModeration extension by essexigyan

MediaSearch

 * - Updated maint script to use fewer queries by Cormac Parle
 * - Unit test component in Components folder by Simone This Dot
 * - [L] The default filter i.e. "All" is missing the Select state. by Simone This Dot
 * - Update the way the search interface is set by Cormac Parle

MobileFrontend

 * - Update skinStyles with new vector skin key. by Clare Ming
 * - Hygiene: Inject MobileContext via SpecialMobileLanguages constructor by Sam Smith
 * - tests: Fix exception/warnings in SpecialMobileLanguagesTest by Sam Smith
 * - Use ->getAuthority instead of ->getUser by Alexander Vorwerk
 * - SECURITY: contributions: Do not show contributions for hidden users by Sam Smith

OATHAuth

 * - composer.json: Loosen christian-riesen/base32 requirement by Reedy

OAuth

 * - composer.json: Loosen firebase/php-jwt requirement by Reedy

PageImages

 * - Disable parser HTML changes during parser tests, they cause failures by Bartosz Dziewoński
 * - Identify lead images using a new parser hook instead of during LinksUpdate  by Tim Starling

ProofreadPage

 * - API: correct prppii continuation parameter by Inductiveload
 * - Makes sure $imgContHorizontal is always initialized by Tpt

Renameuser

 * - Replace deprecated JobQueueGroup::singleton by Umherirrender

Scribunto

 * - Amend Scribunto namespace names for Abkhazian (ab) by MarcoAurelio
 * - Revert "mw.title: Add pageLanguage property" by 20after4
 * - Add it namespace aliases in scn by AntiCompositeNumber

SecurePoll

 * - Use namespaced CentralAuthUser by Alexander Vorwerk
 * - Drop old board election scripts by Alexander Vorwerk

SpamBlacklist

 * - Give priority to PreparedUpdate by Amir Sarabadani
 * - Use PreparedUpdate to avoid double parse by Amir Sarabadani

Thanks

 * - Update MobileFrontend Icon usage to include 'type' option by bwang

TimedMediaHandler

 * - Replace deprecated JobQueueGroup::singleton by Umherirrender
 * - Videojs: Enable texttrack in by default by Derk-Jan Hartman
 * - videojs: improve play button and dialog a11y by Derk-Jan Hartman
 * - Unused line of CSS by Derk-Jan Hartman
 * - VideoJS: Hide native controls when loading the player by Derk-Jan Hartman
 * - Fix the player height of the inline-block by Derk-Jan Hartman
 * - Increase interface's base font size for VideoJS player by Derk-Jan Hartman
 * - Use em units for button size by Derk-Jan Hartman
 * - Update videojs to 7.17.0 by Derk-Jan Hartman
 * - Compensate subtitle display offset in audio player by Derk-Jan Hartman
 * - Avoid IDatabase::timestamp when comparing timestamps by Umherirrender
 * - VP8 and VP9 native playback for Safari by Derk-Jan Hartman
 * - abstract schema: Use mwtimestamp type for transcode_time_* columns by Umherirrender
 * - Hide PiP button for ogvjs and audio players by Derk-Jan Hartman

Translate

 * - Remove unused Configure extension integration by Niklas Laxström
 * - FuzzyTranslationsMaintenanceScript: stop using globals by Niklas Laxström
 * - Make use of array_map where it makes sense by Thiemo Kreuz
 * - FuzzyTranslationsMaintenanceScript: "inject" services by Niklas Laxström

TranslationNotifications

 * - Use namespaced CentralAuthUser by Alexander Vorwerk

TrustedXFF

 * - Add more Zscaler ranges by Martin Urbanec
 * - Add Zscaler to list of trusted hosts for XFF by Martin Urbanec

UniversalLanguageSelector

 * - Update skinStyles with new vector skin key. by Clare Ming
 * - Update GentiumPlus font by Santhosh Thottingal
 * - Fix broken webfonts build scripts by Santhosh Thottingal
 * - Update language name search index by Niklas Laxström
 * - Hide sticky header language button with preference disabled by jdlrobson
 * - Namespace extension by Reedy

VisualEditor

 * - Update VE core submodule to master (2db326345)  by Bartosz Dziewoński
 * - Update skinStyles with new vector skin key. by Clare Ming
 * - Use new `wikipage.watchlistChange` hook by Ed Sanders
 * - Update VE core submodule to master (bafd926a8) by Bartosz Dziewoński
 * - DiffPage: Only set user pref on 'choose' event by Ed Sanders
 * - DiffPage.init: Move and rename some vars by Ed Sanders
 * - Enforce formatversion=2 in template search by Thiemo Kreuz
 * - Check for saveDialog in ve.init.mw.DesktopArticleTarget.saveComplete by mewoph
 * - Tests: Fix unbalanced HTML by Ed Sanders

WebAuthn

 * - Update web-auth/* by Reedy

Wikibase

 * - bridge: Switch to Vue3 compat by Michael Große
 * - bridge: Get rid of in-language directive by Michael Große
 * - bridge: upgrade vue cli by Michael Große
 * - FP: ensure $wgWBClientSettings is not null on the test system by Jakob Warkotsch
 * - bridge: Don't create legacy bundle anymore by Michael Große
 * - bridge: Fix storybook stories that depended on bridge config by Michael Große
 * - Fix incorrect IRC help directions in RELEASE-NOTES by toan
 * - bridge: fix dev-entry scrolling by adjusting mock HTML to match prod by Michael Große
 * - bridge: assert equality not identity for props by Michael Große
 * - bridge: Use findComponent to find components even with css classes by Michael Große
 * - bridge: Also log the errors and warnings in tests by Michael Große
 * - Stop calling WikiPage::factory in WikiPageEntityStore by Lucas Werkmeister
 * - Remove backwards compatibility code from WikiPagePropertyOrderProvider by Lucas Werkmeister

WikibaseLexeme

 * - selenium: Disable flaky test by Kosta Harlan

WikibaseMediaInfo

 * - Add weighted_tags queries for mediasearch by Cormac Parle
 * - Clarify i18n msg param by Matthias Mullie
 * - Pass WikiPageFactory into WikiPagePropertyOrderProvider by Lucas Werkmeister

WikibaseQualityConstraints

 * - Bump jasmine from 3.10.0 to 4.0.1 by Addbot
 * - abstract schema: Remove unneeded length from integer type by Umherirrender

WikiLambda

 * - Add more tests for ZGenericList by gengh
 * - Revert "extension.json: Change docker-compose config for 2.x" by Jforrester
 * - Add "not empty" function (implemented as a composition) as an API by apine
 * - Allow ZType to have a ZGenericList as its list of keys by gengh
 * - Add ZFunctionCall as a possible value of an object type   by gengh
 * - Function Editor - sidebar - Update diagram by adesoji
 * - Add a "create type" button on the Special:CreateZObject page by Simone This Dot
 * - Enable FE to search for Function that return Type by Simone This Dot
 * - composer: Drop symfony/yaml requirement, provided by MW 1.38+ by James D. Forrester
 * - Function Editor: Add ability to set the output in the new system by Simone This Dot
 * - Function Editor: Add ability to set the inputs in the new system by Simone This Dot
 * - Function Editor: Add ability to set the aliases in the new system by Simone This Dot
 * - Function Editor: Add ability to set the name in the new system by Simone This Dot
 * - doc: Update (or add) copyright messages in all files for consistency by James D. Forrester
 * - add tooltip component and set it up to be used in function editor tabs by jkieserman
 * - Update Wikimedia UI base by Simone This Dot
 * - Add a wikilambda specific style file by Simone This Dot
 * - Revert "Fix Frontend after Vue 3 migration build upgrade in MediaWiki" by Simone This Dot
 * - tests: Split out the HooksTest bits that don't need to be standalone by James D. Forrester

WikimediaBadges

 * - Update skinStyles with new vector skin key. by Clare Ming

WikimediaIncubator

 * - Use namespaced CentralAuthUser by Alexander Vorwerk

WikimediaMaintenance

 * - Use namespaced CentralAuthUser by Alexander Vorwerk

WikimediaMessages

 * - Add placeholders for UserMerge log entries   by Taavi Väänänen
 * - Temporarily alias grouppage-suppress to grouppage-oversight by Martin Urbanec
 * - Fix a typo in "get in touch" by Amir E. Aharoni
 * - Fix a typo in "guidelines" by Amir E. Aharoni

MinervaNeue

 * - selenium: run tests concurrently by Antoine Musso
 * - Remove usage of SkinTemplate::injectLegacyMenusIntoPersonalTools by Ammarpad
 * - Move the form element in Minerva's header and apply core checkbox hack consistently to toggle lists by bwang
 * - Remove two unnecessary localization files by Amir E. Aharoni

Modern

 * - Modern should use html-title-heading by Jon Robson

MonoBook

 * - Monobook should use html-title-heading by Jon Robson

Timeless

 * - Make Timeless heading behaviour consistent with other skins by Jon Robson

Vector

 * - Fix TypeError: document.querySelectorAll(...).forEach is not a function by Nicholas Ray
 * - Ensure sticky header language button only shows when there are multiple languages and when ULS is enabled  by bwang
 * - Restore gadget support to new internal skins by jdlrobson
 * - Vector is split into 2 skins by jdlrobson
 * - Reset scroll position when sticky header search input receives focus to fix Safari bug by Nicholas Ray
 * - Fix caction menu button from having a width that's 1px too small by bwang
 * - Refactor search component expand behavior and add auto-expand-width prop to search component by Nicholas Ray
 * - Update Abkhaz language name by Amir E. Aharoni

VisualEditor/VisualEditor

 * - Diff some nodes as if they are documents, e.g. s by Ed Sanders
 * - DiffElement refactor: Create an iterateDiff method and unify function signatures by Ed Sanders
 * - DiffElement refactor: De-duplicate logic inside getNodeElements & wrapNodeData by Ed Sanders
 * - DiffElement refactor: Pass diff objects to renderDiff instead of using state properties by Ed Sanders
 * - DiffElement: Manually number ordered lists with value attribute by Ed Sanders
 * - Update RangeFix to 0.2.10 by Ed Sanders
 * - Tests: Show warning when input to ve.createDocumentFromHtml is unbalanced by Ed Sanders

No changes

 * 3D
 * ActiveAbstract
 * AdvancedSearch
 * AntiSpoof
 * ApiFeatureUsage
 * ArticleCreationWorkflow
 * ArticlePlaceholder
 * Babel
 * Calendar
 * Campaigns
 * Capiunto
 * CategoryTree
 * CentralNotice
 * CharInsert
 * ChessBrowser
 * CiteThisPage
 * Citoid
 * CodeEditor
 * CodeMirror
 * CodeReview
 * CologneBlue
 * CommonsMetadata
 * ConfirmEdit
 * CongressLookup
 * ContactPage
 * CreditsSource
 * Dashiki
 * Disambiguator
 * DismissableSiteNotice
 * DonationInterface
 * DoubleWiki
 * DynamicSidebar
 * Elastica
 * ElectronPdfService
 * EntitySchema
 * EventBus
 * EventLogging
 * EventStreamConfig
 * ExtensionDistributor
 * ExternalGuidance
 * FeaturedFeeds
 * FileExporter
 * FileImporter
 * FundraiserLandingPage
 * FundraisingTranslateWorkflow
 * GWToolset
 * Gadgets
 * GeoCrumbs
 * GeoData
 * GlobalCssJs
 * GlobalUserPage
 * GlobalWatchlist
 * GoogleNewsSitemap
 * Graph
 * Insider
 * Interwiki
 * InterwikiSorting
 * Josa
 * JsonConfig
 * Kartographer
 * LabeledSectionTransclusion
 * LandingCheck
 * Listings
 * LocalisationUpdate
 * MachineVision
 * MapSources
 * Math
 * MobileApp
 * MultimediaViewer
 * NavigationTiming
 * NearbyPages
 * NewUserMessage
 * Newsletter
 * Nostalgia
 * Nuke
 * OAuthRateLimiter
 * ORES
 * OpenStackManager
 * PageAssessments
 * PageNotice
 * PageTriage
 * PageViewInfo
 * PagedTiffHandler
 * ParserFunctions
 * PdfHandler
 * Poem
 * PoolCounter
 * Popups
 * PropertySuggester
 * QuickSurveys
 * Quiz
 * RSS
 * ReadingLists
 * RelatedArticles
 * RevisionSlider
 * SandboxLink
 * Score
 * SearchExtraNS
 * SecureLinkFixer
 * ShortUrl
 * SiteMatrix
 * StopForumSpam
 * SubPageList3
 * SubpageSortkey
 * SyntaxHighlight_GeSHi
 * TemplateData
 * TemplateSandbox
 * TemplateStyles
 * TemplateWizard
 * TextExtracts
 * TheWikipediaLibrary
 * TitleBlacklist
 * TocTree
 * TorBlock
 * TwoColConflict
 * UploadWizard
 * UploadsLink
 * UrlShortener
 * UserMerge
 * VipsScaler
 * WikiEditor
 * WikiLove
 * WikibaseCirrusSearch
 * WikibaseLexemeCirrusSearch
 * Wikidata.org
 * WikidataPageBanner
 * WikimediaApiPortal
 * WikimediaApiPortalOAuth
 * WikimediaEditorTasks
 * WikimediaEvents
 * Wikisource
 * XAnalytics
 * cldr
 * intersection
 * timeline
 * wikihiero

Total changes
284 Changes in 63 repos by 70 authors