MediaWiki 1.41/wmf.22/Changelog

Core changes

 * - Branch commit for wmf/1.41.0-wmf.22 by trainbranchbot
 * - skins: Mock clock in SkinTest to fix flaky test by Timo Tijhof
 * - preferences: Pass ParserFactory to DefaultPreferencesFactory by Umherirrender
 * - Special:ListFiles: UX improvements by Hannah Okwelum
 * - Do not use UTPage directly in tests by Daimona Eaytoy
 * - ResourceLoader: Simplify clientpref storage by Timo Tijhof
 * - ResourceLoader: Completely remove FileCache by Amir Sarabadani
 * - Edit Recovery: Only close DB if it's been opened by Sam Wilson
 * - Update wikimedia/minify to 2.5.0 by Tim Starling
 * - Update pear/mail to 1.5.1 by Kevin Israel
 * - resources: Remove fallback for window.requestAnimationFrame by Timo Tijhof
 * - ResourceLoader: Simplify module serialization by Tim Starling
 * - ResourceLoader: wrap module definitions in functions by Tim Starling
 * - ResourceLoader: Forwards-compatible mw.loader.impl by Tim Starling
 * - Replace usages of wfParseUrl by Daimona Eaytoy
 * - Reconcile Parsoid opts in ParsoidOutputAccess & ParserOutputAccess by Subramanya Sastry
 * - rdbms: Remove ::doReplace and ::doUpsert from Database by Amir Sarabadani
 * - Avoid showing userpage link for temp accounts by bwang
 * - Avoid errors when 'wikipage.content' hook fired with nothing by Bartosz Dziewoński
 * - Action::getPageTitle can return a Message  by C. Scott Ananian
 * - BacklinkCacheTest: Fix test case to avoid slowness by Derick Alangi
 * - cache: Remove deprecated methods from BacklinkCache by Derick Alangi
 * - UrlUtils: Make assemble and removeDotSegments stateless by Timo Tijhof
 * - objectcache: Remove unused `$walltime` parameter in WANObjectCache by Derick Alangi
 * - page: Set rev id in OutputPage from dirty ParserOutput on action=view by Umherirrender
 * - Revert "MediaWiki: Temp silence FR-induced clearActionName warnings"  by Bartosz Dziewoński
 * - http: fix JobRunner overriding requestId with null by Piotr Miazga
 * - Languages: Add cpx / cpx-* (Pu-Xian Min) to Names.php by Winston Sung
 * - TitleWidget: Remove workaround for old unsupported browsers by Ed Sanders
 * - TelemetryTest: Use `assertSame` instead of `assertEquals` by Derick Alangi
 * - LinksTable: pass insert options by David Causse
 * - Fix translator attribution for "Localisation updates from https://translatewiki.net." by Winston Sung
 * - SignatureValidator: Call Parsoid directly instead of via REST API by Bartosz Dziewoński
 * - ResourceLoader: Remove support for CSP nonce by Timo Tijhof
 * - ResourceLoader: Split up asyncEval into small batches by Tim Starling
 * - rdbms: Avoid making a db query when getting MySQL/MariaDB version by Amir Sarabadani
 * - config: Remove unused ConfigRepository::getValueOf method by Derick Alangi
 * - skins: Avoid function call on array by Ammarpad
 * - objectcache: Remove IExpiringStore interface by Derick Alangi
 * - ooui: SearchInputWidget must send request start events by Erik Bernhardson
 * - tests: Unbreak and actually run ExportDemoTest by Daimona Eaytoy
 * - Drop User::idFromName, deprecated in 1.38 by James D. Forrester
 * - LanguageWa: Use standard date formatting for standard formats by Bartosz Dziewoński
 * - Edit recovery: Fix deletion of data when clicking cancel by Ed Sanders
 * - LanguageWa: Fix double timezone adjustment by Bartosz Dziewoński
 * - LocalisationCache: Load only core data if possible (v2)   by Lucas Werkmeister
 * - LocalisationCache: Correctly merge preload data   by Lucas Werkmeister
 * - LocalisationCache: Add tests for preload behavior   by Lucas Werkmeister
 * - ApiBlock: Report the correct value for 'hidename' in response by Thalia
 * - virtualrest: Hard deprecate VirtualRESTService & VirtualRESTServiceClient by Derick Alangi
 * - UploadBase: Minor cleanup by Reedy
 * - AutoLoader: Make $psr4Namespaces private (reinstated) by Reedy
 * - tests: Avoid relying on existence of a test page by Daimona Eaytoy
 * - user: Use {@} to escape annotation when writting about annotation by Umherirrender
 * - Avoid use of VirtualRESTServiceClient in SignatureValidator by Derick Alangi
 * - Bcp47Code fixes to ParsoidParser and LanguageVariantConverterUnitTest by C. Scott Ananian
 * - core - client side preferences inline script  by Moh'd Khier Abualruz
 * - http: Propagate `tracestate` and `traceparent` headers by Piotr Miazga
 * - Tooltip fix by ksarabia
 * - shell: Do not sandbox MediaWiki maintenance scripts by Gergő Tisza
 * - rdbms: Merge DatabaseMysqli into DatabaseMysqlBase by Amir Sarabadani
 * - ResourceLoader: Rename domEval/globalEval and document requirements by Timo Tijhof
 * - Mass migrate Database::insert calls to InsertQueryBuilder by Amir Sarabadani
 * - Introduce FileSelectQueryBuilder by Amir Sarabadani
 * - ESLint: Always allow Promise.prototype.finally by Ed Sanders
 * - page: Reduce creation of primary cache in ParserOutputAccess by Umherirrender
 * - Edit recovery: Account for 'section' being any string when deleting by Ed Sanders
 * - Deprecate the use of nonserializable arguments to ParserOutput::addWarningMsg by C. Scott Ananian
 * - Remove ParserOutput::addWarning, deprecated since 1.38 by C. Scott Ananian
 * - user: Use database for given wikiId in UserGroupManager::purgeExpired by Umherirrender
 * - Ensure temporary users are blocked by configured IP blocks by Thalia
 * - Edit recovery: Remove unnecessary IIFE's by Ed Sanders
 * - Edit recovery: Remove jQuery document ready wrapper by Ed Sanders
 * - Edit recovery: Re-order input type detection flow control by Ed Sanders
 * - BlockManagerTest: Add tests that cover untested service options by Thalia
 * - Edit recovery: onloadHandler -> onLoadHandler by Ed Sanders
 * - Throw exception in getTestUser etc. if the test doesn't need the DB by Daimona Eaytoy
 * - Allow DefaultOptionsLookup to be used with registered users in tests by Daimona Eaytoy
 * - Avoid DB access in non-database tests by Daimona Eaytoy
 * - Fix DB usage in non-database tests (part 2) by Daimona Eaytoy
 * - specials: Remove "hide" button from Special:Specialpages legend by Timo Tijhof
 * - Avoid DB access in more non-Database tests by Daimona Eaytoy
 * - Fix more non-database tests accessing the database by Daimona Eaytoy
 * - Edit recovery: Move var declarations inline by Ed Sanders
 * - Auth: Introduce several AuthManager session keys as constants by Derick Alangi
 * - Auth: Various deprecated interface methods have been removed by Derick Alangi
 * - InfoAction: Use word separator instead of hard-coded spaces by Func
 * - parsertests: Readd Title::clearCaches by Umherirrender
 * - api: Show (no description) if apihelp-param message is missing by Umherirrender
 * - tests: Check more PARAM_HELP_MSG in ApiStructureTest by Umherirrender
 * - Reorg: Move ProxyLookup to Request/ by Amir Sarabadani
 * - title: Adjust comment for Title::CACHE_MAX by Umherirrender
 * - build: Fix or suppress eslint/stylelint warnings by Umherirrender
 * - Language: Remove deprecated functions and constants        by Fomafix
 * - i18n: Split apihelp for standard dir parameter by Umherirrender
 * - i18n: Split apihelp for redirects/linkshere/transcludedin/fileusage show by Umherirrender
 * - doc: Make extension.schema.v2.json a valid JSON schema. by Philipp Spitzer
 * - i18n: Split apihelp for parameter list=deletedrevs&drprop= by Umherirrender
 * - i18n: Split apihelp for parameter list=allpages&apprexpiry= by Umherirrender
 * - i18n: Split apihelp for parameter action=opensearch&redirects= by Umherirrender
 * - i18n: Split apihelp for parameter action=managetags&operation= by Umherirrender
 * - compressOld: Do not assume the latest revision has the greatest ID by Func
 * - resources: Add mediawiki.api as dependency to mediawiki.diff by Umherirrender
 * - Add tests for date formatting in Walloon (wa) by Bartosz Dziewoński
 * - tests: Check more PARAM_HELP_MSG_PER_VALUE in ApiStructureTest by Umherirrender
 * - ResourceLoader: use Function constructor for module implementations by Tim Starling
 * - rdbms: Clean up hard-deprecated methods by Amir Sarabadani
 * - Mock UserFactory::newAnonymous in LogFormatterTestCase by Daimona Eaytoy
 * - rdbms: Roll up once-used small private/protected methods to the caller by Amir Sarabadani
 * - Remove unused ParsoidOutputAccess from PageUpdater classes by Subramanya Sastry
 * - jobqueue: Simplify ThumbnailRenderJob::maybeEnqueueNextPage by Timo Tijhof
 * - objectcache: Add MapCacheLRU::makeKey and adopt in ChangesList by Timo Tijhof
 * - ApiFormatJson: Set PARAM_HELP_MSG_PER_VALUE for formatversion by Reedy
 * - api: Add message for list=watchlist&wlprop=expiry by Umherirrender
 * - api: Add message for action=compare&prop=timestamp by Umherirrender
 * - objectcache: Reduce boilerplate and indirection around makeKey by Timo Tijhof
 * - ResourceLoader: deliver deprecation warnings as strings by Tim Starling
 * - Blocks: Misc changes by Dayllan Maza
 * - Fill out incomplete dateformat definition for "walloon short" by David Lynch
 * - Reset the cached skin in RequestContext::setAuthority by Umherirrender
 * - objectcache: Add test for key re-encoding in MultiBagOStuff by Timo Tijhof
 * - ResourceLoader: Remove mediawiki.loader legacy support by Tim Starling
 * - Revert "LocalisationCache: Load only core data if possible"  by Ahmon Dancy
 * - rdbms: Add tests for building insert SQL by Amir Sarabadani
 * - Deprecate $wgLegalTitleChars and $wgIllegalFileChars by C. Scott Ananian
 * - TempUserConfig: Add getMatchPattern by Martin Urbanec
 * - Use Html class instead of Xml to format Html elements on SpecialVersion by Hannah Okwelum
 * - Update Codex from v0.15.0 to v0.16.1         by Roan Kattouw
 * - ResourceLoader: Update wikimedia/less.php to 4.1.1 by Timo Tijhof
 * - objectcache: remove deprecated BagOStuff::addBusyCallback method by Aaron Schulz
 * - rdbms: Update outdated docs regarding ChronologyProtector by Timo Tijhof
 * - Migrate last batch of simple Database::select* calls to SQB by Amir Sarabadani
 * - mediawiki.api/index.js: Minor comment fixups by Reedy
 * - LogFormatterTestCase: avoid database access by Daimona Eaytoy
 * - rdbms: Move two static methods of LBFactory to ChronologyProtector by Amir Sarabadani
 * - rdbms: Remove or move unused public methods of ILB/ILBF by Amir Sarabadani
 * - specials: Use cross-wiki aware UserIdentityLookup on Special:UserRights by Umherirrender
 * - rdbms: Remove LB::getReplicaResumePos   by Amir Sarabadani
 * - Fix reference to nonexistent concept "create intent" by Tim Starling
 * - title: Uncache title from internal title cache on id reset by Umherirrender
 * - ParserOutput::addModules,addModuleStyles: first arg must be array by C. Scott Ananian
 * - Replace test code calls to SiteConfig methods which are deprecated in Parsoid by C. Scott Ananian
 * - Remove Parsoid back-compat code by C. Scott Ananian
 * - jobqueue: Use a proper config system for dealing with settings (p.1) by Derick Alangi
 * - tests: Avoid database usage when possible by Daimona Eaytoy
 * - tests: api: Replace Title::newFromText with Title::makeTitle by Umherirrender
 * - Skin: Use different single-id for edit/create and (un)watch links  by 沈澄心
 * - Rename 'bodyOnly' option to ParserOutput::getText by C. Scott Ananian
 * - Hard-deprecate ParserOutput::{get,set}Flag  by C. Scott Ananian
 * - rdbms: Build clean SQL in SQLPlatfrom instead of regex for INSERTs by Amir Sarabadani
 * - EnhancedChangesListGroup.mustache: Fix spaces and escaping by Fomafix
 * - specials: Fix setting the offset in inner subqueries in SpecialShortPages by Amir Sarabadani
 * - OutputPage: Remove unused public property mPageLinkTitle by Func
 * - tests: Clear recentchanges automatically by Lucas Werkmeister
 * - block: Simplify deletion by parent id for BlockRestrictionStore by Umherirrender
 * - UploadBaseTest: Add const for path used for test uploads by Reedy

Vendor

 * - Bump parsoid to 0.18.0-a22  by Arlo Breault
 * - Update wikimedia/minify to 2.5.0 by Tim Starling
 * - Update pear/mail to 1.5.1 by Kevin Israel
 * - Bump parsoid to 0.18.0-a21   by Subramanya Sastry
 * - Update wikimedia/less.php to 4.1.1 by Timo Tijhof

AbuseFilter

 * - tests: Split long line in importingFilters.js by Umherirrender
 * - tests: Avoid DB access in non-Database tests by Daimona Eaytoy
 * - Avoid TestUser in non-database tests by Daimona Eaytoy
 * - BlockedDomains: Move filtering logic to a dedicated class by Amir Sarabadani
 * - Migrate ILB::getConnectionRef calls to ILB::getConnection by gerritbot
 * - Replace userNameUtils with UserIdentityUtils by AnaïsGueyte

AdvancedSearch

 * - Remove OOUI workaround that got fixed upstream by WMDE-Fisch
 * - Add Database group to tests by WMDE-Fisch

AntiSpoof

 * - Do not rely on existence of test user in AntiSpoofPreAuthenticationProviderTest by Daimona Eaytoy

ArticlePlaceholder

 * - Simplify SearchHookHandler to not require a special page by thiemowmde
 * - Streamline code to make use of core features instead by thiemowmde

Babel

 * - Migrate ILB::getConnectionRef calls to ILB::getConnection by gerritbot

BounceHandler

 * - Migrate ILB::getConnectionRef calls to ILB::getConnection by gerritbot

CampaignEvents

 * - Introduce a maintenance script for aggregating participant answers by Daimona Eaytoy
 * - Design corrections for email sending interface by Michelle
 * - Resolve issues found in QA by Michelle
 * - Migrate ILB::getConnectionRef calls to ILB::getConnection by gerritbot

CentralAuth

 * - SpecialGlobalRenameUser: fill username from param by Taavi Väänänen
 * - SpecialCentralAuth: add a shortcut link to rename a user by Taavi Väänänen
 * - GlobalRenameUser: Ensure old username is in canonical form by Taavi Väänänen
 * - GlobalRename: Ensure status database rows use the normalized name by Taavi Väänänen
 * - Use correct line indent in SpecialCentralAuth by Umherirrender
 * - i18n: Split apihelp for parameter globalallusers/userinfo/wikisets prop by Umherirrender
 * - Migrate ILB::getConnectionRef calls to ILB::getConnection by gerritbot
 * - Drop CentralAuthGroupMembershipProxy by Taavi Väänänen

CheckUser

 * - Add missing type to @param in cidr.js by Umherirrender
 * - Mark PurgeOldDataTest as using the page table by Daimona Eaytoy
 * - Test code that is marked as uncovered related to Client Hints by Dreamy Jazz
 * - Do not rely on existence of UTSysop in HooksTest by Daimona Eaytoy
 * - Make some of the non-static data providers static by Dreamy Jazz
 * - Replace ILB::getConnectionRef calls by gerritbot
 * - i18n: Split apihelp for parameter list=checkuser&curequest= and dir= by Umherirrender
 * - Add `@group Database` to tests that need it by Daimona Eaytoy
 * - Use IGNORE option when inserting into cu_useragent_clienthints by Dreamy Jazz
 * - Use class covers annotation instead of per-method annotations by Dreamy Jazz
 * - Reduce cognitive complexity for cidr.js updateCIDRresult by Dreamy Jazz

ChessBrowser

 * - Remove @ingroup from ext.chessViewer.core.js by Umherirrender

CirrusSearch

 * - Fix hook name for PageUndeleteComplete in extension.json by Umherirrender
 * - Make DB tests more robust for upcoming core changes by Daimona Eaytoy
 * - build: Move eslint exclude folders from Gruntfile.js into .eslintrc.json by Umherirrender
 * - Produce a stream for CirrusSearch page-rerenders by David Causse
 * - Try to identify page changes the same way EventBus does by David Causse
 * - Use PageUndeleteComplete instead of deprecated ArticleUndelete by David Causse
 * - Use PageDeleteComplete instead of deprecated ArticleDeleteComplete by David Causse
 * - Use PageDelete instead of deprecated ArticleDelete hook by David Causse
 * - Browser tests: stop using wdio/sync and fibers by David Causse
 * - Add apihelp message for prop=cirruscompsuggestbuilddoc&method= by Umherirrender
 * - Migrate ILB::getConnectionRef calls to ILB::getConnection by gerritbot
 * - Sort Analysis Fixtures by tjones
 * - Update acronym_fixer regex for Brahmic scripts by tjones

Cite

 * - Mark CiteDbTest as using the `page` table by Daimona Eaytoy

Citoid

 * - build: Remove unused eslint-disable by Umherirrender

cldr

 * - Includes labels for Punjabi itself and related languages by Middle river exports
 * - Add LocalNamesMnw for language Mon, not part of CLDR by Raymond
 * - Change name for gsw to Alemannic by Nikki
 * - Add Pu-Xian Min, not part of CLDR by Raymond

CodeMirror

 * - Add Database group to tests by WMDE-Fisch

Collection

 * - Add missing apihelp messages for parameters by Umherirrender

ConfirmEdit

 * - Avoid DB access in HTMLFancyCaptchaFieldTest by Daimona Eaytoy
 * - Allow aggregation of captcha logs by Amir Sarabadani
 * - Fixes Account creation CAPTCHA text field by Jon Robson
 * - Make badwordlist optional by Gergő Tisza

ContentTranslation

 * - CX3 Build 0.2.0+20230814 by NikG
 * - SX: Wait for "Pick a sentence" step to be loaded before scrolling by NikG
 * - SX: Separate draft and published translation fetching by NikG
 * - build: Use quotes for paths in package.json by Umherirrender
 * - SX: Wrap buttons on SXConfirmTranslationDeletionDialog by wangombe
 * - Improve validation in TranslationCorporaStore by Umherirrender
 * - SX: Add spinner inside "Pick a sentence" step until data are loaded by NikG
 * - CX UI lib: Minor fixes in MWSpinner component styles by NikG
 * - SX refactoring: Move select page section functionality from vuex actions by NikG
 * - CX3 Build 0.2.0+20230808         by NikG
 * - SX: Wrap buttons on SXConfirmBackNavigationDialog by wangombe
 * - Add apihelp messages for sectiontranslationid, issandbox and progress by Umherirrender
 * - CX TranslationUnitDTO: Remove redundant isset by NikG
 * - Add ServiceWiringTest to the Database group by Daimona Eaytoy
 * - CX: CxUlsEntryPoint.vue: Migrate from ES5 to ES6 by wangombe
 * - CX SectionTitleFetcher: Add option to use revision id instead of page by NikG
 * - SX: Add "data-mw-cx-source" attribute to corpora units by NikG
 * - CX: relevantlanguages.js: Migrate from ES5 to ES6 by wangombe
 * - CX: Support restoration of templates translated on mobile by NikG
 * - Migrate ILB::getConnectionRef calls to ILB::getConnection by gerritbot
 * - CX: Pre-select target language in Uls Entrypoint by wangombe

Disambiguator

 * - Migrate ILB::getConnectionRef calls to ILB::getConnection by gerritbot

DiscussionTools

 * - Remove unnecessary use of Parser by C. Scott Ananian
 * - Handle Parsoid resource limit exceeded exceptions by Arlo Breault
 * - Use passive event listeners for window scroll events by Ed Sanders
 * - Avoid DB access in non-database tests by Daimona Eaytoy
 * - ThreadItemStore: Ignore duplicates caused by duplicate executions  by Bartosz Dziewoński
 * - ApiDiscussionToolsPreview: Add missing documentation messages by Bartosz Dziewoński
 * - Enable automatic topic subscriptions for autocreate accounts by Ed Sanders

DonationInterface

 * - Add uselang field to paypal by Damilare Adedoyin
 * - Pass additional params from Payments to thank you page URL by jgleeson
 * - Enable monthly convert from DI for braintree by wfan
 * - Fix design issue in Hebrew post-payment monthly convert by Damilare Adedoyin
 * - Check if payload.details.payerInfo not undefined by wfan
 * - Add template for email prefs submit error by Elliott Eggleston

Echo

 * - Make Title and Revision caches proper services by Daimona Eaytoy
 * - tests: Resolve phpunit filename deprecation errors by Umherirrender
 * - Disable Echo behaviour on Minerva desktop by Jon Robson
 * - Do not assume what user IDs might be in DiscussionParserTest by Daimona Eaytoy
 * - Mock DB services in NotificationTest::testNewFromRowWithException by Daimona Eaytoy
 * - Finish updating echo tests to use new MobileFrontend icon class by bwang
 * - Avoid DB access in non-Database tests by Daimona Eaytoy
 * - Replace deprecated Linker::formatComment by Umherirrender
 * - Update notification badge to not rely on mw-ui-icon by bwang
 * - Migrate ILB::getConnectionRef calls to ILB::getConnection by gerritbot
 * - Revert "Fixes: Echo notification count disappears on load in mobile skin"  by Urbanecm

EntitySchema

 * - Refactor `onFormatAutocomments` hook handler by Hasan Akgün
 * - Use correct button label in copyright notice by Michael Große
 * - build: Use quotes for pathes in package.json by Umherirrender
 * - Use correct line indent in EntitySchemaFormatterTest by Umherirrender
 * - Avoid DB access in non-database tests by Daimona Eaytoy
 * - tests: Remove unneeded mock of ILoadBalancer::getConnectionRef by Umherirrender
 * - Show copyright notice and anon-user warning when editing schema text  by Michael Große
 * - Show EntitySchema Labels on special pages instead of only the id    by Michael Große
 * - Handle unexpected content in LabelLookup by Lucas Werkmeister

EventBus

 * - Use the new Telemetry state for handling requestId by Piotr Miazga
 * - Stop using ArticleDeleteComple in favor of PageDeleteComplete by David Causse

EventLogging

 * - Avoid DB access in more non-Database tests by Daimona Eaytoy
 * - Avoid DB access in non-database tests by Daimona Eaytoy

ExternalGuidance

 * - Return value from Array.some in mw.externalguidance\core.js by Umherirrender

FeaturedFeeds

 * - Create HookRunner class and the hook handler interface by Umherirrender

FileImporter

 * - Dedicated functions for revision details by Adam Wight
 * - NullRevisionCreatorTest: use valid title for test by C. Scott Ananian
 * - Add `@group Database` to tests that need it by Daimona Eaytoy

FlaggedRevs

 * - FlaggablePageView: Move isPageView check outside of showingStable by Bartosz Dziewoński
 * - FlaggablePageView: Clean up redundant conditions in showingStable by Bartosz Dziewoński
 * - Remove unused revreview-toggle-show and revreview-toggle-hide messages by Bartosz Dziewoński
 * - FlaggablePageView: Inline single-use methods by Bartosz Dziewoński
 * - action=purge is not a page view by Bartosz Dziewoński
 * - Use new style of hook handlers with interfaces for core hooks by Bartosz Dziewoński
 * - FlaggedRevsApiHooks: Remove MW<1.25 compatibility by Bartosz Dziewoński
 * - FlaggedRevsApiHooks: Use SelectQueryBuilder instead of ApiQueryBase protected methods by Bartosz Dziewoński
 * - Deprecate FlaggedRevsRevisionReviewFormAfterDoSubmit by Amir Sarabadani
 * - Drop all secondary caching of configuration parameters by thiemowmde
 * - Use the [ ... ] spread operator by thiemowmde
 * - Display the cache size on Special:UnreviewedPages by Msz2001
 * - Drop all remaining usages of FR_PRIMARY const in favor of READ_… by thiemowmde

Flow

 * - Do not use UTPage directly in tests by Daimona Eaytoy
 * - tests: Resolve phpunit filename deprecation errors by Umherirrender
 * - Avoid DB access in non-Database tests by Daimona Eaytoy
 * - tests: Use database group for TopicListBlockTest by Umherirrender
 * - Create HookRunner class and the hook handler interfaces by Umherirrender

Gadgets

 * - Add GadgetHooksTest to the Database group by Daimona Eaytoy
 * - i18n: Split apihelp for parameter list=gadgets/gadgetcategories prop= by Umherirrender

GeoData

 * - Avoid DB access in non-database tests by Daimona Eaytoy
 * - tests: Remove unneeded mock of ILoadBalancer::getConnectionRef by Umherirrender

GlobalBlocking

 * - Use correct line indent in GlobalBlock by Umherirrender
 * - Migrate ILB::getConnectionRef calls to ILB::getConnection by gerritbot

GlobalCssJs

 * - Migrate ILB::getConnectionRef calls to ILB::getConnection by gerritbot

GlobalPreferences

 * - Use ExpirationAwareness instead of deprecated IExpiringStore by Derick Alangi
 * - Migrate ILB::getConnectionRef calls to ILB::getConnection by gerritbot

GlobalUsage

 * - i18n: Split apihelp for parameter prop=globalusage&guprop= by Umherirrender
 * - Migrate ILB::getConnectionRef calls to ILB::getConnection by gerritbot

GlobalUserPage

 * - Migrate ILB::getConnectionRef calls to ILB::getConnection by gerritbot

GlobalWatchlist

 * - Add SpecialGlobalWatchlistSettingsTest to the Database group by Daimona Eaytoy

GoogleNewsSitemap

 * - Migrate ILB::getConnectionRef calls to ILB::getConnection by gerritbot
 * - Create HookRunner class and the hook handler interface by Umherirrender

GrowthExperiments

 * - NewcomerTasksLogFactory: Use getName, not getDbKey by Martin Urbanec
 * - tests: add snapshot for PersonalizedPraiseSettingsForm by Sergio Gimeno
 * - tests: Fix invalid user in HomepageModuleRegistryTest by Timo Tijhof
 * - Personalized praise: Add the info icon by Martin Urbanec
 * - Personalized praise: Allow mentors to customize maximum number of reverted edits by Martin Urbanec
 * - PersonalizedPraiseSettingsForm: Add missing text to i18n calls by Martin Urbanec
 * - Remove Try New Task panel on the history page by Cynthia Simiyu
 * - Vue components: popover header alignment by Sergio Gimeno
 * - Levelling up: Do not send get-started to users with at least 10 edits by Martin Urbanec
 * - PersonalizedPraiseSettings: Ignore non-int values by Martin Urbanec
 * - Reset active state of suggested links on dialog close by Cynthia Simiyu
 * - Remove $wgGEHelpPanelLoggingEnabled configuration flag by Cynthia Simiyu
 * - Homepage mobile: avoid navigate away from the impact overlay by Sergio Gimeno
 * - ApiQueryGrowthTasks: remove a misplaced space by DannyS712
 * - Add apihelp messages for skipreason and gttopicsmode by Umherirrender
 * - Remove ApiSetMentorStatus by Martin Urbanec
 * - mailmap: Add urbanecm's WMF address by Martin Urbanec
 * - [refactor] PersonalizedPraiseSettings: Use constants for setting names by Martin Urbanec

IPInfo

 * - Migrate ILB::getConnectionRef calls to ILB::getConnection by gerritbot

JsonConfig

 * - Add JCMapDataContentTest to the Database group by Daimona Eaytoy
 * - i18n: Split apihelp for parameter action=jsonconfig&command= by Umherirrender

Kartographer

 * - Add CSP header to Parsoid output by Isabelle Hurbain-Palatin
 * - Add `@group Database` to tests that need it by Daimona Eaytoy

LdapAuthentication

 * - Create HookRunner class and the hook handler interfaces by Umherirrender

Linter

 * - Add apihelp message for list=linterrors&invisible-categories= by Umherirrender
 * - Migrate ILB::getConnectionRef calls to ILB::getConnection by gerritbot
 * - Use a maintenance database connection to call fieldExists by Umherirrender

LoginNotify

 * - Migrate ILB::getConnectionRef calls to ILB::getMaintenanceConnectionRef by gerritbot

MachineVision

 * - build: Move eslint exclude folders into existing .eslintignore by Umherirrender
 * - Add apihelp messages for prop=not-displayed by Umherirrender
 * - Migrate ILB::getConnectionRef calls to ILB::getConnection by gerritbot

Math

 * - Avoid DB access in non-Database tests by Daimona Eaytoy

MediaSearch

 * - Update no-JS UI to match new CSS-only Tabs implementation by Eric Gardner

MobileFrontend

 * - Acquire a temporary user username before previewing by Jon Robson
 * - Reserve space for section toggle icon to avoid reflow by Jon Robson
 * - Updates edit selector by Jon Robson
 * - Remove nonce parameter given upstream change by Jon Robson
 * - build: Use quotes for paths in package.json by Umherirrender
 * - Rename mf-icon-element to be specific to the spinner by bwang
 * - Avoid database access in tests that don't need it by Daimona Eaytoy
 * - Remove mediawiki.ui.icons, ensure watchstar and notification badge icons dont depend on Minerva by bwang
 * - Allow testing of search with production data by Jon Robson
 * - Fix mobile search text overlapping by bwang
 * - Fix PHP 8.1 warning from SpecialMobileDiff::getDesktopUrl by Tim Starling

MultimediaViewer

 * - QUnit: Use .toFixed before compare .height values by Fomafix
 * - Avoid errors in Special:JavaScriptTest with non-default settings by Fomafix

NearbyPages

 * - Fixes dev script, updates Node version by Jon Robson

Newsletter

 * - tests: Remove unneeded mock of ILoadBalancer::getConnectionRef by Umherirrender
 * - Migrate ILB::getConnectionRef calls to ILB::getConnection by gerritbot

NewUserMessage

 * - IP Masking: Do not welcome temp users by Martin Urbanec

Nuke

 * - Migrate ILB::getConnectionRef calls to ILB::getConnection by gerritbot

OATHAuth

 * - Migrate ILB::getConnectionRef calls to ILB::getConnection by gerritbot

OAuth

 * - Migrate ILB::getConnectionRef calls to ILB::getConnection by gerritbot
 * - Change type hint from DBConnRef to IDatabase by Umherirrender
 * - tests: Move tests into @group Database by Umherirrender

OAuthRateLimiter

 * - Migrate ILB::getConnectionRef calls to ILB::getConnection by gerritbot

ORES

 * - Avoid DB access in non-Database tests by Daimona Eaytoy
 * - Add flag for host header by Ilias Sarantopoulos
 * - Create HookRunner class and the hook handler interfaces by Umherirrender

PageImages

 * - i18n: Split apihelp for parameter prop=pageimages&piprop= by Umherirrender

PageTriage

 * - Add media query to mwe-vue-pt-control-label-right by suecarmol
 * - Use correct line indent in MaintenancePopulateDraftQueueTest by Umherirrender
 * - Avoid DB access in non-Database tests by Daimona Eaytoy
 * - Delete SpecialNewPagesFeedTest by Daimona Eaytoy
 * - New Pages Feed: Always show review button by jsn
 * - Add apihelp for action=pagetriagestats&showautopatrolled= by Umherirrender
 * - Change WikiPage creation in onPageUndeleteComplete by suecarmol
 * - Persistent state followup by jsn
 * - Filter menu: add some bottom padding by Novem Linguae
 * - New Pages Feed: adjust username radio label selector by jsn
 * - New Pages Feed: increase filter menu density  by jsn
 * - New Pages Feed: fix username input focus by jsn
 * - Migrate to onPageUndeleteComplete by suecarmol
 * - Use server's language while compiling article snippets by MPGuy2824
 * - Fix Review button in bottom corner by suecarmol
 * - NewPagesFeed: display pagetriage-welcome message by jsn
 * - Refactor ApiPageTriageAction by Novem Linguae
 * - Refactor to use mw.util.getUrl by Novem Linguae
 * - Refactor ApiIsReviewed to use injection by Novem Linguae
 * - Fix colors in NewPagesFeed icons by suecarmol
 * - move settings store to ext.pageTriage.util by jsn
 * - Settings store should persist state by jsn

PageViewInfo

 * - Add ApiQueryMostViewedTest to the Database group by Daimona Eaytoy

Popups

 * - build: Use quotes for paths in package.json by Umherirrender
 * - Avoid using TestUser in non-Database tests by Daimona Eaytoy

ProofreadPage

 * - build: Suppress eslint/stylelint warning by Umherirrender
 * - i18n: Split apihelp for parameter meta=proofreadinfo&prpiprop= by Umherirrender
 * - Add descriptions for paramvalues for prppii and prppifp API modules by Sohom
 * - Fix API property prppifpprop=responsiveimages for format=xml by Umherirrender
 * - selenium: Migrate wdio tests away from deprecated `@wdio/sync` mode by Timo Tijhof
 * - EIS: Allow programatic manipulation of text to be captured by EIS by Sohom

QuickSurveys

 * - Allow custom yes/no button i18n messages on extenal surveys by Sam Smith
 * - SurveyFactory: Log error when surveys configuration is not a list by Sam Smith

Quiz

 * - Create HookRunner class and the hook handler interface by Umherirrender

ReadingLists

 * - build: Move eslint exclude folders into existing .eslintignore by Umherirrender
 * - Migrate ILB::getConnectionRef calls to ILB::getConnection by gerritbot
 * - apihelp-readinglists+createentry-param-title: US spelling of localized by Reedy

SecurePoll

 * - makeMailingList.php: Use PSR LoggerInterface instead of Monolog by Timo Tijhof
 * - Avoid DB access in SpecialSecurePollLogTest by Daimona Eaytoy
 * - Migrate ILB::getConnectionRef calls to ILB::getConnection by gerritbot
 * - Migrate LB::getConnection( DB_PRIMARY ) calls to LBF::getPrimaryDatabase by gerritbot

SiteMatrix

 * - i18n: Split apihelp for parameter action=sitematrix&smtype= by Umherirrender

TemplateData

 * - Left align caption and put [Edit template data] inline by Ed Sanders

TemplateStyles

 * - Create HookRunner class and the hook handler interfaces by Umherirrender

TextExtracts

 * - Use ExpirationAwareness instead of deprecated IExpiringStore by Derick Alangi
 * - i18n: Split apihelp for parameter prop=extracts&exsectionformat= by Umherirrender

Thanks

 * - Add ApiCoreThankUnitTest to the Database group by Daimona Eaytoy
 * - Update icon resource loader class due to icon changes in MobileFrontend by bwang

TocTree

 * - Fix @license and remove @subpackages from ext.toctree.js by Umherirrender
 * - Load module 'ext.toctree' on livepreview by Fomafix

TorBlock

 * - Create HookRunner class and the hook handler interface by Umherirrender

Translate

 * - Make ReviewTranslationActionApiTest more robust by Daimona Eaytoy
 * - aggregategroups: Minor simplification of code by Abijeet
 * - entity.selector: Add option to allow suggestions when empty by Abijeet
 * - i18n: Split apihelp for parameter messagecollection/messagegroups prop by Umherirrender
 * - Add apihelp message for action=aggregategroups&groupsourcelanguagecode= by Umherirrender
 * - AggregateGroups: Do not allow selection of invalid group by Abijeet
 * - SearchTranslations: Make the header full width by Abijeet
 * - SearchTranslations: Remove autocomplete for operator suggestions by Abijeet
 * - Migrate ILB::getConnectionRef calls to ILB::getConnection by gerritbot
 * - tests: Add type hints and some more code improvements by Abijeet
 * - tests: Make TranslateInitGroupLoaders a noop by Abijeet
 * - tests: Add `@group Database` to tests that need it by Daimona Eaytoy

TrustedXFF

 * - build: Move eslint exclude folders into existing .eslintignore by Umherirrender

TwoColConflict

 * - Add Database group to tests by WMDE-Fisch
 * - Migrate LB::getConnection( DB_PRIMARY ) calls to LBF::getPrimaryDatabase by gerritbot

UrlShortener

 * - build: Suppress eslint warning by Umherirrender
 * - Migrate ILB::getConnectionRef calls to ILB::getConnection by gerritbot

VueTest

 * - Update Codex to pre-v0.17.0 by Anne Tomasevich
 * - docs: Fix typo in README.md by Volker E
 * - Update Codex demos to 0.16.1 by Roan Kattouw

VisualEditor

 * - Convert WikitextPasteContextItem to PersistentContextItem by Ed Sanders
 * - Port Parsoid's WTUtils::textContentFromCaption by Arlo Breault
 * - Update VE core submodule to master (d90ae3a9c) by Ed Sanders
 * - Use passive event listeners for window scroll events by Ed Sanders
 * - Do not assume that UTPage exists in ApiVisualEditorTest by Daimona Eaytoy
 * - Use different tooltips for ca-edit and ca-ve-edit links  by Dringsim
 * - Reduce code duplication in ve.ui.MWGalleryDialog by thiemowmde
 * - Add option to unify display of VE enable preference by Bartosz Dziewoński
 * - Fix conditions for 'visualeditor-autodisable' that depended on WMF config by Bartosz Dziewoński

WebAuthn

 * - WebAuthnDisableForm: Add strict typing by Timo Tijhof

Wikibase

 * - REST: Add missing auth tests for property edits by Jakob Warkotsch
 * - REST: Add etag and last-modified to AddPropertyStatement response by Jakob Warkotsch
 * - REST: Handle edit metadata in AddPropertyStatement by Jakob Warkotsch
 * - REST: Add AssertPropertyExists by Muhammad Jaziraly
 * - REST: Rename input parameters for e2e tests by Muhammad Jaziraly
 * - Do not override needsDB in DispatchChangesJobTest by Daimona Eaytoy
 * - REST: Flatten ConditionalRequestsTest by Jakob Warkotsch
 * - REST: Move revision data into req inputs in ConditionalRequestsTest by Jakob Warkotsch
 * - REST: Add PUT property statement spec tests by Muhammad Jaziraly
 * - REST: Add ReplacePropertyStatementRouteHandler by Muhammad Jaziraly
 * - REST: Add AddPropertyStatementRouteHandler by Jakob Warkotsch
 * - REST: Add AddPropertyStatement use case by Jakob Warkotsch
 * - REST: Throw error if error code is not defined in lookup table by Ollie Shotton
 * - Require language in options in WikibaseValueFormatterBuilders by Lucas Werkmeister
 * - REST: Make ReplaceStatement use case subject agnostic by Ollie Shotton
 * - REST: Implement PropertyUpdater and PropertyRetriever by Jakob Warkotsch
 * - Removed no longer used newFromRepositoryAndNumber from ItemId/PropertyId by Leszek Manicki
 * - REST: StatementUpdater implementation improvements by Muhammad Jaziraly
 * - Removed unused repository name from EntityIdComposer by Leszek Manicki
 * - REST: Make StatementValidator throw error by Ollie Shotton
 * - REST: Make PermissionChecker Entity agnostic by Ollie Shotton
 * - REST: Move update exceptions to infrastructure namespace by Muhammad Jaziraly
 * - REST: Fix EntityUpdaterItemUpdaterTest covers annotation by Jakob Warkotsch
 * - REST: Add Property read model by Jakob Warkotsch
 * - REST: Create StatementUpdater implementation by Muhammad Jaziraly
 * - REST: Fix @covers annotations by Ollie Shotton
 * - Replace use of ParserOutput::addJsConfigVars, deprecated since 1.38  by C. Scott Ananian
 * - tests: Avoid constructing Language directly by Lucas Werkmeister
 * - REST: Make a generic EntityUpdater by Muhammad Jaziraly
 * - REST: Add POST /{property_id}/statements to OAS by Jakob Warkotsch
 * - Use InsertQueryBuilder by Lucas Werkmeister
 * - REST: Create Property domain services interfaces by Muhammad Jaziraly
 * - REST: Extract getStatementSubject to a new helper class by Muhammad Jaziraly
 * - Avoid DB access in REST handler tests by Daimona Eaytoy
 * - REST: Increase route handler unit test coverage by Ollie Shotton
 * - Avoid DB access in non-Database tests by Daimona Eaytoy
 * - Simplified RepoLinkerTest name by Leszek Manicki
 * - i18n: Split apihelp for parameter meta=wikibase&wbprop= by Umherirrender
 * - Termbox: Add doc blocks for typehinting by Jakob Warkotsch
 * - REST: Create StatementUpdater interface by Muhammad Jaziraly
 * - tests: Remove unneeded mock of ILoadBalancer::getConnectionRef by Umherirrender
 * - REST: Fix constructor parameter name by Ollie Shotton
 * - REST: Add `AssertStatementSubjectExists` use case step by Ollie Shotton
 * - tests: Temporarily disable automatic running of Wdio tests in CI  by Timo Tijhof
 * - UpdateRepoHookHandler: Change phpdoc to static types by Lucas Werkmeister
 * - Show fallback labels as placeholders while editing by Michael Große
 * - Show label placeholders with fallback labels in ULS and all languages by Michael Große
 * - UpdateRepoHookHandler: Get job queue group lazily by Lucas Werkmeister
 * - Add explanation to getUserLanguage deprecation by Lucas Werkmeister
 * - Inject LanguageNameLookupFactory into WikibaseValueFormatterBuilders by Lucas Werkmeister
 * - REST: Fix error prone conditional statements by Ollie Shotton
 * - Termbox: Wait for async assertions in tests by Jakob Warkotsch
 * - Termbox: Move mount logic into Wikibase by Jakob Warkotsch
 * - Avoid DB connections from service wiring in non-database tests by Daimona Eaytoy
 * - Removed the redundant joinSerialization from HtmlPageLinkRendererEndHookHandler by Leszek Manicki
 * - Disable InstantCommons in WikibaseValueFormatterBuildersTest by Lucas Werkmeister
 * - REST: Add unit tests to `UseCaseErrorTest` by Ollie Shotton
 * - Termbox: Configure terms editability by Silvan
 * - Prepare removal of the unused repository name concept from EntityIdComposer by Leszek Manicki
 * - Fix misplaced BadMethodCallException in ApiPrefetchingTermLookup by thiemowmde
 * - Removed (Serializable)EntityId::isForeign by Leszek Manicki
 * - Remove confusing “by reference” wording from data-model by Lucas Werkmeister
 * - Made description of EntityIdSearchHelper more accurate by Leszek Manicki

WikibaseLexeme

 * - Avoid global ResourceLoader::inDebugMode in LexemeLanguageCodePropertyIdConfig by Timo Tijhof
 * - Disable running the daily selenium tests against beta by Michael Große
 * - Move Special:NewLexeme to wikibase group by Lucas Werkmeister
 * - qunit: Use strict assertions by Umherirrender
 * - Allow SpecialPage::getDescription to return a Message by C. Scott Ananian
 * - tests: Temporarily disable automatic running of Wdio tests in CI  by Timo Tijhof
 * - Reenable and adjust API rate-limiting tests for new message by Michael Große
 * - Simplify EntityIdComposer usage code by Leszek Manicki
 * - Prepare for dropping "repo prefix" from EntityComposer by Leszek Manicki
 * - Removed usages of EntityId::isForeign by Leszek Manicki
 * - Standardize WikibaseLexemeServices::getGrammaticalFeaturesOrderProvider by Lucas Werkmeister
 * - Standardize WikibaseLexemeServices::getEditFormChangeOpDeserializer by Lucas Werkmeister
 * - Standardize WikibaseLexemeServices::getLanguageNameLookupFactory by Lucas Werkmeister
 * - Standardize WikibaseLexemeServices::getTermLanguages by Lucas Werkmeister

WikibaseMediaInfo

 * - Simplify EntityIdComposer usage code by Leszek Manicki
 * - Drop not needed EntityIdComposer::composeEntityId arg by Jakob Warkotsch
 * - Avoid DB access in non-Database tests by Daimona Eaytoy
 * - Prepare for dropping "repo prefix" from EntityComposer by Leszek Manicki

Wikidata.org

 * - Make all @dataProviders static by thiemowmde

WikiEditor

 * - Add missing @param in jquery.wikiEditor.js by Umherirrender

WikiLambda

 * - Minor styles changes by aminalhazwani
 * - Edit copy on view function page by aminalhazwani
 * - Minor styles changes by aminalhazwani
 * - Edit copy on create new function page by gengh
 * - Use needsDB in WikiLambdaIntegrationTestCase by Daimona Eaytoy
 * - Remove zobject module unused or duplicate methods by gengh
 * - Rename language module getters by gengh
 * - Rename zKeys module to library by gengh
 * - Remove unused code by gengh
 * - Improve code quality and performance in FunctionEditor components by gengh
 * - Fixup AppArmo(u)r integration tests by Stef Dunlap
 * - ZObjectEditAction: Fix link to who can edit by James D. Forrester
 * - i18n: Fix grouppage links to have Wikifunctions: prefix by James D. Forrester
 * - PageRenderingHandler: Fix logic error in setting talk page URL by James D. Forrester
 * - ZObjectStoreTest::testUpdateZObject: Re-fetch the Title to get the new revId by James D. Forrester
 * - Add apihelp message for wikilambdafn_limit by Umherirrender
 * - Drop all text-transform directives, not i18n-safe by James D. Forrester
 * - ApiFunctionCall: Check calls for Z16K2 and deny those too by James D. Forrester
 * - WikiLambdaApiBase::dieWithZError: Log that something went wrong for us to check by James D. Forrester
 * - tests: Upgrade codex from 0.15.0 to 0.16.1 to align with Wikipedia by James D. Forrester
 * - WikiLambdaApiBase: Try/catch the last ZObjectFactory calls (on orchestrator responses) by James D. Forrester
 * - test_data: Use Z4xx for test data, not 'real' ZIDs that could be dereferenced by James D. Forrester
 * - About: Add an  between aliases after the comma  by James D. Forrester
 * - Propagate canEdit into About dialogs to restrict edition by gengh
 * - E2E browser tests: Quick fix to adjust to recent auth etc. changes by nik-55
 * - Remove 'wikilambda-edit' as default right; re-label to make clear by gengh
 * - AboutEditMetadataDialog: Don't clear the edit fields when we pick a new language by gengh
 * - Commented user-defined validator function test that does nothing by gengh
 * - Migrate LB::getConnection( DB_PRIMARY ) calls to LBF::getPrimaryDatabase by gerritbot
 * - Migrate LB::getConnection( DB_REPLICA ) calls to LBF::getReplicaDatabase by gerritbot
 * - Don't clear the About edit fields when we pick a new language by gengh
 * - Check type of Z_PERSISTENTOBJECT_DESCRIPTION in isValid by dmartin
 * - Add restriction and warning message in Function Evaluator widget for logged out users by gengh
 * - Add 'wikilambda-edit-object-description' to granular authorization rules by gengh
 * - Fix unsafe validator to not reach into undefined keys by gengh
 * - WikiLambda: Add PHP code for Z2K5/'short descriptions' by dmartin
 * - tests: Bring in Cory's AppArmor tests as @disabled phpunit ones by James D. Forrester
 * - ZObjectSecondaryDataUpdate: Add language secondary labels as strings not ZStrings by James D. Forrester
 * - Migrate ILB::getConnectionRef calls to ILB::getConnection by gerritbot
 * - ApiFunctionCall,ApiPerformTest: Require higher privs for custom execution/test runs by James D. Forrester
 * - ApiFunctionCall: Actually check 'wikilambda-execute' before proceeding by James D. Forrester
 * - WikiLambdaApiBase: Don't explode in dieWithZError by James D. Forrester
 * - onHtmlPageLinkRendererEnd: Fiddle more carefully with links so we don't over-write non-edit ones by James D. Forrester
 * - ZObjectUtils: Drop normalize and sub-methods, now unused by James D. Forrester
 * - ApiQueryZObjects: Drop canonicalize flag, never varied in our code by James D. Forrester
 * - Special:CreateObject: Restrict rights to 'wikilambda-create' not 'createpage' right by James D. Forrester

WikimediaApiPortalOAuth

 * - Fix link in Special:AppManagement form by Rajashree Talukdar
 * - Fix link in Special:AppManagement intro by Rajashree Talukdar

WikimediaEditorTasks

 * - Migrate ILB::getConnectionRef calls to ILB::getConnection by gerritbot

WikimediaEvents

 * - clientError: Replace inline disables with eslint-disable camelcase by Timo Tijhof
 * - clientError: Add chrome:// to URI schema ban list by Gergő Tisza
 * - sessionTick: Switch to localStorage to avoid breaking browser cache by Timo Tijhof
 * - sessionTick: Simplify and misc clean up by Timo Tijhof
 * - Document infrastructure and instrument ownership by Sam Smith

WikimediaMessages

 * - Add messages for Sundanese Wikisource (suwikisource) by gerritbot
 * - Add messages for Pa'O Wiktionary (blkwiktionary) by gerritbot

XAnalytics

 * - Create HookRunner class and the hook handler interface by Umherirrender

CologneBlue

 * - Treat label in portlet as display block by Jon Robson
 * - Style portlets created with mw.util.addPortlet consistently by Jon Robson

MinervaNeue

 * - Remove icons from about and disclaimer link and minerva-icon class by Jon Robson
 * - Move button styles out of icons.less by Jon Robson
 * - Redo icon sizing by Jon Robson
 * - Revert "Use !important for removing after" by Jdlrobson
 * - Use !important for removing after by Jon Robson
 * - [Icons] Use Button template in PageActionsMenu. by Jon Robson
 * - Fix header overflow style causing header buttons from being cut off by bwang
 * - Remove user page from menu for temp users by bwang
 * - Fix the height of cdx-button in header-overlay by Ed Sanders
 * - Revert "Any header overflow should be hidden" by Esanders
 * - Prepare icon module selectors for Codex markup change by Jon Robson
 * - Fixes: Echo circle notification appears as large red square by Jon Robson
 * - Remove left padding from header-cancel by Ed Sanders
 * - Any header overflow should be hidden by Jon Robson
 * - Fix page issue icon by bwang
 * - Echo uses Button template by Jon Robson
 * - Revert "Add metric platfrom event tracking on mobile desktop toggle" by Phuedx
 * - Update remaining page issue icon selectors by bwang
 * - Update page issues to use new MF icon class by bwang
 * - Fix toc arrow icon being too big by bwang
 * - [Icons] Use IconLegacy template in menuGroup and ToggleListItem by Jan Drewniak
 * - [Icons] Main menu, secondary actions and search icon are built via templates by Jon Robson
 * - Avoid DB access in non-database tests by Daimona Eaytoy

Modern

 * - Style portlets created with mw.util.addPortlet consistently by Jon Robson

MonoBook

 * - Make Monobook compatible with mw.util.addPortlet method by Jon Robson

Timeless

 * - Make Timeless compatible with mw.util.addPortlet by Jon Robson

Vector

 * - Remove unnecessary styles about temp user page by bwang
 * - Fix suffix check by Jon Robson
 * - Fixes the pinning functionality by Jon Robson
 * - Display ULS vector-dropdown-content when on non-content pages by Abijeet
 * - Avoid DB access in SkinVectorTest by Daimona Eaytoy
 * - Limited width uses new client preferences system by Jon Robson
 * - Add mw.util.addPortlet handler for legacy Vector by Jon Robson

WikimediaApiPortal

 * - Remove @param from @file comment in searchform.js by Umherirrender
 * - Do not use TestUser in UserMenuComponentTest by Daimona Eaytoy

VisualEditor/VisualEditor

 * - ve.ce.Surface: Remove IE support in copy/paste code by Ed Sanders
 * - Remove ve.isPassiveEventsSupported by Ed Sanders
 * - TableNode: Remove hack for ancient browser (FF39) by Ed Sanders
 * - Add a "review mode" to the surface view by Ed Sanders
 * - Implement PersistentContextItems by Ed Sanders

No changes

 * 3D
 * ActiveAbstract
 * ApiFeatureUsage
 * ArticleCreationWorkflow
 * BetaFeatures
 * Calendar
 * Campaigns
 * Capiunto
 * CategoryTree
 * CentralNotice
 * CharInsert
 * CiteThisPage
 * CodeEditor
 * Cognate
 * CommonsMetadata
 * ContactPage
 * CreditsSource
 * Dashiki
 * DismissableSiteNotice
 * DoubleWiki
 * Elastica
 * ElectronPdfService
 * EventStreamConfig
 * ExtensionDistributor
 * FileExporter
 * FundraiserLandingPage
 * FundraisingTranslateWorkflow
 * GeoCrumbs
 * Graph
 * GuidedTour
 * ImageMap
 * ImageSuggestions
 * InputBox
 * Insider
 * Interwiki
 * InterwikiSorting
 * Josa
 * LabeledSectionTransclusion
 * LandingCheck
 * LiquidThreads
 * Listings
 * MapSources
 * MassMessage
 * MediaModeration
 * MobileApp
 * NavigationTiming
 * Nostalgia
 * OpenStackManager
 * PageAssessments
 * PageNotice
 * PagedTiffHandler
 * ParserFunctions
 * PdfHandler
 * Phonos
 * Poem
 * PropertySuggester
 * RSS
 * RealMe
 * RelatedArticles
 * RevisionSlider
 * SandboxLink
 * Score
 * Scribunto
 * SearchExtraNS
 * SearchVue
 * SecureLinkFixer
 * ShortUrl
 * SimilarEditors
 * SpamBlacklist
 * StopForumSpam
 * SubPageList3
 * SubpageSortkey
 * SyntaxHighlight_GeSHi
 * TemplateSandbox
 * TemplateWizard
 * TheWikipediaLibrary
 * TimedMediaHandler
 * TitleBlacklist
 * TranslationNotifications
 * UniversalLanguageSelector
 * UploadWizard
 * UploadsLink
 * VipsScaler
 * WikiLove
 * WikibaseCirrusSearch
 * WikibaseLexemeCirrusSearch
 * WikibaseQualityConstraints
 * WikidataPageBanner
 * WikimediaBadges
 * WikimediaIncubator
 * WikimediaMaintenance
 * Wikisource
 * Wikistories
 * intersection
 * timeline
 * wikihiero

Total changes
643 Changes in 103 repos by 92 authors