MediaWiki 1.41/wmf.18/Changelog

Core changes

 * - Branch commit for wmf/1.41.0-wmf.18 by trainbranchbot
 * - RawAction: Allow non-TextContent Contents to support action=raw if they want by James D. Forrester
 * - LanguageIntegrationTest: Replace call of deprecated Language::factory by Fomafix
 * - tests: Migrate Database::select usages to SelectQueryBuilder by Amir Sarabadani
 * - Title: Switch Database::select calls to SelectQueryBuilder by Amir Sarabadani
 * - phpunit: Delete DummyExtensionsTest by Daimona Eaytoy
 * - phpunit: Throw exception when MediaWikiServices is accessed too early  by Daimona Eaytoy
 * - Correct defaultsort translation in Nepali by Bada Kaji
 * - Inject extension namespaces into NamespaceInfo by Daimona Eaytoy
 * - MediaWikiTest: avoid leaking values into the global state by Daimona Eaytoy
 * - AuthManagerTest: Use localhost instead of local.wmftest.net by Daimona Eaytoy
 * - ApiBlockTest: improve permission checks by Daimona Eaytoy
 * - CoreParserFunctionsTest: Avoid username pattern reserved for temp users by Daimona Eaytoy
 * - Merge zh and zh-tw namespace translations back to zh-hans, zh-hant,  by Winston Sung
 * - Make ApiStashEditTest work if temp users are enabled by Daimona Eaytoy
 * - OutputPageTest: specify required config value by Daimona Eaytoy
 * - Mention change of Buginese main page name in Release notes by Amir E. Aharoni
 * - Update autonym for Buginese by Amir E. Aharoni
 * - ExtensionJsonTestBase: add session provider tests by Taavi Väänänen
 * - ExtensionJsonTestBase: add auth provider tests by Taavi Väänänen
 * - phpunit: Introduce TypeDefUnitTestCase by Daimona Eaytoy
 * - phpunit: Avoid hardcoded URL in UserRightsProxyTest by Daimona Eaytoy
 * - tests: Pass Title to editPage when already parsed by Umherirrender
 * - tests/parser: Use UserIdentity/Authority in ParserTestRunner by Umherirrender
 * - phpunit: Sync phpunit.xml.dist with tests/phpunit/suite.xml by Daimona Eaytoy
 * - Html: Move encodeJsVar + encodeJsCall from Xml by Lucas Werkmeister
 * - wdio-mediawiki: Upgrade mwbot from 2.0.0 to 2.1.3 by James D. Forrester
 * - Remove comma splice from renameuser-error-temp-user-reserved by Amir E. Aharoni
 * - tests: Migrate calls to Database::update to UpdateQueryBuilder by Amir Sarabadani
 * - tests: Migrate Database::delete calls to DeleteQueryBuilder by Amir Sarabadani
 * - MediaWiki.php: Add a note about HTMLFileCache::useFileCache path by Derick Alangi
 * - EnhancedChangesList: Use HTML/CSS for collapsing by Fomafix
 * - Set default migration stage of externallinks to read new and write both by Amir Sarabadani
 * - diff: make ins and del elements inline instead of inline-block by MusikAnimal
 * - diff: break spacing in inline ins and del elements by MusikAnimal
 * - Sync up core repo with Parsoid by Isabelle Hurbain-Palatin
 * - ResourceLoaderImageModule::getCssDeclarations: Tweak doc explanation by James D. Forrester
 * - search: Make DB-backed search engines use ICP instead of LB/LBF by Amir Sarabadani
 * - Sort the default config for DefaultUserOptions by Tim Starling
 * - ResourceLoader: Remove unused rasterized URL in ImageModule::getCssDeclarations  by Timo Tijhof
 * - phpunit: Streamline loading of Setup.php by Daimona Eaytoy
 * - phpunit: Use PHPUnit hooks to tear down the test DB after the last test by Daimona Eaytoy
 * - ApiBase: Cast $id to string in filterIDs by Reedy
 * - phpunit: More improvements for PHPUnit bootstrap files by Daimona Eaytoy
 * - phpunit: Improve PHPUnit bootstrap files by Daimona Eaytoy
 * - Add a config to stop shipping the legacy media styles by Arlo Breault
 * - phpunit: Special-case $wgWikimediaJenkinsCI in requireOnceInGlobalScope  by Daimona Eaytoy
 * - tests: Avoid DB queries in ApiStructureTest::provideParameters by Daimona Eaytoy
 * - diff: Add new or deleted line markers by hmonroy
 * - phpunit: Simplify PHPUnit bootstrap files by Daimona Eaytoy
 * - SpecialProtected(pages|titles): Cleanup getLevelMenu method by Func
 * - phpunit: Deprecate tests/phpunit/phpunit.php script by Daimona Eaytoy
 * - DefaultPreferencesFactory: Make UserOptionsManager variable as protected for GlobalPreferences by Func
 * - Prevent saving groups to a Temp User by AnaïsGueyte
 * - logging: Improve documentation of log parameter handling by Gergő Tisza
 * - HtmlInputTransformHelper: Remove unused private field by Bartosz Dziewoński
 * - rest: Use more narrow Bcp47Code interface in rest classes by thiemowmde
 * - Remove SpecialPageAction and associated logic, route old URLs by Bartosz Dziewoński
 * - OutputPage: Prompt temporary users to log in for certain actions by Thalia
 * - Fix grammar in OutputPage::showPermissionsErrorPage comment by Thalia
 * - [tests] Add a regression test for Xml::input by Martin Urbanec
 * - ParsoidParser: Record ParserOptions watcher on ParserOutput object  by Subramanya Sastry
 * - Tests: Do not rely on local value for $wgEmailAuthentication by Ammarpad
 * - Html: Support more attr types in getTextInputAttributes by Lucas Werkmeister
 * - Add the West Coast Bajau (Sama) language (bdr) by Amir E. Aharoni
 * - Always return the class as string from Html::getTextInputAttributes by Matěj Suchánek
 * - Externallinks: Keep domain wildcard if path is not specified by Amir Sarabadani
 * - Remove obsolete remark from docblock by Matěj Suchánek
 * - Title: Check local fallbacks for system message by Func
 * - Transclude Special:WantedPages as a vertical list by Justin Kunimune
 * - Add tests for RequestContext::getSkin by Tim Starling
 * - Remove $wgLang usage from Title by Tim Starling
 * - skins: Use IContextSource::msg in SkinTemplate by Umherirrender
 * - tests: Remove MWDebug::clearDeprecationFilters from unit tests teardown by Umherirrender
 * - HTMLForm: Dispatch field formatting explicitly instead of guessing method names by Bartosz Dziewoński
 * - HTMLForm: Extract a formatField helper method by Bartosz Dziewoński
 * - mediawiki.user: Validate the cookie in sessionId before returning by Bartosz Dziewoński
 * - interwiki: Hard deprecate InterwikiLoadPrefix hook by Derick Alangi
 * - tests: Resolve maintenance phpunit filename deprecation errors by Umherirrender
 * - tests: Avoid array_key_exists on $GLOBALS in stashMwGlobals by Umherirrender
 * - Simplify WHERE conditions with field = '' OR IS NULL by Umherirrender
 * - specials: Simplify query on Special:ListRedirects by Umherirrender
 * - user: Assert cross-wiki users in UserGroupManager by Umherirrender

Vendor

 * - Bump wikimedia/parsoid to 0.18.0-a17   by Subramanya Sastry

AbuseFilter

 * - Skip CheckUserHandlerTest if CheckUser is not installed by Daimona Eaytoy
 * - Re-enable skipped tests with fixes by Amir Sarabadani
 * - Temporarily skip tests being broken in READ NEW of externallinks by Amir Sarabadani
 * - Update selenium and related dependencies by Daimona Eaytoy
 * - Translate Special:BlockedExternalDomains into Polish by Msz2001
 * - Split VariableGenerator::addEditVars by Matěj Suchánek
 * - Clean up AbuseFilterViewTestBatch by Matěj Suchánek

AdvancedSearch

 * - Refactor wdio tests from sync to async mode by WMDE-Fisch
 * - Simplyfy pagination test by WMDE-Fisch

Babel

 * - Add configuration setting to disable auto-creation by Pppery
 * - Follow-up of "Localisation updates from https://translatewiki.net." by Winston Sung

BetaFeatures

 * - Add `@group Database` to tests that need it by Daimona Eaytoy
 * - Follow-up of "Localisation updates from https://translatewiki.net." by Winston Sung

CampaignEvents

 * - Hide "message participant button" when email is not enabled by Michelle
 * - Restore message documentation deleted due to conflict by Daimona Eaytoy
 * - Minor improvements for EventQuestions.js by Daimona Eaytoy
 * - Add participant answers data to the payload  by Claudio Melo
 * - Provide default value only for relevant other option in HTMLForm format by Daimona Eaytoy
 * - Fix duplicated i18n key by Daimona Eaytoy
 * - Update error message when GETting registration info if user is not global by Daimona Eaytoy
 * - Remove "link" icon from online meeting link in the "more details" dialog by Daimona Eaytoy
 * - Avoid flashing "edit registration" buttons on event page if JS enabled by Daimona Eaytoy
 * - Remove default value from campaign_events.event_answers_status by Daimona Eaytoy
 * - Update date of first answer when participant (un)registers by Daimona Eaytoy
 * - Remove empty lines from en.json by Daimona Eaytoy
 * - Update affiliate question options by Claudio Melo
 * - Add new campaign_events.event_answers_status column by Daimona Eaytoy
 * - Update age question range options by Claudio Melo
 * - Minor layout improvements for the message tab by Daimona Eaytoy
 * - Make the participants table an HTML table by Daimona Eaytoy
 * - Rewrite layout of participants table in Special:EventDetails by Daimona Eaytoy
 * - Special:EventDetails: Fix participants search on mobile by Daimona Eaytoy
 * - Inject Language into EventDetailsParticipantsModule and refactor a bit by Daimona Eaytoy
 * - Add new columns for participant questions to the code by Daimona Eaytoy
 * - Add support for participant questions to the API by Daimona Eaytoy

CentralAuth

 * - session: Sort injected services by Taavi Väänänen
 * - SessionProvider: remove unused UtilityService by Taavi Väänänen
 * - PrimaryAuthenticationProvider: sort injected services by Taavi Väänänen
 * - PrimaryAuthenticationProvider: remove unused StatdsDataFactory by Taavi Väänänen

CheckUser

 * - Avoid DB access in test that doesn't need it by Daimona Eaytoy
 * - Register optional RL modules dynamically with a hook by Ammarpad
 * - Fix test namespaces by Daimona Eaytoy
 * - clienthints: Purge expired client hint data  by Dreamy Jazz
 * - clienthints: Introduce database tables to store data by Kosta Harlan
 * - SpecialInvestigate: Add additional users on IPv6 /64 range by Thalia
 * - Use separate user for selenium tests that require checkuser group by Dreamy Jazz

CirrusSearch

 * - Add very basic integration tests for wikibasecirrussearch by Erik Bernhardson
 * - Attempt to properly handle queries with broken boolean logic by David Causse

Cite

 * - Rename ext.cite.style.css to ext.cite.parsoid.styles.css by Subramanya Sastry

cldr

 * - Add language names for "be" and "be-tarask" for Swedish (sv) by Raymond

ContentTranslation

 * - Remove more unused VirtualRestService code from CX by Derick Alangi

Disambiguator

 * - Remove targets by 沈澄心

DiscussionTools

 * - Follow-up of "Localisation updates from https://translatewiki.net." by Winston Sung
 * - Reload page or redirect when saving an edit creates a temp account by Bartosz Dziewoński
 * - Backend changes related to topic subjects in message body  by Bartosz Dziewoński
 * - Suppress the empty state in previews again by Bartosz Dziewoński
 * - ApiDiscussionToolsPageInfo: Allow excluding signatures by Bartosz Dziewoński

DonationInterface

 * - Clean payment submethods and add missing payment images by wfan
 * - Update license to CC BY SA 4.0 by EpicPupper

Echo

 * - Avoid DB access in tests when possible by Daimona Eaytoy
 * - tests: Call editPage with WikiPage when used for same page by Umherirrender

EntitySchema

 * - Refactor onImportHandleRevisionXMLTag hook handler to use hook interface by Hasan Akgün
 * - Refactor `onTitleGetRestrictionTypes` hook handler to use hook interfaces by Hasan Akgün
 * - Update eslint-config-wikimedia by gtzatchkova
 * - Update lint-staged by gtzatchkova
 * - Upgrade Cypress to version 12.17.1 by gtzatchkova
 * - Require strict types everywhere by Lucas Werkmeister
 * - Require strict types in Services by Lucas Werkmeister
 * - Require strict types in DataAccess by Lucas Werkmeister

EventBus

 * - Properly pass rev_id in page-undelete events by David Causse

FileExporter

 * - ES6 conversion of Move-Files-To-Commons -> FileExporter Extension by mareikeheuer

FileImporter

 * - selenium: Refactor WebdriverIO tests from sync to async mode by WMDE-Fisch
 * - Make all SpecialImportFileIntegrationTest data providers static by thiemowmde
 * - Migrate SpecialImportFileIntegrationTest away from complex mocks by thiemowmde
 * - ES6 conversion of Move-Files-To-Commons -> FileImporter Extension by mareikeheuer
 * - Update error format for all API calls by Adam Wight

FlaggedRevs

 * - Support useparsoid query option  by Subramanya Sastry
 * - Add type declarations in frontend/ by tacsipacsi
 * - backend: Use rev id on order by for same timestamp on flaggedrevs table by Umherirrender
 * - Make sure critical globals are set in ReviewHandlerTest by thiemowmde

Flow

 * - StructuredDiscussions: Minor improvement for "Convert topic title to language variants" by Winston Sung

Gadgets

 * - Add missing articles in a message by Amir E. Aharoni

GlobalPreferences

 * - Update the reset preferences link to match changes in MediaWiki by Bartosz Dziewoński

GrowthExperiments

 * - Fix UserDatabaseHelper::hasMainspaceEdits by Martin Urbanec
 * - Inject whether UniversalLanguageSelector is installed into WelcomeSurvey by Daimona Eaytoy
 * - Inject whether extensions are loaded into QuestionPoster by Daimona Eaytoy
 * - NewImpact: fix undefined log function by Sergio Gimeno
 * - Util: Do not use deprecated wfParseUrl / wfExpandUrl by Martin Urbanec
 * - [tests] Allow to test arguments passed to i18n by Sergio Gimeno
 * - [tests] Update snapshots to codex 0.14.0 by Sergio Gimeno
 * - MentorTools: Remove a redundant label by Martin Urbanec
 * - Fix font size and visual display for Structured task save dialog by Cynthia Simiyu
 * - Mentor dashboard: Add GENDER support to a SkipMenteeDialog message by Martin Urbanec
 * - [tests] Update snapshots to codex 0.13.0 by Sergio Gimeno
 * - Add gender support to growthexperiments-mentor-dashboard-personalized-praise-skip-mentee-reason-* by Cynthia Simiyu
 * - Mentor dashboard: Deprecate ApiSetMentorStatus by Martin Urbanec
 * - ApiQueryImageSuggestionData: Do not throw an exception if configuration lacks task by Martin Urbanec
 * - [tests] Set a global coverage threshold for Vue files by Sergio Gimeno
 * - [tests] Improve coverage for SpecialClaimMentee by Martin Urbanec
 * - User impact: allow to transclude Special:Impact/ by Sergio Gimeno

Kartographer

 * - Parsoid support for Kartographer version 1.0.0 by Isabelle Hurbain-Palatin
 * - Mark bogus 0°0′0″N 0°0′0″E maplinks as red error by thiemowmde

LdapAuthentication

 * - Try to work around account autocreation deleting email by Taavi Väänänen
 * - Delete LdapAutoAuthentication by Taavi Väänänen

MassMessage

 * - Add MassMessageJobTest to the Database group and simplify it by Daimona Eaytoy
 * - Do not send mass messages to temp users by Daimona Eaytoy

Math

 * - Mock ExtensionRegistry in MathTest by Daimona Eaytoy
 * - Add tex node with 4 arguments by Moritz Schubotz (physikerwelt)
 * - tests: Use correct expect message function in MathWikibaseConnectorTest by Umherirrender

MediaModeration

 * - Update to MediaModeration README file by ELLENR

MobileFrontend

 * - Fixes: Mobile login watermark large and uncentered by Jon Robson
 * - Remove AMC and Mobile user preferences for temporary users by bwang
 * - Reload page or redirect when saving an edit creates a temp account by Bartosz Dziewoński

MultimediaViewer

 * - Use Codex styles for buttons in mmv.bootstrap by Simon Legner

OAuth

 * - Document Special:OAuth subpages by Gergő Tisza
 * - Temporarily allow OAuth on non-API entry points again by Lucas Werkmeister

ORES

 * - fix: add request headers properly by Ilias Sarantopoulos

PageTriage

 * - Special:NewPagesFeed Vue: Only display review button if enabled by jsn
 * - Fix missing external tags by jsn
 * - move integration test to integration folder by Novem Linguae
 * - Add User:DannyS712/VueNPP.js to PageTriage by jsn
 * - Replace PageTriageUtil db connections in tests by suecarmol
 * - Fix Error: Module "./ext.pageTriage.defaultTagsOptions.js" is not loaded by jsn
 * - delete 4 maintenance scripts by Novem Linguae
 * - Add tests for maintenance scripts by suecarmol
 * - Hide suppressed edits while showing article history by MPGuy2824

ParserFunctions

 * - Follow-up of "Localisation updates from https://translatewiki.net." by Winston Sung

Popups

 * - Browser tests: Skip another test by Jon Robson
 * - Skip flakey Selenium test for now by Jon Robson

ProofreadPage

 * - Bring page parsing implementation in line with backend by Sohom

Scribunto

 * - Follow-up of "Localisation updates from https://translatewiki.net." by Winston Sung
 * - Optimize mw.text.trim with default charset by Anne Haunime

SecurePoll

 * - Fix subclasses accidentally renaming method parameters by thiemowmde
 * - Remove smaller pieces of dead code by thiemowmde
 * - Reduce overly complex test setup code by thiemowmde

TemplateData

 * - Add missing keyboard navigation for param/language lists by thiemowmde

TitleBlacklist

 * - api: Rename php class behind action=titleblacklist by Umherirrender

Translate

 * - ttmserver-export: Fix ObjectCache holding reference to MW Service by Abijeet
 * - PagePreparation: Fix namespace handling in non-English wikis by tacsipacsi
 * - QueryMessageGroupActionApi: Apply sorting to groups only by Abijeet
 * - ActiveLanguagesSpecialPage: Use Html namespace by Abijeet
 * - MachineTranslationAid: Avoid overriding variables by Abijeet

TwoColConflict

 * - selenium: prepare setup for parallel execution by WMDE-Fisch

UniversalLanguageSelector

 * - Revert "Don't load mediawiki.ui.button on page load" by Jdlrobson
 * - Update jquery.uls from upstream by Amir E. Aharoni
 * - Follow-up of "Localisation updates from https://translatewiki.net." by Winston Sung
 * - Update jquery.uls upstream by Amir E. Aharoni
 * - Don't load mediawiki.ui.button on page load by Jon Robson
 * - UniversalLanguageSelector: Don't suggest non-specified-script zh for UI language by Winston Sung

VisualEditor

 * - Remove `::injectMode`, prep to remove DualParsoidClient p.1 by Derick Alangi
 * - When switching from WikiEditor activate VE *after* notifying WikiEditor by David Lynch
 * - Prevent JS code from changing 'skin-view-edit-local' message to 'skin-view-edit' by 沈澄心
 * - Use different titles for "Edit" and "Edit source" links (section headings) by 沈澄心
 * - Change almost all code to use Bcp47Code instead of Language by thiemowmde
 * - Update VE core submodule to master (245923176) by Bartosz Dziewoński
 * - Remove VirtualRESTService code from VisualEditor by Derick Alangi
 * - Update VE core submodule to master (7c9bc68c3) by Bartosz Dziewoński
 * - Reload page or redirect when saving an edit creates a temp account by Bartosz Dziewoński
 * - Merge mobile and desktop save buttons by Ed Sanders
 * - Fix ContextItem documentation by Ed Sanders
 * - Use more narrow Bcp47Code interface in DirectParsoidClient by thiemowmde
 * - Remove remains of lossy-switching and discard-switching  by Bartosz Dziewoński
 * - Support '&editintro=…' etc. on subsequent loads via page tabs by Bartosz Dziewoński
 * - Support '&editintro=…' etc. on back/forward and VE/NWE switch by Bartosz Dziewoński

Wikibase

 * - REST: GetPropertyStatementRouteHandler related e2e tests by Muhammad Jaziraly
 * - REST: Create GetPropertyStatementRouteHandler by Muhammad Jaziraly
 * - REST: Inline type hints in phpunit tests by Ollie Shotton
 * - Use Html::encodeJsVar by Lucas Werkmeister
 * - REST: Improve OpenAPI Schema by Ollie Shotton
 * - REST: Don't normalize url params to lower case by Ollie Shotton
 * - REST: ADR for making GetItemStatement item/property agnostic by Muhammad Jaziraly
 * - HtmlPageLinkRendererEndHookHandler: Improve a comment by Marius Hoch
 * - Add pulsating dot for extra info on mul language row by gtzatchkova
 * - REST: Write spec tests for GetPropertyStatements by Muhammad Jaziraly
 * - Removed no longer needed RDF test data by Leszek Manicki
 * - Removed RdfBuilderTestData::getTestProperties_noPrefixedIds by Leszek Manicki
 * - Update Termbox by Lucas Werkmeister
 * - Removed the incorrect mention of "entity repository" in an exception by Leszek Manicki
 * - REST: Refactor `RequestedSubjectIdValidator` by Ollie Shotton
 * - repo/tests: Use correct expect message function in EditEntity test by Umherirrender
 * - SECURITY: Escape label in FederatedPropertiesError by Lucas Werkmeister
 * - REST: Add middlewares to GetPropertyStatements by Muhammad Jaziraly
 * - Add a hook handler to override vector's default search highlighting by Noa wmde
 * - Removed EntityId "local part" from RepoLinker by Leszek Manicki
 * - Removed EntityId "local part" from WikiPageEntityMetaDataLookup by Leszek Manicki
 * - Removed EntityId "local part" from ConceptUriSearchHelper by Leszek Manicki
 * - Removed no longer used WikibaseRepo::getEntityTypeToRepositoryMapping by Leszek Manicki
 * - Simplified "is of known entity type" checks in EntityIdSearchHelper, part 2 by Leszek Manicki
 * - Simplified "is of known entity type" checks in EntityIdSearchHelper by Leszek Manicki
 * - Removed unused references to "repository prefixes" from SearchHelper by Leszek Manicki

WikibaseCirrusSearch

 * - Removed reference to delete WikibaseRepo::getEntityTypeToRepositoryMapping  by Leszek Manicki

WikibaseLexeme

 * - Adopted a simplified constructor of Wikibase's SearchEntityIdHelper by Leszek Manicki

WikibaseLexemeCirrusSearch

 * - Removed reference to delete WikibaseRepo::getEntityTypeToRepositoryMapping  by Leszek Manicki

WikibaseQualityConstraints

 * - Bump stylelint-config-wikimedia from 0.15.0 to 0.16.0 by Addbot
 * - Bump grunt-eslint from 24.2.0 to 24.3.0 by Addbot
 * - Bump grunt-stylelint from 0.18.0 to 0.19.0 by Addbot

Wikidata.org

 * - Add gadget-section-* messages for the preferences by Nikki
 * - Use new Prometheus query in updateQueryServiceLag by Marius Hoch

WikiEditor

 * - Add deprecation log message for autoMsg by Jon Harald Søby

WikiLambda

 * - WikiLambda metrics: Allow false custom data values to get through     by dmartin
 * - Update function-schemata sub-module to HEAD (5cc2fc7)      by James D. Forrester
 * - Hide 'view source' links, they're pointless for our content type by James D. Forrester
 * - SpecialListZObjectsByType: Don't re-set the ZID, already provided by Linker by James D. Forrester
 * - Follow-up 5c881b176: Also hide non-JS message from editor by James D. Forrester
 * - Stop non-JS message showing up once the app has loaded by James D. Forrester
 * - Drop ext.wikilambda.specialpages.styles, empty and unused by James D. Forrester
 * - Metrics custom data: pass undefined as null & update 2 names     by dmartin
 * - Add instrument to log uses of function evaluator component by dmartin
 * - e2e: Enable the tests again by nik-55

WikimediaMessages

 * - Follow-up of "Localisation updates from https://translatewiki.net." by Winston Sung

Wikisource

 * - Fix typo in comment by Sam Wilson
 * - Don't show WS Export download button on disambigation pages by Sam Wilson

Wikistories

 * - Do not show duplicate message when user in editing the text by Huei Tan
 * - Avoid calling wfMessage in the hook handler constructor by Stephane Bisson
 * - Pass the prop instead of store in Component textbox and imgAttribution by Huei Tan

MinervaNeue

 * - Avoid accessing the database in SkinUserPageHelperTest by Daimona Eaytoy
 * - Convert MinervaPagePermissions to Authority by Daimona Eaytoy

Vector

 * - Follow-up of "Localisation updates from https://translatewiki.net." by Winston Sung
 * - Reset line height on tab elements by Jon Robson
 * - Make bottom dock expansible via portlet links  by Jon Robson
 * - Allow overriding the search pattern highlighting for Wikibase by Noa wmde
 * - Update html-label to use label-class by bwang

VisualEditor/VisualEditor

 * - PreviewElement: Remove slugs and nails using JS instead of CSS by Ed Sanders
 * - CompletionWidget: Add isolateInput mode by Ed Sanders
 * - Provide alternate keyboard shortcut for toolbar search for Firefox by Ed Sanders
 * - Mobile demo: Use 16px font ssize for global overlays as well by Ed Sanders
 * - ve.ce.Surface: Implement hasNativeCursorSelection by Ed Sanders
 * - Fix ContextItem documentation by Ed Sanders

No changes

 * 3D
 * ActiveAbstract
 * AntiSpoof
 * ApiFeatureUsage
 * ArticleCreationWorkflow
 * ArticlePlaceholder
 * BounceHandler
 * Calendar
 * Campaigns
 * Capiunto
 * CategoryTree
 * CentralNotice
 * CharInsert
 * ChessBrowser
 * CiteThisPage
 * Citoid
 * CodeEditor
 * CodeMirror
 * Cognate
 * Collection
 * CologneBlue
 * CommonsMetadata
 * ConfirmEdit
 * ContactPage
 * CreditsSource
 * Dashiki
 * DismissableSiteNotice
 * DoubleWiki
 * Elastica
 * ElectronPdfService
 * EventLogging
 * EventStreamConfig
 * ExtensionDistributor
 * ExternalGuidance
 * FeaturedFeeds
 * FundraiserLandingPage
 * FundraisingTranslateWorkflow
 * GeoCrumbs
 * GeoData
 * GlobalBlocking
 * GlobalCssJs
 * GlobalUsage
 * GlobalUserPage
 * GlobalWatchlist
 * GoogleNewsSitemap
 * Graph
 * GuidedTour
 * IPInfo
 * ImageMap
 * ImageSuggestions
 * InputBox
 * Insider
 * Interwiki
 * InterwikiSorting
 * Josa
 * JsonConfig
 * LabeledSectionTransclusion
 * LandingCheck
 * Linter
 * LiquidThreads
 * Listings
 * LoginNotify
 * MachineVision
 * MapSources
 * MediaSearch
 * MobileApp
 * Modern
 * MonoBook
 * NavigationTiming
 * NearbyPages
 * NewUserMessage
 * Newsletter
 * Nostalgia
 * Nuke
 * OATHAuth
 * OAuthRateLimiter
 * OpenStackManager
 * PageAssessments
 * PageImages
 * PageNotice
 * PageViewInfo
 * PagedTiffHandler
 * PdfHandler
 * Phonos
 * Poem
 * PropertySuggester
 * QuickSurveys
 * Quiz
 * RSS
 * ReadingLists
 * RealMe
 * RelatedArticles
 * RevisionSlider
 * SandboxLink
 * Score
 * SearchExtraNS
 * SearchVue
 * SecureLinkFixer
 * ShortUrl
 * SimilarEditors
 * SiteMatrix
 * SpamBlacklist
 * StopForumSpam
 * SubPageList3
 * SubpageSortkey
 * SyntaxHighlight_GeSHi
 * TemplateSandbox
 * TemplateStyles
 * TemplateWizard
 * TextExtracts
 * Thanks
 * TheWikipediaLibrary
 * TimedMediaHandler
 * Timeless
 * TocTree
 * TorBlock
 * TranslationNotifications
 * TrustedXFF
 * UploadWizard
 * UploadsLink
 * UrlShortener
 * VipsScaler
 * VueTest
 * WebAuthn
 * WikiLove
 * WikibaseMediaInfo
 * WikidataPageBanner
 * WikimediaApiPortal
 * WikimediaApiPortalOAuth
 * WikimediaBadges
 * WikimediaEditorTasks
 * WikimediaEvents
 * WikimediaIncubator
 * WikimediaMaintenance
 * XAnalytics
 * intersection
 * timeline
 * wikihiero

Total changes
312 Changes in 61 repos by 79 authors