MediaWiki 1.41/wmf.13/Changelog

Core changes

 * - Branch commit for wmf/1.41.0-wmf.13 by trainbranchbot
 * - Update and expand magic word aliases for Serbian etc. by Acamicamacaraca
 * - Replace deprecated MWException by Daimona Eaytoy
 * - Add Betawi language (bew) by Amir E. Aharoni
 * - jquery.makeCollapsible: Use `unset: all` on buttons by tacsipacsi
 * - ResourceLoader: Replace array_walk in makeLoaderRegisterScript by Umherirrender
 * - diff: Rename diff resource module directory by Sam Wilson
 * - Remove TODO fixed in 2011 from upload.js by Kunal Mehta
 * - Namespace EventRelayer and EventRelayerNull by Alexander Vorwerk
 * - Allow webp images to be previewable by Nikolas Nyby
 * - Reorg: Move EventRelayerGroup to libs/eventrelayer/ by Alexander Vorwerk
 * - resources: Split styles in module mediawiki.interface.helpers.styles by Umherirrender
 * - media: Replace deprecated MWException by Daimona Eaytoy
 * - Prevent temporary users from accessing ApiLinkAccount by Thalia
 * - Replace deprecated MWException by Daimona Eaytoy
 * - Migrate more usages of Database::update to UpdateQueryBuilder by Alexander Vorwerk
 * - Start using ChangeTagsStore by Amir Sarabadani
 * - Add MessagesGpe.php for Ghanaian Pidgin by Jon Harald Søby
 * - Reenable "RedundantTargets" test by Michael Große
 * - Skip targets test to merge mutually blocking fixes by Michael Große
 * - Database: support passing an IReadableDatabase to getCacheSetOptions by Taavi Väänänen
 * - Tests: Only skip tests related to the temp table reopen issue in MySQL by Amir Sarabadani
 * - Replace some more usages of deprecated MWException by Daimona Eaytoy
 * - Replace more usages of deprecated MWException by Daimona Eaytoy
 * - Tests: Error for any new module that introduces bad targets by Jon Robson
 * - Remove and correct selector for cached HTML by Jon Robson
 * - Externallinks: Make port part of the index by Amir Sarabadani
 * - api: Silence database write warnings from ApiLogout by Timo Tijhof
 * - moveToExternal: Also check for utf8 encoding before trying to convert by Amir Sarabadani
 * - pagers: Make some pagers operate on IReadableDatabases by Taavi Väänänen
 * - UserGroupManager: Make newQueryBuilder accept a IReadableDatabase by Taavi Väänänen
 * - tests: Migrate Database::update usages to UpdateQueryBuilder by Amir Sarabadani
 * - Clean up UpdateQueryBuilder usage by Lucas Werkmeister
 * - Migrate Database::update to UpdateQueryBuilder by Amir Sarabadani
 * - page.preview: Grey out `.mw-editTools` while loading by samtar
 * - Follow-up I6a02042f: Ensure reason is always a string by Ed Sanders
 * - Follow-up 1eb5860: Move update to corrected RELEASE-NOTES by James D. Forrester
 * - Drop revision_comment_temp by Alexander Vorwerk
 * - Maintenance: Add --reason option to createAndPromote.php by Owen
 * - foreign-resources: Correct Codex version number to 0.12.0 by Roan Kattouw
 * - Update Codex from v0.11.0 to v0.12.0                 by Eric Gardner
 * - Pingback: Inline the private markSent function by Timo Tijhof
 * - Pingback: Avoid confusingly named non-test method in PingbackTest by Timo Tijhof
 * - rcfilters: Avoid double-escaping on messages by Func
 * - rdbms: Build generalized SQL while building the main SQL in DELETE by Amir Sarabadani
 * - Replace usages of deprecated MWException by Daimona Eaytoy
 * - WikiMap: Support wiki URLs with a port part by Bartosz Dziewoński
 * - Upgrade wikimedia/common-passwords to 0.5.0 by Timo Tijhof
 * - Simplify HookContainer (v2) by Lucas Werkmeister
 * - Pingback: Make Pingback a MediaWiki service by Derick Alangi
 * - Revert "Simplify HookContainer" by Lucas Werkmeister
 * - SpecialShortPages: Document reason for "reallyDoQuery" override  by Timo Tijhof
 * - fix typo in comment by Novem Linguae
 * - site: Simplify SiteList by removing GenericArrayObject indirection by Timo Tijhof
 * - changetags: Move more functions from ChangeTags to ChangeTagsStore by Amir Sarabadani
 * - Simplify HookContainer by daniel
 * - SiteConfiguration: Soft & Hard deprecate unused methods by Derick Alangi
 * - Mark PageContent::getRedirectTarget for removal by Arlo Breault
 * - rdbms: upgrade SQLPlatform::normalizeUpsertParams warnings to errors by Aaron Schulz
 * - Add return type to getIndicators in ParserOutput & OutputPage by Subramanya Sastry
 * - page.preview: Grey out `.hiddencats` while loading by samtar
 * - diff: Add legend and tooltips to inline diff display by Sam Wilson
 * - rdbms: make affectedRows count each updated row in replace as one by Aaron Schulz
 * - rdbms: make affectedRows count each updated row in upsert as one by Aaron Schulz
 * - user: Avoid exception about cross-wiki users in UserGroupManager by Umherirrender
 * - user: Accept local wiki name on UserGroupManagerFactory by Umherirrender
 * - Replace IDatabase with IReadableDatabase where possible by thiemowmde
 * - Replace substr with cleaner string methods by Matěj Suchánek

Vendor

 * - Bump parsoid to 0.18.0-a14   by Isabelle Hurbain-Palatin
 * - Upgrade wikimedia/common-passwords to 0.5.0 by Timo Tijhof
 * - Upgrading fgrosse/phpasn1 (v2.4.0 => v2.5.0) by Reedy

3D

 * - mmvBootstrap.openImage requires only one argument by Simon Legner
 * - Obtain MultimediaViewerBootstrap using require by Simon Legner

AbuseFilter

 * - BlockedDomains: Use cleaner array building and add tests by Amir Sarabadani
 * - Fix error reporting in BlockedDomainStorage for real  by thiemowmde
 * - Fix broken error reporting in BlockedExternalDomains  by thiemowmde
 * - Make use of the ??= operator and such where it makes sense by thiemowmde
 * - Make edit summary of blocked domain changes use i18n by Amir Sarabadani
 * - Add abusefilter-bypass-blocked-external-domains right by Amir Sarabadani
 * - BlockedDomains: Make lookup for domains added in blocked domains faster by Amir Sarabadani
 * - Replace deprecated MWException by Daimona Eaytoy
 * - Allow interface-admins to edit blocked domains json directly by Amir Sarabadani
 * - BlockedExternalDomains: validate JSON structure before save by Siddharth VP
 * - Degroup: Return early if user is a temporary user by Thalia
 * - Update block expiry message in AbuseFilter edit view by Thalia

AdvancedSearch

 * - Use "0" instead of "false" for default user options by thiemowmde

AntiSpoof

 * - Replace deprecated MWException by Daimona Eaytoy

ApiFeatureUsage

 * - Replace deprecated MWException by Daimona Eaytoy

ArticlePlaceholder

 * - Remove unneded `@throws MWException` by Daimona Eaytoy

CentralAuth

 * - Phase out use of $wgExtensionFunctions callback by Timo Tijhof
 * - Convert getCacheSetOptions uses to IReadableDatabase by Taavi Väänänen
 * - Add ExtensionJsonTest (and sort services) by Taavi Väänänen
 * - Convert to IReadableDatabase where easily possible by Taavi Väänänen
 * - Replace deprecated MWException by Daimona Eaytoy
 * - Use IReadableDatabase in SelectQueryBuilder subclass by Lucas Werkmeister
 * - Let 'TempUserCreatedRedirect' handler run in API requests by Bartosz Dziewoński
 * - Declare AntiSpoof as required dependency for CentralAuth by Timo Tijhof

CheckUser

 * - clienthints: Request headers on action=history instead of rollback by Kosta Harlan
 * - eslint: Fix eslint warnings by Kosta Harlan
 * - build: Update eslint-config-wikimedia to 0.25.1  by Kosta Harlan
 * - Move Hooks::onSpecialPage_initList to a hook handler file  by Dreamy Jazz
 * - Move Hooks::onRenameUserSQL to hook handler file and unit test  by Dreamy Jazz
 * - Move toollinks related hooks to a hook handler file by Dreamy Jazz
 * - clienthints: Simplify, rework test by Kosta Harlan
 * - Move ::onLoadExtensionSchemaUpdates to hook handler file by Dreamy Jazz
 * - Remove hard deprecated Hooks::getClientIPfromXFF by Dreamy Jazz
 * - Replace deprecated MWException by Daimona Eaytoy
 * - clienthints: Send empty header on page views by Kosta Harlan
 * - Use cuc_timestamp as index field when reading old by Dreamy Jazz
 * - Use IReadableDatabase in SelectQueryBuilder subclass by Lucas Werkmeister
 * - clienthints: Request on ?action query parameter by Kosta Harlan
 * - clienthints: Hook handler, config, and SpecialPage integration by Kosta Harlan

ChessBrowser

 * - Replace deprecated MWException by Daimona Eaytoy

CirrusSearch

 * - Add doc for wgNamespacesToBeSearchedDefault by David Causse
 * - Replace deprecated MWException  by Daimona Eaytoy

Cite

 * - Use message widget for reuse warning in reference dialog by Svantje Lilienthal
 * - Always use the strict equality flag when using in_array by Ed Sanders
 * - Fix inconsistent usage of lastIndexOf in VE reference code by thiemowmde
 * - Add strict types to all class properties by thiemowmde

CodeEditor

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

CodeMirror

 * - Always use the strict equality flag when using in_array by Ed Sanders
 * - Refactor CodeMirror WebdriverIO tests from sync to async mode by James D. Forrester

Cognate

 * - Replace deprecated MWException by Daimona Eaytoy
 * - Replace IDatabase with IReadableDatabase where possible by thiemowmde

Collection

 * - Replace deprecated MWException by Daimona Eaytoy

CommonsMetadata

 * - Replace deprecated MWException by Daimona Eaytoy

ConfirmEdit

 * - Replace deprecated MWException by Daimona Eaytoy
 * - Use WRITE_BACKGROUND in CaptchaCacheStore and rename "cache" to "store" by Aaron Schulz

ContactPage

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

ContentTranslation

 * - Remove unused domain mapping for crh by Kartik Mistry
 * - tests: Add basic test for HookRunner by Umherirrender

DiscussionTools

 * - EchoHooks: Use symbols instead of string class names by Ed Sanders
 * - Delay the load of VE modules until we're sure they're needed by David Lynch
 * - Add various, more specific type hints by thiemowmde
 * - Use namespaced Echo classes by Siddharth VP
 * - Remove DiscussionToolsEnableMobile by Ed Sanders
 * - Remove most DiscussionTools feature configs by Ed Sanders
 * - Drop the DiscussionToolsEnable feature flag by Ed Sanders
 * - Always use the strict equality flag when using in_array by Ed Sanders

DonationInterface

 * - Fix India form text cosmetics before pretest by wfan
 * - Change pan explain text. by cstone

Echo

 * - Replace remaining usages of deprecated MWException by Daimona Eaytoy
 * - Replace some usages of deprecated MWException by Daimona Eaytoy

ElectronPdfService

 * - Adjust browser test to new vector skin by WMDE-Fisch

EntitySchema

 * - Add Concept URI link in Tools sidebar by gtzatchkova
 * - Replace deprecated MWException by Daimona Eaytoy
 * - Add EntitySchema URI to RDF output by Marius Hoch

EventBus

 * - Remove duplicate default setting for PAGE_CHANGE_STREAM_NAME_DEFAULT by Ottomata
 * - Replace deprecated MWException by Daimona Eaytoy

ExternalGuidance

 * - Replace deprecated MWException by Daimona Eaytoy

FlaggedRevs

 * - Remove dead arguments from FlaggedRevision constructor call by thiemowmde

Flow

 * - Remove usage of VirtualRestService from Flow. by rrana-wmf
 * - Use ParsoidParser to convert HTML to Wikitext. by rrana-wmf
 * - Skip affected tests unconditionally until gerrit->927619 lands by Derick Alangi
 * - Enable 'multi-line' mode in preg_match for wikitextToHTML regex by rrana-wmf
 * - Refactor testResolveSubpageTraversal by rrana-wmf
 * - Update moved class RawMessage by gerritbot

Gadgets

 * - Remove mention to deprecated MWException by Daimona Eaytoy
 * - Add Sicilian namespace translations by Jon Harald Søby

GeoData

 * - Remove unneded `@throws MWException` by Daimona Eaytoy

GlobalBlocking

 * - Replace deprecated MWException by Daimona Eaytoy

GrowthExperiments

 * - Section images: Fix scrolling behavior by Gergő Tisza
 * - structuredtask: Re-implement beforeunload hook by Kosta Harlan
 * - Add image: Nicer error logging when suggestion list is empty by Gergő Tisza
 * - Section images: Display section-image specific reasons by Gergő Tisza
 * - Use CollationFactory in ConfigurationValidator for performance by thiemowmde
 * - addsectionimage: Remove beforeunload event by Kosta Harlan
 * - Add image: Don't scroll on desktop in caption step unless necessary by Gergő Tisza
 * - styles: Replace deprecated `min-size-base` token by Volker E
 * - Add maintenance script for testing image suggestions by Gergő Tisza
 * - Use namespaced Echo classes by Siddharth VP
 * - Section images: Update main dialog text by Gergő Tisza
 * - Section images: add dedicated rejection value by Sergio Gimeno
 * - SuggestedEditSession: Don't set plugin data without a task type by Kosta Harlan
 * - Add special page names in Norwegian Bokmål and Nynorsk by Jon Harald Søby
 * - accountcreation: Exclude temp users from Growth features by Kosta Harlan
 * - Frontend documentation: Adapt OnboardingDialog styles to changes in CdxDialog by vyanez
 * - Section images: Remove user variant by Gergő Tisza
 * - Section images: handle accepted/rejected suggestions submissions by Sergio Gimeno
 * - Section images: Add change tag i18n by Gergő Tisza
 * - Remove dead code in InitWikiConfig by Daimona Eaytoy
 * - Replace deprecated MWException  by Daimona Eaytoy
 * - Section images: add missing rtl images by Sergio Gimeno
 * - Section images: use dedicated illustration thumbnails by Sergio Gimeno
 * - Section images: Fix post-edit quality gate check  by Gergő Tisza
 * - Section images: Fix quality gate error i18n key  by Gergő Tisza
 * - Consistent capitalization of article names in messages by Amir E. Aharoni
 * - Section images: bump instrumentation schema to 1.4.1 by Sergio Gimeno
 * - Section images: Implement image placeholder by Gergő Tisza
 * - Section images: Separate edit summary by Gergő Tisza
 * - Section images: Add log subtype by Gergő Tisza
 * - documentation/frontend: Generate coverage report by Kosta Harlan
 * - PostEditPanel: Document additional i18n key by Kosta Harlan
 * - api-testing: Set higher timeout by Kosta Harlan
 * - PersonalizedPraiseLogger: Only include mentee_id if not null by Martin Urbanec
 * - Frontend documentation: refactor RTL handling in MultiPane by Sergio Gimeno
 * - Section images: Add community config form field for quality gate by Gergő Tisza
 * - Section images: Refactor VE node handling by Gergő Tisza

ImageSuggestions

 * - Remove unneded `@throws MWException` by Daimona Eaytoy

intersection

 * - Replace deprecated MWException by Daimona Eaytoy

JsonConfig

 * - Replace deprecated MWException by Daimona Eaytoy

Kartographer

 * - Improve test coverage with fast, pure unit tests by thiemowmde
 * - styles: Replace deprecated `min-size-base` token by Volker E
 * - Add very basic tests for MapTagArgumentValidator & Tag classes by thiemowmde
 * - Nearby: Don't create popup HTML twice without/with thumbnail by thiemowmde
 * - Extract "argument is required" logic into separate method by thiemowmde
 * - Drop duplicate tracking of valid  tags by thiemowmde
 * - Prettify coordinate formatting in generated GeoJSON by Thiemo Kreuz

LiquidThreads

 * - LqtDispatch: Change onPageContentLanguage to not use $userLang by Timo Tijhof

LoginNotify

 * - Create HookRunner class by Umherirrender

MachineVision

 * - Replace deprecated MWException by Daimona Eaytoy

Math

 * - Catch more specific exception in MathRestbaseInterface by Daimona Eaytoy
 * - Replace deprecated MWException by Daimona Eaytoy
 * - Remove additional v1 suffix when computing internalRestbaseURL  by Moritz Schubotz (physikerwelt)
 * - Always use the strict equality flag when using in_array by Ed Sanders
 * - Create HookRunner class and the hook handler interfaces by Umherirrender

MediaModeration

 * - Remove broken exception handling by Daimona Eaytoy

MediaSearch

 * - styles: Replace deprecated `min-size-base` token by Volker E
 * - Avoid using empty on variables guaranteed to be set by Daimona Eaytoy
 * - Replace deprecated MWException by Daimona Eaytoy
 * - build: Upgrade vue to 3.2.37 to align with MediaWiki by James D. Forrester

MobileFrontend

 * - Support VisualEditor's wikitext mode by David Lynch
 * - Consolidate visual mode checks into a shared method, and check for hook disabled by Ed Sanders
 * - Create HookRunner class and the hook handler interfaces by Umherirrender
 * - Remove unneeded catch for MWException by Daimona Eaytoy
 * - Prevent saving preferences for temp users by AnaïsGueyte
 * - diff: Hide legend for inline diffs by Sam Wilson

MultimediaViewer

 * - Notify user and close MMV if image from route not present on page  by Simon Legner
 * - Use ES6 features by Simon Legner

Newsletter

 * - Replace deprecated MWException by Daimona Eaytoy

OAuth

 * - OAuthListConsumers: Show whether client is confidential by Lucas Werkmeister
 * - Use namespaced Echo classes by Siddharth VP

ORES

 * - Replace deprecated MWException by Daimona Eaytoy

PageTriage

 * - Replace deprecated MWException by Daimona Eaytoy
 * - Fix failing master build by Daimona Eaytoy

Popups

 * - Prevent Enabling Beta Preferences for temp users by AnaïsGueyte

ProofreadPage

 * - Replace deprecated MWException by Daimona Eaytoy
 * - Always use the strict equality flag when using in_array by Ed Sanders

PropertySuggester

 * - Remove targets definition from module registration by Michael Große

RealMe

 * - Switch order of attributes so rel comes first by Kunal Mehta

RevisionSlider

 * - Use "0" instead of "false" for default user options by thiemowmde

Score

 * - Always use the strict equality flag when using in_array by Ed Sanders

Scribunto

 * - Replace deprecated MWException by Daimona Eaytoy

SearchVue

 * - Remove redundant Targets from extension.json by Simone Cuomo
 * - Remove text-transform:capitalize; by Jon Harald Søby

SecureLinkFixer

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

SecurePoll

 * - VotePage: add vote summary after voting by miriam schlindwein

SubPageList3

 * - Remove unneded `@throws MWException` by Daimona Eaytoy

SyntaxHighlight_GeSHi

 * - Replace deprecated MWException by Daimona Eaytoy
 * - Always use the strict equality flag when using in_array by Ed Sanders
 * - Pygmentize: Treat Shellbox network loss like non-zero exit code by Timo Tijhof

TemplateData

 * - Clean up base class reaching into the subclass by Thiemo Kreuz

Thanks

 * - Use namespaced Echo classes by Siddharth VP
 * - Remove unneded `@throws MWException` by Daimona Eaytoy
 * - ServiceWiring: Rename LogStore to ThanksLogStore by Func

TimedMediaHandler

 * - Improve fullscreen on iOS mobile and in desktop on mobile by Derk-Jan Hartman
 * - eslint: Ignore bidi errors in the i18n/*.json files by Derk-Jan Hartman
 * - Fix the download url by Brion Vibber
 * - Replace deprecated MWException by Daimona Eaytoy

TitleBlacklist

 * - Replace deprecated MWException by Daimona Eaytoy

Translate

 * - FlatPhpFFS::class: Move to FileFormatSupport namespace by wangombe
 * - JavaFFS::class: Move to FileFormatSupport namespace by wangombe
 * - DtdFFS::class: Move to FileFormatSupport namespace by wangombe
 * - AndroidXmlFormat: Further code improvements by wangombe
 * - YamlFFS::class: Move to FileFormatSupport namespace by wangombe
 * - Add script to import an entire translatable bundle by Abijeet
 * - ManageGroupsSpecialPage: Check revision before fetching content by Abijeet
 * - AmdFFS::class: Move to FileFormatSupport namespace by wangombe
 * - Hooks: Fix interface method name in UserPromotedHook by Umherirrender
 * - AppleFFS::class: Move to FileFormatSupport namespace by wangombe
 * - Add script to export an entire translatable bundle by Abijeet
 * - IniFFS::class: Move to FileFormatSupport namespace by wangombe
 * - TTMServerMessageUpdateJob: Improve logging by Abijeet
 * - GettextFFS::class: Move to FileFormatSupport namespace by wangombe

TwoColConflict

 * - selenium: Refactor WebdriverIO tests from sync to async mode by Peter Wangai

UniversalLanguageSelector

 * - Update jquery.ime and jquery.uls from upstream by Amir E. Aharoni
 * - Always use the strict equality flag when using in_array by Ed Sanders

UploadWizard

 * - Replace deprecated MWException by Daimona Eaytoy

VueTest

 * - Update Codex to 0.12.0 by Anne Tomasevich

VipsScaler

 * - Replace deprecated MWException by Daimona Eaytoy

VisualEditor

 * - jsduck: Add missing categories for MW classes by Ed Sanders
 * - Targets: Use align:'after' instead of actionGroups by Ed Sanders
 * - Update VE core submodule to master (549e36956) by Bartosz Dziewoński
 * - Update CE nodes with mw-file-element/mw-file-description classes by Ed Sanders
 * - EditCheck: Filter ranges to CBN interiors by David Chan
 * - Always use the strict equality flag when using in_array by Ed Sanders
 * - Autosize the EditSummaryWidget by Ed Sanders
 * - MWImage: Use mw-file-element class in converter methods by Ed Sanders
 * - Bump requested Parsoid HTML version to 2.8.0 by Arlo Breault
 * - Ensure a compatible Parsoid output version for direct client by Arlo Breault
 * - Move the diff-mode selector to the new TextSlotDiffRendererTablePrefix hook by Sam Wilson

Wikibase

 * - Remove PrefixMappingEntityIdParser and factory by Jakob Warkotsch
 * - Add strict types to FullEntityParserOutputGenerator by Michael Große
 * - Inject Wikibase.MobileView service instead of static calls by Michael Große
 * - Add tests for MobileSite service on both client and repo by Michael Große
 * - Expand ServiceWiringTestCase to cover ->has('Service.Name') as well by Michael Große
 * - Use UpdateQueryBuilder by Lucas Werkmeister
 * - Remove repo prefixes from LinkFormatter test by Jakob Warkotsch
 * - REST: Mark GET properties as production-ready by Muhammad Jaziraly
 * - Add $snakNamespace to ValueSnakRdfBuilder::addValue PHPDoc by Marius Hoch
 * - Use SelectQueryBuilder in PageTableEntityQueryBase by Lucas Werkmeister
 * - Reduce JOIN support in PageTableEntityQuery by Lucas Werkmeister
 * - Remove DispatchingEntityLookup by Jakob Warkotsch
 * - REST: Add invalid-property-id example to OAS by sihe
 * - REST: Remove unused constant by Ollie Shotton
 * - REST: Reuse PropertyIdValidator by Ollie Shotton
 * - REST: Add spec tests for GetProperty by sihe
 * - REST: Respond 400 if the property id is invalid by Norman Schwirz
 * - Use SelectQueryBuilder in DatabaseTermInLangIdsResolver by Lucas Werkmeister
 * - REST: Use arrow functions where possible by Jakob Warkotsch
 * - REST: Throw LogicException for impossible redirect by Jakob Warkotsch
 * - REST: Add ADR about introducing Property use cases by sihe
 * - Remove unused return value from WikibasePingback::markSent by Lucas Werkmeister
 * - REST: Respond 404 if the property does not exist by Muhammad Jaziraly
 * - REST: Apply middlewares to GetPropertyRouteHandler by Jakob Warkotsch
 * - REST: Add `Etag` and `Last-Modified` to response header by Muhammad Jaziraly
 * - REST: Add GetPropertyRouteHandler by Jakob Warkotsch
 * - Use SelectQueryBuilder in DatabaseTermsCollisionDetector by Lucas Werkmeister
 * - Remove unneeded duplicate null check by Lucas Werkmeister
 * - Use SelectQueryBuilder in two repo classes by Lucas Werkmeister
 * - REST: ADR about @throws annotations and exceptions by sihe
 * - Remove unneeded cast in EntityChangeSelectQueryBuilder by Lucas Werkmeister
 * - Replace exception class in LanguageWithConversion  by Lucas Werkmeister
 * - Remove use of dummy Database::upsert return value by Aaron Schulz
 * - Revert "Restore targets declarations temporarily"  by Hoo man

WikibaseLexeme

 * - Remove tests relying on foreign entity IDs  by Jakob Warkotsch
 * - Remove tests relying on foreign entity IDs  by Lucas Werkmeister

WikibaseMediaInfo

 * - Remove tests relying on foreign entity IDs  by Lucas Werkmeister

WikibaseQualityConstraints

 * - Remove targets definitions by Michael Große
 * - Replace deprecated MWException by Daimona Eaytoy

WikidataPageBanner

 * - Initial cleanup of CSS by Derk-Jan Hartman

WikiEditor

 * - Revert "Remove hacks that avoid duplicate event logging with MobileFrontend" by DLynch

wikihiero

 * - Remove bogus `@throws MWException` by Daimona Eaytoy
 * - Remove unnecessary vendor prefix selectors by Ed Sanders
 * - Always use the strict equality flag when using in_array by Ed Sanders

WikiLambda

 * - Replace deprecated MWException by Daimona Eaytoy
 * - OrchestratorRequest: Give a better UserAgent string with our version by James D. Forrester
 * - tests: Test creations of Implementations in ZObjectAuthorization by James D. Forrester
 * - tests: Test creations of Functions in ZObjectAuthorization by James D. Forrester
 * - Add tasks for various TODOs and FIXMEs by James D. Forrester
 * - Restrict creating Types to users with a special right by James D. Forrester
 * - tests: Test creations of Types in ZObjectAuthorization by James D. Forrester
 * - Replace getZkeys with getStoredObject by gengh
 * - Replace old getZkeyLabels method with getLabel by gengh
 * - e2e: Add tests for "Create implementation" by nik-55
 * - e2e: Update Evaluate Function by nik-55
 * - Instantiate sample Metrics Platform instrument(s) by dmartin
 * - ZObjectSecondaryDataUpdate: Update phan failure, now fixed? by James D. Forrester
 * - Refactor page-rendering-related Hook to a PageRenderingHandler by James D. Forrester
 * - Refactor page-editing-related Hooks to a PageEditingHandler by James D. Forrester
 * - Hooks: Drop onBeforePageDisplay and config flag, not hooked up and inoperative by James D. Forrester

WikiLove

 * - Use singular they in wikilove-anon-warning by Dringsim

WikimediaEditorTasks

 * - Replace deprecated MWException by Daimona Eaytoy

WikimediaEvents

 * - Fix: Validation errors for status_code in Probenet reports by Jameel Kaisar

WikimediaIncubator

 * - Custom title handling   by Jon Harald Søby
 * - Hooks: Change onPageContentLanguage to not use $userLang by Timo Tijhof

WikimediaMaintenance

 * - Prevent WikimediaMaintenance from setting preferences for temporary accounts by tsepothoabala
 * - Remove bogus `@throws MWException` by Daimona Eaytoy

WikimediaMessages

 * - Fix typo by Jon Harald Søby
 * - prevent temp users from seeing RCFilters guided tours by AnaïsGueyte
 * - Change "saving" to "publishing" by Amir E. Aharoni
 * - Update footer links to foundation.wikimedia.org. by varnent

Wikisource

 * - Replace deprecated MWException by Daimona Eaytoy

Wikistories

 * - Remove unused analyzer from StoryContentHandler by Stephane Bisson
 * - Treating repeated text on wikistories by Huei Tan
 * - Remove unneded `@throws MWException` by Daimona Eaytoy
 * - Notify story watchers of article changes by Stephane Bisson
 * - Only show discovery module for action 'view' by Stephane Bisson

MinervaNeue

 * - Fixes: Sandbox link should not show in main menu by Jon Robson
 * - Move to exclude list rather than include list  by Jon Robson
 * - Revert "Add custom styles for temporary user links" by Jdlrobson
 * - Create HookRunner class and the hook handler interface by Umherirrender
 * - Replace deprecated MWException  by Daimona Eaytoy

Nostalgia

 * - Remove unneded `@throws MWException` by Daimona Eaytoy

Vector

 * - Use Codex for typeahead search styles by bwang
 * - Use Codex for button styles, start transitioning icons to use Codex icon mixins by Jon Robson
 * - Move star icon to render blocking module by Jon Robson
 * - SkinVector22: Avoid double-escaping on language selector label by Func
 * - languageButton: Use click method instead of dispatchEvent by Func
 * - styles: Remove local var covered by mediawiki.skin.variables.less by Volker E

WikimediaApiPortal

 * - Update license to CC BY SA 4.0 by EpicpPupper

VisualEditor/VisualEditor

 * - Reuse overlapping rect logic from ve.ce.FocusableNode by Ed Sanders
 * - Create a tool to launch help completions from the toolbar by Ed Sanders
 * - CommandHelpDialogTool: Use 'keyboard' icon instead of 'help' by Ed Sanders
 * - Mark Target.static.actionGroups as deprecated by Ed Sanders

No changes

 * ActiveAbstract
 * ArticleCreationWorkflow
 * Babel
 * BetaFeatures
 * BounceHandler
 * Calendar
 * CampaignEvents
 * Campaigns
 * Capiunto
 * CategoryTree
 * CentralNotice
 * CharInsert
 * CiteThisPage
 * Citoid
 * CologneBlue
 * CreditsSource
 * Dashiki
 * Disambiguator
 * DismissableSiteNotice
 * DoubleWiki
 * Elastica
 * EventLogging
 * EventStreamConfig
 * ExtensionDistributor
 * FeaturedFeeds
 * FileExporter
 * FileImporter
 * FundraiserLandingPage
 * FundraisingTranslateWorkflow
 * GeoCrumbs
 * GlobalCssJs
 * GlobalPreferences
 * GlobalUsage
 * GlobalUserPage
 * GlobalWatchlist
 * GoogleNewsSitemap
 * Graph
 * GuidedTour
 * IPInfo
 * ImageMap
 * InputBox
 * Insider
 * Interwiki
 * InterwikiSorting
 * Josa
 * LabeledSectionTransclusion
 * LandingCheck
 * LdapAuthentication
 * Linter
 * Listings
 * MapSources
 * MassMessage
 * MobileApp
 * Modern
 * MonoBook
 * NavigationTiming
 * NearbyPages
 * NewUserMessage
 * Nuke
 * OATHAuth
 * OAuthRateLimiter
 * OpenStackManager
 * PageAssessments
 * PageImages
 * PageNotice
 * PageViewInfo
 * PagedTiffHandler
 * ParserFunctions
 * PdfHandler
 * Phonos
 * Poem
 * QuickSurveys
 * Quiz
 * RSS
 * ReadingLists
 * RelatedArticles
 * SandboxLink
 * SearchExtraNS
 * ShortUrl
 * SimilarEditors
 * SiteMatrix
 * SpamBlacklist
 * StopForumSpam
 * SubpageSortkey
 * TemplateSandbox
 * TemplateStyles
 * TemplateWizard
 * TextExtracts
 * TheWikipediaLibrary
 * Timeless
 * TocTree
 * TorBlock
 * TranslationNotifications
 * TrustedXFF
 * UploadsLink
 * UrlShortener
 * WebAuthn
 * WikibaseCirrusSearch
 * WikibaseLexemeCirrusSearch
 * Wikidata.org
 * WikimediaApiPortalOAuth
 * WikimediaBadges
 * XAnalytics
 * cldr
 * timeline

Total changes
385 Changes in 94 repos by 89 authors