MediaWiki 1.39/wmf.21/Changelog

Core changes

 * - Branch commit for wmf/1.39.0-wmf.21 by trainbranchbot
 * - Tests: Use createNoOpMock shortcut in a few more places by Thiemo Kreuz
 * - Handle setComment for specials by Mark A. Hershberger
 * - phpunit tests for ParsoidHandler::html2wt by daniel
 * - Tests: Replace trivial willReturnCallback with direct willReturn by Thiemo Kreuz
 * - Add Sylheti (rn) and Rundi (rn)  by Amir E. Aharoni
 * - docs: Use the default EXTRACT_PRIVATE=NO for Doxygen output by Timo Tijhof
 * - Ensure custom locales for Moment.js overrides, don't change 'en' by Bartosz Dziewoński
 * - test: installMockMwServices should apply overrides per default. by daniel
 * - Fix confusing $$var indirection in importImages script by Thiemo Kreuz
 * - tests: Use `overrideConfigValue(s)` where necessary by Derick Alangi
 * - RateLimiter: improve test coverage by daniel
 * - Make RateLimiter use WRStats by Tim Starling
 * - recentchanges: Remove special handling of rc_ip for postgres by Umherirrender
 * - tests: ensure LocalServerObjectCache is reset before redefining by mainframe98
 * - Add Ghanaian Pidgin (gpe) by Amir E. Aharoni
 * - HtmlForm: Null coalescence in trim calls    by Reedy
 * - Update pako to 2.0.4 by Ed Sanders
 * - Fix type declarations in MainConfigSchema by daniel
 * - SettingsBuilder: report warnings by daniel
 * - language: Improve type hints in MessageCache.php by Timo Tijhof
 * - rdbms: Flip ConnectionManager deprecations to match ILoadBalancer by Lucas Werkmeister
 * - tests: Fix outdated /tests/qunit structure and flatten a bit  by Timo Tijhof
 * - WRStats: Add rate limiter support by Tim Starling
 * - MessageCache: Don't load the content for uncacheable rows by Tim Starling
 * - MessageCache style updates by Tim Starling
 * - language: Disable MessageCache if load throws an exception by Tim Starling
 * - ApiQueryImageInfo: Use longhand for 'localonly' in getAllowedParams by Reedy
 * - Sync up with Parsoid parserTests.txt by Subramanya Sastry
 * - REST: introduce getPrivateRouteUrl by daniel
 * - Make use of PHPUnit fail shortcut by Thiemo Kreuz
 * - SpecialRecentChangesLinked: Only add the second join if it's read new by Amir Sarabadani
 * - Hooks: Use more meaningful name for SkinAfterPortlet hook parameter by Jon Robson
 * - SpecialDiff: Don't pass null to trim by Alexander Vorwerk
 * - mw.htmlform: Fix hide-if/disable-if when there are multiple forms on the page by Bartosz Dziewoński
 * - Update OOUI to v0.44.1               by James D. Forrester
 * - objectcache: Accelerate async memcached writes with "noreply" by Tim Starling
 * - tests: Remove intermediary `suites` concept from /tests/qunit by Timo Tijhof
 * - mediawiki.deflate: Use QUnit.test.each data provider by Timo Tijhof
 * - Improve wording of a few templatelinks migration messages by Kevin Israel
 * - tests: Set wgLang with MediaWikiIntegrationTestCase::setUserLang by Umherirrender
 * - ResourceLoader: Remove DependencyStore::renew  by Timo Tijhof
 * - tests: Use `overrideConfig(Value|Values)` where needed by Derick Alangi
 * - Maintenance scripts: replace most globals with Config by Ferran Tufan
 * - Remove deprecated maintenance script resetUserTokens.php by Umherirrender
 * - Various whitespace changes by Umherirrender
 * - tests: Use MainConfigNames constants on overrideConfigValue by Umherirrender
 * - Fix mistake in comment for templatelinks PK change by Kevin Israel
 * - Ensure that strlen does not get passed a (valid) null by Mark A. Hershberger
 * - mw.deflate: Add test for large 5MB -> 300kb file by Ed Sanders
 * - Ensure we don't pass null to mb_strlen. by Mark A. Hershberger
 * - tests: Use `overrideConfig(Value|Values)` where needed by Derick Alangi
 * - Handle null passed to wfShorthandToInteger and Html::element by Mark A. Hershberger
 * - Add support for write new for templatelinks migration by Amir Sarabadani
 * - Disallow composer/installers plugin in composer.json by Lucas Werkmeister
 * - Revert "Setup: Promote clearActionName log message to runtime warning" by Awight
 * - phpunit: Restore unreachable code by Kosta Harlan
 * - phpunit.xml.dist: Align contents with suite.xml  by Kosta Harlan
 * - Setup: Promote clearActionName log message to runtime warning by Timo Tijhof
 * - Show fragment of middle page in Special:DoubleRedirects by Brian Wolff
 * - Don't throw away user's text when rate limit is exceeded by Tim Starling
 * - ResourceLoader: Restore 5min startup cache-control (was 60s) by Timo Tijhof
 * - MWCryptHash: Clean up check for acceptable hashing algorithms by Kevin Israel
 * - MWCryptHash: Remove "acceptably unstable" from doc comments by Kevin Israel
 * - MWCryptHashTest: Move into libs directory by Kevin Israel
 * - RepoGroup: Convert time option of findFile to TS_MW by Umherirrender
 * - abstract schema validation: Add decimal as valid type by Umherirrender
 * - rdbms: Improve documentation around false/bool by Umherirrender
 * - schema: Allow default value 'infinity' for postgres timestamps by Umherirrender
 * - Re-apply "textSelection: Use execcommand to replace text" by Esanders

Vendor

 * - Bump parsoid to 0.16.0-a16     by Arlo Breault
 * - Update OOUI to v0.44.1 by James D. Forrester

AbuseFilter

 * - Try to unbreak tests on sqlite by Matěj Suchánek
 * - postgres: Fix changeNullableField calls by Umherirrender
 * - tests: Improve tests for postgres by Umherirrender
 * - Convert to abstract schema by Umherirrender

AntiSpoof

 * - Convert to abstract schema by Umherirrender

ArticlePlaceholder

 * - Remove unused code, class properties and such by Thiemo Kreuz
 * - Use full qualified class names in @covers tags by Thiemo Kreuz

BounceHandler

 * - Bump minimum required version for upgrade to 1.31 by Umherirrender

CampaignEvents

 * - Return central user id on ListParticipantsHandler by Claudio Melo
 * - Add missing 'Search for participants' placeholder on search participants input, on event details special page by Claudio Melo
 * - Change chat group label message by Claudio Melo
 * - tests: Fix timestamps in ParticipantsStoreTest for postgres by Umherirrender
 * - Add the ability to remove participants from event by Claudio Melo
 * - Add GENDER support to organizer role names by Daimona Eaytoy
 * - Fix query syntax in ParticipantsStore by Daimona Eaytoy
 * - Remove repetition in PLURAL by Amir E. Aharoni
 * - Fix capitalization after colon by Daimona Eaytoy
 * - Handle event page move and deletion by Daimona Eaytoy

CheckUser

 * - Use user ID for contributions hook instead of UserIdentityLookup by dreamyjazz
 * - SpecialCheckUser: Null coalescene in execute by Reedy
 * - Add checkuser log actor migration code for SCHEMA_COMPAT_WRITE_BOTH by Alexander Vorwerk
 * - SpecialCheckUserLog: Null coalescence in execute by Reedy
 * - Use UserIdentityLookup over UserFactory in contributions hook by dreamyjazz
 * - Add link of checkuser actions done by registered users in contributions page by AntiCompositeNumber
 * - Add cul_actor to cu_log by Alexander Vorwerk

CirrusSearch

 * - reindex: Detect index type from live mappings by Erik Bernhardson
 * - Ensure that strtr does not get null. by Mark A. Hershberger
 * - Trim only first occurence of slash on Insource and Intitle regex value by joseph emmanuel kayode (iemarjay)
 * - phpunit: Convert Version/ElasticsearchIntermediary/UserTestingEngine to integration tests by Kosta Harlan
 * - Make use of PHPUnit's createMock shortcut by Thiemo Kreuz
 * - phpunit: Unit tests may not access MW services by Kosta Harlan
 * - nit: fix settings docu typo by Ryan Kemper
 * - Don't pass null where strings are expected by Mark A. Hershberger

Cite

 * - phpunit: Unit tests may not access MW services by Kosta Harlan

ConfirmEdit

 * - phpunit: Check for MW_PHPUNIT_TEST constant by Kosta Harlan

ContentTranslation

 * - CX3 Build 0.2.0+20220718  by Santhosh Thottingal
 * - Customize MT provider names to human readable names by Santhosh Thottingal
 * - Remove unnecessary vendor prefixes and mixins for animations by Ed Sanders

CreditsSource

 * - Convert to abstract schema by Umherirrender
 * - Bump minimum required version for upgrade to 1.31 by Umherirrender

DiscussionTools

 * - Show a "Return to reply/new topic" button when widget is scrolled off the screen by Ed Sanders
 * - Avoid localized digits in internal timestamps in JS by Bartosz Dziewoński
 * - Parse 'DiscussionToolsTimestampFormatSwitchTime' config value as UTC by Bartosz Dziewoński

DonationInterface

 * - Enable Braintree gateway for chooser test by Elliott Eggleston
 * - Switch four countries to Adyen by Elliott Eggleston
 * - Add Braintree at the end of GatewayChooser defaults by Andrew Green
 * - Add second round of filters by Damilare Adedoyin
 * - Fix Adyen API param names by Elliott Eggleston
 * - Check for monthly convert DOM elements in Adyen  by Andrew Green
 * - Update smashpig to v0.8.1 by Damilare Adedoyin
 * - Fix syntax error in email_forms/i18n/qqq.json and add to CI by Sam Wilson

Echo

 * - Make interface compatible with RecursiveIterator by Mark A. Hershberger
 * - Remove some repetition in EchoGetBundleRules hook handler by Kunal Mehta
 * - Convert to abstract schema by Umherirrender
 * - schema: Drop foreign keys from table echo_push_subscription by Umherirrender
 * - schema: Move all sql files to own folder by Umherirrender
 * - Bump minimum required version for upgrade to 1.31 by Umherirrender

FlaggedRevs

 * - Add missing null check to FlaggedRevs::autoReviewEdit by Thiemo Kreuz
 * - Revert "Temporary patch to dump debug info if status is notOk in CI" by Subramanya Sastry
 * - Temporary patch to dump debug info if status is notOk in CI by Arlo Breault
 * - UnreviewedPages: Set an empty string default for category parameter by Reedy
 * - PendingChanges: Set an empty string default for category parameter by Reedy
 * - FlaggedRevsUpdaterHooks: DRY, factor out initial table creation by James D. Forrester
 * - Add support for read new of templatelinks by Amir Sarabadani
 * - Convert to abstract schema by Umherirrender
 * - Standardise type for timestamp columns by Umherirrender
 * - FlaggableWikiPage: Handle revisions with same timestamp for pending list by Umherirrender
 * - Bump minimum required version for upgrade to 1.31 by Umherirrender
 * - Remove index detection 'rev_page_timestamp' by Umherirrender

Flow

 * - Call IDatabase::timestamp for timestamp columns to support postgres by Umherirrender

GeoData

 * - Convert to abstract schema by Umherirrender
 * - Bump minimum required version for upgrade to 1.31 by Umherirrender
 * - Added geosearch api statically in extension.json by joseph emmanuel kayode (iemarjay)

GlobalBlocking

 * - SpecialGlobalBlockList: Null coalescence in loadParameters by Reedy

GlobalUsage

 * - Bump minimum required version for upgrade to 1.31 by Umherirrender

GlobalWatchlist

 * - Follow-up 3e2653f83: Update ResourceLoader reference now it's been namespaced by James D. Forrester

GrowthExperiments

 * - maintenance: Add getImageSuggestionData script by Kosta Harlan
 * - Mentor dashboard: remove mentee table caption by Sergio Gimeno
 * - Make use of PHPUnit shortcuts like create(NoOp)Mock by Thiemo Kreuz
 * - Make "failed to load config" error more expressive by Thiemo Kreuz
 * - Use in_array instead of array_search where appropriate by Thiemo Kreuz
 * - Make use of the PHPUnit shortcut fail by Thiemo Kreuz
 * - Fix visibility of PHPUnit setUp methods and such by Thiemo Kreuz
 * - Delete maintenance/T304461.php by Martin Urbanec
 * - NewImpact: Set up ResourceLoader module and Vue scaffolding by Kosta Harlan
 * - [i18n] Rework pretext in Special:EnrollAsMentor by Martin Urbanec
 * - NewImpact: Add base class and config by Kosta Harlan

GWToolset

 * - Link to Commons talk page to request domains in $wgCopyUploadsDomains by Andre Klapper

ImageSuggestions

 * - Use getOption to detect user preferences by Matthias Mullie

MachineVision

 * - Convert to abstract schema by Umherirrender

Math

 * - Revert "Add wbEntitySelector widget to edit qid in VE" by Reedy
 * - Use FallbackLabelDescriptionLookupFactory in MathWikibaseConfig by Lucas Werkmeister
 * - Add wbEntitySelector widget to edit qid in VE by Fwolz

Nuke

 * - SpecialNuke: Null coalescence in execute by Reedy

OATHAuth

 * - Change type hint from Wikimedia\Rdbms\DBConnRef to IDatabase by Umherirrender
 * - Bump minimum required version for upgrade to 1.31 by Umherirrender

OAuth

 * - Covert CSS to LESS by Ed Sanders
 * - build: update linters by Ed Sanders
 * - Convert dialog to OOUI and fix font sizes in various skins by Ed Sanders
 * - Stop implementing obsolete CentralAuth hook by Alexander Vorwerk
 * - Convert to abstract schema by Umherirrender
 * - Standardise type for timestamp columns by Umherirrender
 * - Bump minimum required version for upgrade to 1.31 by Umherirrender

OAuthRateLimiter

 * - Get db connection to correct domain for central wiki by Umherirrender

OpenStackManager

 * - Replace Linker with LinkRenderer by Ferran Tufan

ORES

 * - Convert to abstract schema by Umherirrender
 * - Bump minimum required version for upgrade to 1.31 by Umherirrender

PageImages

 * - SearchResultProvideThumbnailHookHandler: Simplify code by Kosta Harlan

PageViewInfo

 * - Don't pass in null for key by Mark A. Hershberger

ProofreadPage

 * - PageLevel::getUserFromUserName Short circuit if $name is null by Reedy

PropertySuggester

 * - scripts: Avoid DELETE LIMIT for script UpdateTable on postgres by Umherirrender

ReadingLists

 * - Convert to abstract schema by Umherirrender

Renameuser

 * - SpecialRenameuser: Don't pass null to explode by Reedy

Score

 * - Use a slower debounce for updating the live preview by Ed Sanders

Scribunto

 * - Add type hints for iterator implementations by Mark A. Hershberger
 * - UstringLibraryNormalizationTestProvider: Fix 'destory' typo for 'destroy' by Mark A. Hershberger

SecurePoll

 * - SecurePoll: Adding files for 2022 vote by Joe Sutherland
 * - Convert to abstract schema  by Umherirrender
 * - Standardise type for timestamp columns by Umherirrender
 * - Bump minimum required version for upgrade to 1.31 by Umherirrender

SpamBlacklist

 * - Add `sboverride` to `editprotected` grant by Martin Urbanec
 * - Lowercase action message, according to convention by Amir E. Aharoni
 * - Restore "block list" by Amir E. Aharoni
 * - Add `sboverride` right to override the spam blacklist by DannyS712

SyntaxHighlight_GeSHi

 * - fix: Mark Pygmentize::fetchVersion as public, but @internal by Bryan Davis
 * - Pygmentize: Cache pygments-version in memc (in addition to APCU) by Timo Tijhof

TimedMediaHandler

 * - ApiQueryVideoInfo::getAllowedParams: Document why the override exists by Reedy
 * - Revert "ApiQueryVideoInfo: Initialise array in getAllowedParams" by Reedy
 * - ApiQueryVideoInfo: Initialise array in getAllowedParams by Reedy
 * - Bump minimum required version for upgrade to 1.31 by Umherirrender

Translate

 * - ManageMessageGroupsActionApi: Add strict types; move to namespace by Wangombe
 * - Use MessageGroupReview as a service by Wangombe
 * - QueryManageMessageGroupsActionApi: Add strict types; move to namespace by Wangombe
 * - GroupReviewActionApi: Add strict types and move to namespace by Wangombe
 * - ExportTranslationsSpecialPage: Null coalescence in execute by Reedy
 * - PageTranslationSpecialPage: Null coalescence in execute by Reedy
 * - Always use IDatabase::addQuotes for quoting by Umherirrender
 * - When calling Title::makeTitle, cast namespace values to int by James D. Forrester

TrustedXFF

 * - Add Netskope, remove NTL by Tim Starling

VisualEditor

 * - Remove temporary compat for $wgVectorTitleAboveTabs = false by Bartosz Dziewoński
 * - Add 'vector-body' hack to TargetWidgets by Ed Sanders
 * - Remove/fix obsolete code trying to un-highlight parameters by Thiemo Kreuz
 * - Unhighlight parameter on blur by Adam Wight
 * - Move debounce check from outline into part widget class by Thiemo Kreuz
 * - Remove comments from two-pane layout that don't add information by Thiemo Kreuz
 * - Simplify interface to remove pages by Adam Wight
 * - Update VE core submodule to master (1800c35de)  by Bartosz Dziewoński
 * - Merge redundant sidebar selection events in two-pane layout by Thiemo Kreuz
 * - Exit loop in onStackLayoutFocus earlier by Thiemo Kreuz
 * - Rename misleading templateParameterAdded event by Thiemo Kreuz
 * - Rename misleading templateParameterSelectionChanged event by Thiemo Kreuz
 * - Remove non-helpful 1px hack from template dialog sidebar by Thiemo Kreuz
 * - Increase default debounce of live extension inspector/dialog to 1000ms by Ed Sanders
 * - Adapt bottom margin of last element in content pane of template dialog by Svantje Lilienthal
 * - Only move content pane element to top when sidebar element is clicked by Svantje Lilienthal
 * - Update VE core submodule to master (38470f11e) by Bartosz Dziewoński
 * - Use named colors in template dialog LESS styles by Thiemo Kreuz
 * - Don't call parent on SelectWidget focus event   by WMDE-Fisch
 * - Remove unused media/meta-related messages by Thiemo Kreuz
 * - Minor fixes to template dialog related code documentation by Thiemo Kreuz
 * - Wikitext mode: Use action=parse for preview by Ed Sanders
 * - ApiVisualEditorTest: Set Database annotation and $tablesUsed by Kosta Harlan
 * - Use position-sticky from mediawiki mixin by WMDE-Fisch
 * - Safe to call setPage with a null page by Adam Wight
 * - Don't set a ParameterPage as next selection after delete by WMDE-Fisch
 * - Use @type instead of @var for JavaScript variable by WMDE-Fisch
 * - Scroll parameter items into view when hidden behind sticky by WMDE-Fisch
 * - Document some classes touched in the sidebar rewrite by Adam Wight
 * - Differ between setting and highlighting a parameter   by WMDE-Fisch
 * - Use short syntax for transforming one event into another by Thiemo Kreuz
 * - Fix 'File:' and 'Category:' links being piped unnecessarily by Bartosz Dziewoński
 * - Don't access the stacklayout directly by WMDE-Fisch

Wikibase

 * - REST: Introduce middleware for route handlers by Jakob Warkotsch
 * - REST: Throw in ItemUpdater instead of returning null by Jakob Warkotsch
 * - REST: Add input validation to RemoveItemStatement by Ollie Shotton
 * - REST: Create RemoveItemStatement use case by Ollie Shotton
 * - Fix phpcs-modified scripts by Jakob Warkotsch
 * - Restore .mailmap by Lucas Werkmeister
 * - Remove WikibaseTerms debug logging again by Lucas Werkmeister
 * - schema: Use mwtimestamp type for change_time column by Umherirrender
 * - Check staged files in phpcs-modified scripts by Jakob Warkotsch
 * - mw-appy-wb-settings: Clarify how this file is used by Kosta Harlan
 * - Use FallbackLabelDescriptionLookupFactory in PropertyHandler by Lucas Werkmeister
 * - Use FallbackLabelDescriptionLookupFactory in ItemHandler by Lucas Werkmeister
 * - Use FallbackLabelDescriptionLookupFactory in entity search callbacks by Lucas Werkmeister
 * - SiteLinksForDisplayLookupTest: Don't access MW services in unit test by Kosta Harlan
 * - Use FallbackLabelDescriptionLookupFactory in client hook handlers by Lucas Werkmeister
 * - RemoveClaimsTest/SetClaimTest: Override rate limits by Kosta Harlan
 * - HtmlPageLinkRendererEndHookHandlerTest: Populate interwiki table  by Kosta Harlan
 * - Use LanguageNameLookupFactory in entity types by Lucas Werkmeister
 * - Use FallbackLabelDescriptionLookupFactory in property entity types  by Lucas Werkmeister
 * - Introduce DispatchingFallbackLabelDescriptionLookup by Lucas Werkmeister
 * - Use FallbackLabelDescriptionLookupFactory in item entity types  by Lucas Werkmeister
 * - client: Remove populateInterwiki.php by Umherirrender

WikibaseCirrusSearch

 * - Use FallbackLabelDescriptionLookupFactory in Hooks by Lucas Werkmeister

WikibaseLexeme

 * - Remove TODO comment since T239208 allows for labels to be Objects by gtzatchkova
 * - Use user language for ItemSelectorWidgetField by Lucas Werkmeister
 * - Use FallbackLabelDescriptionLookupFactory in SpecialNewLexemeAlpha  by Lucas Werkmeister
 * - Use FallbackLabelDescriptionLookupFactory in SpecialNewLexeme  by Lucas Werkmeister

WikibaseQualityConstraints

 * - Don’t escape special page description by Lucas Werkmeister
 * - Bump grunt-banana-checker from 0.9.0 to 0.10.0 by Addbot

WikiLambda

 * - README: Give an example of what to add to LocalSettings.php by James D. Forrester
 * - tests: Sort result of ZObjectStore::findReferencedZObjectsByZFunctionId by Umherirrender
 * - Update function-schemata sub-module to HEAD (779de81) by James D. Forrester
 * - wikilambda_fetch: return Z5 errors instead of error message strings by teleosteen
 * - Typo + alternative implementation for findLatestKey by Florent
 * - Split each getter and setter tests in their own description by Florent
 * - Add missing tests for zobject by Florent

WikiLove

 * - postgres: Fix path in updater by Umherirrender

WikimediaEditorTasks

 * - Convert to abstract schema by Umherirrender

WikimediaMaintenance

 * - createExtensionTables.php: Use abstract schema sql file for OAuth by Umherirrender
 * - addWiki.php: Use abstract schema sql file for CreditsSource by Umherirrender
 * - addWiki.php: Use abstract schema sql file for GeoData by Umherirrender
 * - deleteWiki: Get db connection to correct domain by Umherirrender
 * - addWiki.php: Use abstract schema sql file for AbuseFilter by Umherirrender
 * - Use abstract schema sql file for Echo by Umherirrender
 * - addWiki.php: Use only abstract schema sql file for SecurePoll by Umherirrender
 * - createExtensionTables.php: Use abstract schema sql file for FlaggedRevs by Umherirrender
 * - Fix path of sql files for Echo by Umherirrender
 * - addWiki.php: Use abstract schema sql file for AntiSpoof by Umherirrender
 * - createExtensionTables.php: Use abstract schema sql file for ORES by Umherirrender
 * - createExtensionTables.php: Use abstract schema sql file for Newsletter by Umherirrender

Wikistories

 * - Try to read the article id from the available page reference by Stephane Bisson
 * - Provide message for name of special page by Stephane Bisson
 * - Register explicit dependency to ext.eventLogging by Stephane Bisson
 * - Discover: use wgPageName instead of wgTitle by Stephane Bisson

MinervaNeue

 * - Replace bugzilla bug numbers with Phabricator task IDs by Ed Sanders
 * - Bugfix: Insert Nearby menu entry to group by suecarmol
 * - User menu overflow: add change block and unblock by suecarmol

Vector

 * - Revert "Refactor Vector tabs layout for reduced size & complexity" by Jdlrobson
 * - Refactor Vector tabs layout for reduced size & complexity   by Jan Drewniak
 * - Followup to 33a6fb6 - remove is-title-above-tabs from template by Jan Drewniak
 * - Fix config overrides in SkinVectorTest. by daniel
 * - styles: Remove obsolete variable by Volker E
 * - Move code for adding sticky header class to SkinVector22.php by Ed Sanders

VisualEditor/VisualEditor

 * - Re-crush SVGs now we're on SVGO 2.x not 1.x by James D. Forrester
 * - build: Replace automatic 'grunt-svgmin' with manual 'svgo' script by James D. Forrester
 * - Revert "WindowManager: Simplify teardown" by Esanders
 * - Update OOUI to v0.44.1 by James D. Forrester
 * - Visual diff: Use mix-blend-mode to improve opacity hacks for content in highlighted areas  by Ed Sanders

No changes

 * 3D
 * ActiveAbstract
 * AdvancedSearch
 * ApiFeatureUsage
 * ArticleCreationWorkflow
 * Babel
 * BetaFeatures
 * Calendar
 * Campaigns
 * Capiunto
 * CategoryTree
 * CentralAuth
 * CentralNotice
 * CharInsert
 * ChessBrowser
 * CiteThisPage
 * Citoid
 * CodeEditor
 * CodeMirror
 * Cognate
 * Collection
 * CologneBlue
 * CommonsMetadata
 * ContactPage
 * Dashiki
 * Disambiguator
 * DismissableSiteNotice
 * DoubleWiki
 * Elastica
 * ElectronPdfService
 * EntitySchema
 * EventBus
 * EventLogging
 * EventStreamConfig
 * ExtensionDistributor
 * ExternalGuidance
 * FeaturedFeeds
 * FileExporter
 * FileImporter
 * FundraiserLandingPage
 * FundraisingTranslateWorkflow
 * Gadgets
 * GeoCrumbs
 * GlobalCssJs
 * GlobalPreferences
 * GlobalUserPage
 * GoogleNewsSitemap
 * Graph
 * GuidedTour
 * IPInfo
 * ImageMap
 * InputBox
 * Insider
 * Interwiki
 * InterwikiSorting
 * Josa
 * JsonConfig
 * Kartographer
 * LabeledSectionTransclusion
 * LandingCheck
 * LdapAuthentication
 * Linter
 * LiquidThreads
 * Listings
 * LoginNotify
 * MapSources
 * MassMessage
 * MediaModeration
 * MediaSearch
 * MobileApp
 * MobileFrontend
 * Modern
 * MonoBook
 * MultimediaViewer
 * NavigationTiming
 * NearbyPages
 * NewUserMessage
 * Newsletter
 * Nostalgia
 * PageAssessments
 * PageNotice
 * PageTriage
 * PagedTiffHandler
 * ParserFunctions
 * PdfHandler
 * Poem
 * PoolCounter
 * Popups
 * QuickSurveys
 * Quiz
 * RSS
 * RelatedArticles
 * RevisionSlider
 * SandboxLink
 * SearchExtraNS
 * SecureLinkFixer
 * ShortUrl
 * SimilarEditors
 * SiteMatrix
 * StopForumSpam
 * SubPageList3
 * SubpageSortkey
 * TemplateData
 * TemplateSandbox
 * TemplateStyles
 * TemplateWizard
 * TextExtracts
 * Thanks
 * TheWikipediaLibrary
 * Timeless
 * TitleBlacklist
 * TocTree
 * TorBlock
 * TranslationNotifications
 * TwoColConflict
 * UniversalLanguageSelector
 * UploadWizard
 * UploadsLink
 * UrlShortener
 * VipsScaler
 * WebAuthn
 * WikiEditor
 * WikibaseLexemeCirrusSearch
 * WikibaseMediaInfo
 * Wikidata.org
 * WikidataPageBanner
 * WikimediaApiPortal
 * WikimediaApiPortalOAuth
 * WikimediaBadges
 * WikimediaEvents
 * WikimediaIncubator
 * WikimediaMessages
 * Wikisource
 * XAnalytics
 * cldr
 * intersection
 * timeline
 * wikihiero

Total changes
312 Changes in 60 repos by 63 authors