MediaWiki 1.41/wmf.30/Changelog

Core changes

 * - Branch commit for wmf/1.41.0-wmf.30 by trainbranchbot
 * - Parser: remove usages of $wgTitle by mainframe98
 * - HISTORY: Update for recent releases by Reedy
 * - ApiPurge: report permission errors properly by daniel
 * - Parser: Remove ability to initialize mTitle to null by mainframe98
 * - SpecialExport: Add support for read new of pagelinks by Amir Sarabadani
 * - Add parser test for escaped wikitext in section heading by Bartosz Dziewoński
 * - mailmap: Update .mailmap and CREDITS by TheresNoTime
 * - PasswordFactory: Hard-deprecate init, deprecated since 1.32 by James D. Forrester
 * - updateSpecialPages: Call ::waitForReplication if a host isn't reachable  by Amir Sarabadani
 * - Revert "Skin: Replace confusing use of rawParams in doEditSectionLink" by Bartosz Dziewoński
 * - Add release note for "Update pear/mail to 1.5.1" by Kevin Israel
 * - List Special:EmailUser in Special:SpecialPages by Dringsim
 * - resources: Remove jquery.color, jquery.fullscreen, and jquery.form by Hannah Okwelum
 * - ParserOutputAccess: fix the wrapper div fetched from the fallback cache by C. Scott Ananian
 * - logging: Fix non-escaped messages used in rights log by Umherirrender
 * - Don't cache trivial strings in the MagicWord class by thiemowmde
 * - Add missing PHPUnit test for MagicWordArray class by thiemowmde
 * - Languages: Add mnc/mnc-* (Manchu) to Names.php by Winston Sung
 * - Drop AbstractContent::getRedirectChain and ::getUltimateRedirectTarget, deprecated in 1.38 by James D. Forrester
 * - StatusValue: Improve logging/debug output with multibyte characters by Bartosz Dziewoński
 * - Consistent spelling of "websites" by Amir E. Aharoni
 * - tests: Provide coverage for StatusValue::__toString by James D. Forrester
 * - Migrate to IConnectionProvider methods in more places by Amir Sarabadani
 * - Remove space from "user name" by Amir E. Aharoni
 * - MagicWord: Make use of native count feature in preg_replace by thiemowmde
 * - debug: Optimize createLogger and set UTC timezone by default  by Timo Tijhof
 * - SpecialEmailUser: Skip validation for username when visit directly without subpage by Dringsim
 * - debug: Improve docs, fix ingroup tags, clean up tests by Timo Tijhof
 * - Fix error when user page is set as main page by Łukasz Harasimowicz
 * - Installer: Make Minerva works correctly for $wgDefaultSkin by Ammarpad
 * - rdbms: Introduce concept of virtual domains and mapping to ext cluster by Amir Sarabadani
 * - Replace complex preg_replace_callback with strtr/preg_replace by thiemowmde
 * - Cleanup nonexistent "custom JSON" by Dringsim
 * - Skin: Replace confusing use of rawParams in doEditSectionLink by Bartosz Dziewoński
 * - Revert "Deprecate TOC mutation in OutputPageParserOutput hook" by Subramanya Sastry
 * - RELEASE-NOTES-1.41: Tweak HTML::noticeBox entry by James D. Forrester
 * - objectcache: fix BagOStuff::watchErrors comment by Aaron Schulz
 * - Improve OutputPage taint annotations and cover with more tests by Brian Wolff
 * - Remove implicit setter for ParserOutput::mTOCHTML by C. Scott Ananian
 * - Make OutputPage::addSubtitle as tainted by Brian Wolff
 * - Make use of assertStatusGood/Error and such in tests by thiemowmde
 * - Install symfony/polyfill-php83 by James D. Forrester
 * - Bump wikimedia/bcp-47-code to 2.0.0 by C. Scott Ananian
 * - Implement Language::isSameCodeAs by C. Scott Ananian
 * - RELEASE-NOTES-1.41: Correct count for namespaced files by James D. Forrester
 * - Store image sizes as 64-bit bigint instead of 32-bit integers by Brian Wolff
 * - Make use of str_contains/str_starts_with in a few places by thiemowmde
 * - parser: Improve ParserOutput docs and fix absoluteURLs default by Timo Tijhof
 * - Remove unused public methods from MagicWord & MagicWordArray by thiemowmde
 * - SpecialSearch: Drop unused mediawiki ui styles by Jon Robson
 * - mediawiki.util: Allow mw.util.addPortlet to attach new portlet to DOM by Jon Robson
 * - Upgrading justinrainbow/json-schema (5.2.12 => v5.2.13) by Reedy
 * - skins: Use HookRunner to run SkinTemplateGetLanguageLink hook by Umherirrender
 * - Remove meaningless "brionmademeputthishere" from MagicWord class by thiemowmde
 * - ResourceLoader: Bump STORAGE_VERSION by Timo Tijhof
 * - Remove deprecated interface ParserTestTablesHook by Umherirrender
 * - Upgrading guzzlehttp/guzzle (7.5.0 => 7.5.3) by Reedy
 * - [Languages] Remove French gendered namespace aliases for Fon by Jon Harald Søby
 * - REST: Support origin with port in enforcing CORS policy by Ammarpad
 * - parser: Hard-deprecate Parser::getFreshParser by Umherirrender
 * - Improve/fix documentation of Language::getMagicWords by thiemowmde
 * - Tests: Fix CorsUtils test by Ammarpad
 * - Request: Deprecate methods in WebRequest class by Derick Alangi
 * - specials: Use batch to format comments on Special:NewPages by Umherirrender
 * - Html: allow to pass a custom icon to noticeBox by Sergio Gimeno
 * - Title: Use TitleArrayFromResult instead of TitleArray by Derick Alangi
 * - ResourceLoader: Improve and generalize validateScriptFile test coverage by Timo Tijhof
 * - build: Update wikimedia/ip-utils from 4.0.1 to 5.0.0 by Timo Tijhof
 * - Fix inline/table format mixed toggling    by hmonroy
 * - REST Compare: Make handler to not require write access by Ammarpad
 * - History: Do not use MediaWiki UI for button styling by Jon Robson
 * - SpecialContributions: Make username required by Dringsim
 * - LanguageConverter: Refactor translate function override that omits Roman numbers by Reedy
 * - parser: Fix detection of variable with whitespace after subst: by Umherirrender
 * - Upgrade symfony/* by Reedy
 * - ResourceLoader: Remove unused members from constructor by Derick Alangi
 * - PoolWorkArticleView: Remove unsatisfiable check by Subramanya Sastry
 * - Hard-deprecate ParserOutput::getCategories, deprecated in 1.40 by C. Scott Ananian
 * - Revert "Revert "Remove unused class_alias deprecated in MW 1.40"" by Isabelle Hurbain-Palatin
 * - SpecialMute: Split out error into the three specific checks by James D. Forrester
 * - TitleOptionWidget: Mark thumbnails with mw-no-invert by Ed Sanders

Vendor

 * - Bump wikimedia/parsoid to v0.18.0-a28    by Yiannis Giannelos
 * - Install symfony/polyfill-php83 by James D. Forrester
 * - Upgrade wikimedia/bcp-47-code to 2.0.0 by C. Scott Ananian
 * - Bump wikimedia/parsoid to v0.18.0-a27 by C. Scott Ananian
 * - build: Update now that CI runs Composer 2.6.4 up from 2.5.1 by James D. Forrester
 * - Upgrading justinrainbow/json-schema (5.2.12 => v5.2.13) by Reedy
 * - Upgrading guzzlehttp/* by Reedy
 * - Upgrading pear/pear-core-minimal (v1.10.11 => v1.10.13) by Reedy
 * - Upgrade symfony/* by Reedy
 * - Upgrading nikic/php-parser (v4.15.2 => v4.17.1) by Reedy
 * - Upgrading psy/psysh (v0.11.10 => v0.11.21) by Reedy
 * - Update psr/http-{client,factory} by Reedy
 * - Upgrading composer/ca-bundle (1.3.5 => 1.3.7) by Reedy
 * - Update wikimedia/ip-utils from 4.0.1 to 5.0.0 by Timo Tijhof

AbuseFilter

 * - Parse wikitext in page titles with filter number as parameter by Bartosz Dziewoński
 * - Fix non-escaped messages used in page subtitles by Bartosz Dziewoński

AdvancedSearch

 * - Re-order selenium namespace tests by WMDE-Fisch
 * - Convert search preview tags into a list with a description by WMDE-Fisch

ArticlePlaceholder

 * - Catch more specific EntityIdParsingException by Umherirrender

CampaignEvents

 * - Add participants non PII answers on participants list tab by Claudio Melo
 * - Store clickwrap datestamp when accepted by Michelle

CategoryTree

 * - Get parameters from config instead of global variable in getDataForJs by Fomafix
 * - Simplify PHP code by Fomafix
 * - Use namespaced classes by Fomafix

CentralAuth

 * - Replace use of PasswordFactory::init by James D. Forrester
 * - Clean up centralautologin.js after top-level autologin patch by Gergő Tisza
 * - Fix Special:CentralAutoLogin/setCookies by Gergő Tisza
 * - Don't delete central session if it is rejected for local reasons by Tim Starling

CheckUser

 * - Split and test checkUserHelper.js by Dreamy Jazz
 * - Add QUnit test structure to CheckUser by Dreamy Jazz
 * - PopulateCheckUserTableTest: Clarify some comments and fix grammar by Thalia
 * - quibble.yaml: Rename by Kosta Harlan
 * - Use cu_private_event on invalid log ID in populateCheckUserTable.php by Dreamy Jazz

cldr

 * - Update languages not part of CLDR   by Raymond
 * - Rebuild files to match MediaWiki changes by Bartosz Dziewoński
 * - Add local overrides for 'gom-latn' by Bartosz Dziewoński

CodeEditor

 * - Use namespaced classes by Fomafix

CodeMirror

 * - Use white-space: break-spaces  by Ed Sanders
 * - Use namespaced classes by Fomafix

Collection

 * - Encode return of urlencode for OutputPage::addInlineScript by Umherirrender

ContentTranslation

 * - CX section publishing: Auto-save translation before publishing by NikG
 * - CX publish section: Add section translation id to payload by NikG

Disambiguator

 * - Avoid selecting interwiki redirects by Umherirrender
 * - Do not add disambiguator-link-added tag if is a logged action by Stang

DiscussionTools

 * - CommentFormatterTest: Mock `getConfig` method by Kosta Harlan
 * - Always pass whole OutputPage (as IContextSource) to postprocess functions by Ed Sanders
 * - Put mobile ellipsis button menu in an overlay by Bartosz Dziewoński
 * - Add null check for str_starts_with by Umherirrender
 * - overflow menu: Display menu next to comments on mobile by Kosta Harlan
 * - overflow menu: Add hooks for registering and interacting with items by Kosta Harlan
 * - Permalinks: Fix scroll restoration on mobile by Ed Sanders
 * - Permalinks: Factor out copyLink clipboard functionality by Ed Sanders
 * - Factor out permalink code into separate file by Ed Sanders
 * - Fix mobile section expand icon size after changes in MobileFrontend by Bartosz Dziewoński
 * - Mobile reply buttons were overlapping the expanded advanced options by David Lynch
 * - Permalinks: Don't prevent default when clicking links by Ed Sanders
 * - Permalinks: Replace hard-coded notification with i18n string by Ed Sanders
 * - Show a hint for ctrl-enter for comment submission if just enter is used by David Lynch
 * - ThreadItemStore: Fix rows with itr_items_id=0 corrupted by T339882 by Bartosz Dziewoński

DonationInterface

 * - Make the submethods alphabetical by wfan
 * - Update descriptor in more languages by Elliott Eggleston
 * - Pass phone for venmo console by wfan
 * - DI update transaction descriptor to Wikimedia Foundation for all gateways by wfan

DoubleWiki

 * - Remove double escaping of html attribute by Umherirrender

EntitySchema

 * - Update mediawiki-codesniffer by Lucas Werkmeister
 * - Update mediawiki-phan-config by Lucas Werkmeister
 * - Update linters by Lucas Werkmeister
 * - Update Cypress and eslint-plugin-cypress by Lucas Werkmeister

EventStreamConfig

 * - tests: Declare class properties on StreamConfigsTest by Umherirrender
 * - Use empty string for valid check on preg_match by Umherirrender

ExternalGuidance

 * - Update selector for page actions in Minerva by Jon Robson

FeaturedFeeds

 * - Use MWTimestamp::convert instead of catching Exception on timestamps by Umherirrender

GeoCrumbs

 * - Fix non-escaped messages used in page subtitles by Umherirrender

GeoData

 * - tests: Replace deprecated Parser::getFreshParser by Umherirrender

GlobalBlocking

 * - Add missing `the` to the globalblocking-unblock-logentry message by MarcoAurelio
 * - Fix non-escaped messages used in page subtitles by Umherirrender

GlobalPreferences

 * - Allow extensions and skins to define a globalizable custom field by Func

Graph

 * - Move ajax-loader.gif from includes to images by Umherirrender

GrowthExperiments

 * - Add mw-no-invert class to thumbnails by Ed Sanders
 * - SpecialManageMentors: Skip OOUI initialization when transcluding by Func
 * - Migrate several IDatabase::select calls by Martin Urbanec

ImageMap

 * - Remove null fallback from DOMElement::getAttribute by Umherirrender

InputBox

 * - Add missing 'mediawiki.ui.button' module by Bartosz Dziewoński

Kartographer

 * - Add mw-invert to map tiles by Ed Sanders

LoginNotify

 * - build: Add @phan-var to handle varying return value of hash_hmac by Umherirrender

Math

 * - Fix integral command namings  by Moritz Schubotz (physikerwelt)
 * - Refine skipped indices in MMLGenerationTexUtilTest by Stegmujo
 * - Render MathML for atop and choose by Stegmujo
 * - Render MathML for some letters used in mhchem by Stegmujo
 * - Render MathML for harpoons and arrows for mhchem by Stegmujo
 * - Render MathML for tripledash for mhchem  by Stegmujo
 * - Render MathML for mathchoice for mhchem by Stegmujo
 * - Add mhchem-tex macros to MMLGenerationTexUtilTest by Stegmujo
 * - Use white-space:break-spaces where appropriate by Ed Sanders

MediaSearch

 * - search sli: Fix broken 'performance' check and update to NT level 2 by Erik Bernhardson

MobileFrontend

 * - Filter out editnotice-notext by David Lynch
 * - tests: Declare class properties on DeviceDetectorServiceTest by Umherirrender
 * - Handle possible null for ownerDocument by Umherirrender
 * - Editor supports multiple edit buttons by Jon Robson
 * - mobile.init/editor: Add a button to switch to WTE if loading VE is slow by Bartosz Dziewoński

MultimediaViewer

 * - tests: Remove pointless "Hash handling" test that leaves black overlay by Timo Tijhof
 * - tests: Prevent native "Back" navigation in mmv.test.js by Timo Tijhof
 * - mmv.lightboxinterface: remove 'isFullscreened' data by Timo Tijhof
 * - Remove unused core JavaScript modules that ship with MediaWiki core by Hannah Okwelum
 * - Add mw-no-invert class to MMV overlay by Ed Sanders

Nuke

 * - Use namespaced classes by Fomafix

PageTriage

 * - Implement DST recommended changes by suecarmol
 * - Select username checkbox on text input by suecarmol
 * - Special:NewPagesFeed fix listItem template error by jsn
 * - Rename new UI feature flag by suecarmol
 * - Fix tag parameters not being synced across all tags by Sohom
 * - Add the redirect target to the template call while logging an RfD by Sohom

PageViewInfo

 * - Fix handling of cached errors by Gergő Tisza

ParserFunctions

 * - Remove check for return value false from pow by Umherirrender

Phonos

 * - Add wrapper around PhonosButton and attribution link by MusikAnimal

Popups

 * - Better support RTL direction extracts in ReferencePreviews by WMDE-Fisch

ProofreadPage

 * - Page quality widget: fix tabindex typo and increment by Sam Wilson
 * - Get quality level from current textbox by Sam Wilson
 * - Allow wikitext in PageQualityInputWidget's field label by Sam Wilson

RelatedArticles

 * - Add mw-no-invert class to thumbnails by Ed Sanders

ReportIncident

 * - i18n: Wording update for step 1 by Kosta Harlan
 * - Add selenium tests to test the reporting dialog by Dreamy Jazz
 * - Test that a unsuccessful API response keeps the the dialog open by Dreamy Jazz
 * - discussiontools: Integrate with overflow menu by Kosta Harlan
 * - form: Remove links field by Kosta Harlan
 * - Remove report button and replace with a tools menu link by Dreamy Jazz
 * - build: Add quibble.yaml and enable early warning bot feedback by Kosta Harlan

Score

 * - Use white-space:break-spaces where appropriate by Ed Sanders

Scribunto

 * - build: Change phan suppression to @phan-var for proc_get_status return by Umherirrender
 * - tests: Declare class properties in LuaEngineTestHelper by Umherirrender

SecureLinkFixer

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

SecurePoll

 * - tests: Declare class properties on TallierTest by Umherirrender
 * - Fix non-escaped messages used in page subtitles by Umherirrender

SyntaxHighlight_GeSHi

 * - Set hasWikitextInput flag to false by Isabelle Hurbain-Palatin

Thanks

 * - build: Update linters by Ed Sanders
 * - IP Masking: Do not allow temporary users to thank other users by Martin Urbanec

TimedMediaHandler

 * - Remove call to Database::commit by Amir Sarabadani

Translate

 * - Statistics: more typed properties by Niklas Laxström
 * - MessageProcessing: Use TitleArrayFromResult instead of TitleArray by Derick Alangi

TranslationNotifications

 * - build: Use conf.MessageDirs for banana path config by James D. Forrester

UniversalLanguageSelector

 * - Remove unused ULSCompactLinksDisablePref script by Niklas Laxström

UploadWizard

 * - Add handling of 'duplicateversions' warning by Bartosz Dziewoński
 * - Fix handling of 'nochange' warning by Bartosz Dziewoński
 * - mw.ApiUploadHandler: Deduplicate button generation code by Bartosz Dziewoński

UrlShortener

 * - Use the new virtual domain mapping system by Amir Sarabadani
 * - Dont load ext.urlShortener.toolbar module on Special:UrlShortener by Dringsim
 * - Hooks: use dependency injection where possible by MusikAnimal
 * - Add link to download QR code by MusikAnimal

VisualEditor

 * - Edit check: avoid a hardcoded "continue" in the rejection dialog by David Lynch
 * - Edit check: stop an error on save if no reference-needing content added by David Lynch
 * - Disable $wgVisualEditorUseSingleEditTab on mobile site  by Jon Robson
 * - build: Restore .phan/config.php by Umherirrender
 * - DesktopArticleTarget.init: Remove code for updating edit links   by Bartosz Dziewoński
 * - Change icon for supported skins when both VE and source edit icons are present by Jon Robson
 * - Fix wikitext mixed toggling   by hmonroy
 * - Edit check: Simplify "experience" config to "maximumEditcount" by Ed Sanders
 * - config: Mention ecenable in edit check config by Ed Sanders

Wikibase

 * - REST: Add aliases to read model Item by Ollie Shotton
 * - REST: Add "Patch Item Aliases" to OAS by Ollie Shotton
 * - REST: Use CONTEXT_LABEL/CONTEXT_DESCRIPTION over CONTEXT_VALUE by Ollie Shotton
 * - REST: Add SetPropertyDescription to OAS by muja
 * - REST: Remove spaces in arrow function declaration by muja
 * - REST: Mark several endpoints as production-ready   by muja
 * - Drop reimplementations of is_iterable & iterator_to_array by thiemowmde
 * - EntityId: Assert valid serialization in unserialize by Lucas Werkmeister
 * - EntityId: Remove Serializable interface and methods by Lucas Werkmeister
 * - tests: Use addDBDataOnce instead of DIY implementations, part 2 by Daimona Eaytoy
 * - tests: Use addDBDataOnce instead of DIY implementation by Daimona Eaytoy

WikibaseCirrusSearch

 * - Revert "Use HookHandlers for core hooks"  by Umherirrender

WikibaseLexeme

 * - LexemeId, LexemeSubEntityId: Assert valid serialization in unserialize by Lucas Werkmeister
 * - LexemeId, LexemeSubEntityId: Remove serialize, unserialize by Lucas Werkmeister

WikibaseMediaInfo

 * - MediaInfoId: Assert valid serialization in unserialize by Lucas Werkmeister
 * - MediaInfoId: Remove serialize, unserialize by Lucas Werkmeister
 * - Remove tests for serialization stability by Lucas Werkmeister

WikibaseQualityConstraints

 * - Bump sinon from 15.2.0 to 16.1.0 by Addbot

WikiEditor

 * - Use namespaced classes by Fomafix
 * - Hard deprecate editPageShowEditFormInitial by Fomafix

WikiLambda

 * - Add programmingLanguageVersion metadata key to i18n. by apine
 * - ZObjectStore: Switch to ICP instead of LB by Amir Sarabadani
 * - Add phan supress for addHeadItems method by gengh
 * - Update function-schemata sub-module to HEAD (2d8f3bb) by gengh

WikiLove

 * - Fix contrast and readability of text by pcoombe
 * - api: Use ParserFactory on module creation by Umherirrender
 * - Remove eslint rule "no-multi-str": "off" by Fomafix
 * - Replace deprecated global function wfGetDB by Fomafix
 * - Inject service Parser into API handler by Fomafix
 * - Inject service UserOptionsLookup into hook handler by Fomafix
 * - Use namespaced classes by Fomafix

WikimediaEvents

 * - Introduce Web Accessibility Features and Submodule by ksarabia
 * - searchSli: Fix broken 'performance' check and update to NT Level 2 by Timo Tijhof

WikimediaMaintenance

 * - passwordAudit: Replace use of PasswordFactory::init by James D. Forrester
 * - blameStartupRegistry.php: Remove unneeded int casts by Umherirrender
 * - Read wikiadmin username from php by Amir Sarabadani

WikimediaMessages

 * - Add messages for Fon Wikipedia (fonwiki) by gerritbot

MinervaNeue

 * - Selenium tests: broaden the definition of the article page edit link by David Lynch
 * - Restore watchstar for anonymous users by Jon Robson
 * - Support extension of page actions via hook and addPortletLink by Jon Robson
 * - ToggleListItem: correct to   by MusikAnimal

Vector

 * - Remove common CSS module by bwang
 * - Use skin variables instead of local variables where possible by Jon Robson
 * - Copy common styles into legacy vector by bwang
 * - [Prototype] Edit project link page on reading prototype by Jan Drewniak
 * - Copy common styles into vector by bwang
 * - [Prototype] Add screen resolution to Typography prototype by Jan Drewniak
 * - Preferences set to "disabled" return false when isEnabled is called by Jon Robson
 * - Remove unnecessary imports in component stylesheets, make variable and mixin imports consistent by bwang
 * - [Prototype] Change i18n message by Jan Drewniak
 * - Correct a recently-added message by Amir E. Aharoni
 * - Add columnStart container and update grid styles by bwang
 * - Prevent legacy tab expand/collapse infinite loop if they have a border/margin by Porplemontage

VisualEditor/VisualEditor

 * - Use white-space:break-spaces where appropriate by Ed Sanders
 * - Strip bold from headings when pasting by Ed Sanders

No changes

 * 3D
 * ActiveAbstract
 * AntiSpoof
 * ApiFeatureUsage
 * ArticleCreationWorkflow
 * Babel
 * BetaFeatures
 * BounceHandler
 * Calendar
 * Campaigns
 * Capiunto
 * CentralNotice
 * CharInsert
 * ChessBrowser
 * CirrusSearch
 * Cite
 * CiteThisPage
 * Citoid
 * Cognate
 * CologneBlue
 * CommonsMetadata
 * ConfirmEdit
 * ContactPage
 * CreditsSource
 * Dashiki
 * DismissableSiteNotice
 * Echo
 * Elastica
 * ElectronPdfService
 * EventBus
 * EventLogging
 * ExtensionDistributor
 * FileExporter
 * FileImporter
 * FlaggedRevs
 * Flow
 * FundraiserLandingPage
 * FundraisingTranslateWorkflow
 * Gadgets
 * GlobalCssJs
 * GlobalUsage
 * GlobalUserPage
 * GlobalWatchlist
 * GoogleNewsSitemap
 * GuidedTour
 * IPInfo
 * ImageSuggestions
 * Insider
 * Interwiki
 * InterwikiSorting
 * Josa
 * JsonConfig
 * LabeledSectionTransclusion
 * LandingCheck
 * LdapAuthentication
 * Linter
 * LiquidThreads
 * Listings
 * MachineVision
 * MapSources
 * MassMessage
 * MediaModeration
 * MobileApp
 * Modern
 * MonoBook
 * NavigationTiming
 * NearbyPages
 * NewUserMessage
 * Newsletter
 * Nostalgia
 * OATHAuth
 * OAuth
 * OAuthRateLimiter
 * ORES
 * OpenStackManager
 * PageAssessments
 * PageImages
 * PageNotice
 * PagedTiffHandler
 * ParserMigration
 * PdfHandler
 * Poem
 * PropertySuggester
 * QuickSurveys
 * Quiz
 * RSS
 * ReadingLists
 * RealMe
 * RevisionSlider
 * SandboxLink
 * SearchExtraNS
 * SearchVue
 * ShortUrl
 * SimilarEditors
 * SiteMatrix
 * SpamBlacklist
 * StopForumSpam
 * SubPageList3
 * SubpageSortkey
 * TemplateData
 * TemplateSandbox
 * TemplateStyles
 * TemplateWizard
 * TextExtracts
 * TheWikipediaLibrary
 * Timeless
 * TitleBlacklist
 * TocTree
 * TorBlock
 * TrustedXFF
 * TwoColConflict
 * UploadsLink
 * VipsScaler
 * VueTest
 * WebAuthn
 * WikibaseLexemeCirrusSearch
 * Wikidata.org
 * WikidataPageBanner
 * WikimediaApiPortal
 * WikimediaApiPortalOAuth
 * WikimediaBadges
 * WikimediaEditorTasks
 * WikimediaIncubator
 * Wikisource
 * Wikistories
 * XAnalytics
 * intersection
 * timeline
 * wikihiero

Total changes
294 Changes in 72 repos by 71 authors