MediaWiki 1.35/wmf.34/Changelog

Core changes

 * - Branch commit for wmf/1.35.0-wmf.34 by trainbranchbot
 * - Deprecate $wgAutoloadAttemptLowercase and set default to false by Reedy
 * - Fix a plethora of class and function call case mismatches by Reedy
 * - REST Handler: add unit tests for base class by daniel
 * - Broaden parameter types in BlockIpCompleteHook by Tim Starling
 * - [registration] Remove type of string from Hooks in extension.schema.v1.json by Reedy
 * - Fix version number not showing in NoLocalSettings.php by Bartosz Dziewoński
 * - filerepo: make ForeignDBRepo::getSharedKey use the DB domain ID for consistency by Aaron Schulz
 * - Rename patch-l10ncache-lc_lang-35.sql to patch-l10n_cache-lc_lang-35.sql by DannyS712
 * - Fix param type for Status::msgInLang by Umherirrender
 * - Relax symfony/yaml to allow ~3.4|~4.5|~5.0 by Daimona Eaytoy
 * - SpecialChangeContentModel: Only call spam checks on non-empty reasons by DannyS712
 * - linker: Move Linker::normaliseSpecialPage to LinkRenderer class by Derick A
 * - ParserOptionsTest: Rename non-global variable `$wgLang` by DannyS712
 * - mime: Document null return from MimeAnalyzer::improveTypeFromExtension by Ori Livneh
 * - Fix return type for SpecialBlock::validateTargetField by Umherirrender
 * - Xml dumps should not die when the page redirect target cannot be determined by Ariel T. Glenn
 * - site: Update @since tag from 1.20 to 1.21 for $wgSiteTypes by Yuki Shira
 * - filerepo: bump LocalFile::VERSION following 88e17d3f7c78 by Aaron Schulz
 * - filerepo: make LocalRepo::getSharedCacheKey use makeGlobalKey by Aaron Schulz
 * - skins: Use local getters rather than globals or static functions by mainframe98
 * - docs - minor cleanup, including fixing markdown syntax by DannyS712
 * - docs/README: Update link to php documentation on doc.wikimedia.org by DannyS712
 * - VueComponentParser: Add test case for self-closing tags by Roan Kattouw
 * - mime: Add test for MimeAnalyzer::addExtra{Types,Info} by Ori Livneh
 * - installer: Fix failure of web installer CSS due to main stash by Tim Starling
 * - Ajax watch: Move JS config var to packageFiles by suecarmol
 * - mediawiki.util: Add mw.util.parseImageUrl by Gergő Tisza
 * - Remove unused CSS styles from Parsoid's stylesheet by Subramanya Sastry
 * - upload: Fix incorrect handling of missing file extension in UploadStash by Ori Livneh
 * - filerepo: use makeGlobalKey in ForiegnDBViaLBRepo::getSharedCacheKey by Aaron Schulz
 * - Normalise length of language fields to varbinary(35) by Reedy
 * - ExtensionRegistry: Fix doc typos by Reedy
 * - Make images on Special:NewFiles natively lazy-loaded by gilles
 * - phpunit: Move "Logs generated by test" from middle to end of result by Timo Tijhof
 * - skins: Replace and/or improve usage of some (deprecated) methods by Derick A
 * - Fix typo: 'avalaible' → 'available' by MarcoAurelio
 * - docs: disable GENERATE_LATEX by Antoine Musso
 * - maintenance/BlockUsers: Add reblocking and BlockIpComplete hook by Bryan Davis
 * - http: Document when HTTP timeout settings were introduced by Timo Tijhof
 * - title: Mark Title::getPrefixedDBKey and ::getPrefixedText as tainted by Daimona Eaytoy
 * - Fix typo 'desciption' by MarcoAurelio
 * - RELEASE-NOTES: Add entry for explicit visibility modifiers by Reedy
 * - Selenium: Update to WebdriverIO v6 by vidhi-mody
 * - Make MessageCacheTest::makePage private, return RevisionRecord  by DannyS712
 * - Hard deprecate Revision::insertOn by DannyS712
 * - mediawiki.page.ready: add checkbox hack JavaScript  by Stephen Niedzielski
 * - Fix various MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment by Reedy
 * - Respect configured default HTTP timeouts, and introduce max timeouts by Tim Starling
 * - skins: Followup on I43da8e0fce878560bb692074578 by Derick A
 * - Move Search endpoints into core routes by Nikki Nikkhoui
 * - Revert "Selenium: Use wdio-video-reporter to record videos of test run" by Zfilipin
 * - benchmarks: Remove bench_wfIsWindows.php by Timo Tijhof
 * - Narrow MediaWiki.Commenting.FunctionComment.WrongStyle by Reedy
 * - resources: Upgrade oojs from v3.0.1 to v5.0.0 by James D. Forrester
 * - Update OOUI to v0.39.0  by James D. Forrester
 * - Remove MediaWiki.Commenting.IllegalSingleLineComment.* exclusions by Reedy
 * - Filter out expired items from watcher counts by hmonroy
 * - Rename NS_USER(_TALK) on jv language to 'Naraguna' by RhinosF1
 * - Add namespace localisations for Tigrinya by RhinosF1
 * - mime: Convert built-in MIME mappings to PHP arrays by Ori Livneh
 * - objectcache: dependency inject LoadBalancer into SqlBagOStuff by Aaron Schulz
 * - Final Squiz.Scope.MethodScope.Missing commit by Reedy
 * - Fix more of includes/filerepo/ Squiz.Scope.MethodScope.Missing by Reedy
 * - content: Change log channel to 'ContentHandler' by Timo Tijhof
 * - Remove more IE6 and IE7 compatibility and notes by DannyS712
 * - exception: cleanup "caught_by" and use Throwable in more places by Aaron Schulz
 * - resourceloader: Make DepStore write lock specific to the current wiki  by Timo Tijhof
 * - SkinTemplate: Remove some tiny private methods by DannyS712
 * - phpunit: Acknowledge known dberror from SpecialPageFatalTest by Timo Tijhof
 * - Fix the rest of includes/specials/ Squiz.Scope.MethodScope.Missing by Reedy
 * - Fix some includes/specials/ Squiz.Scope.MethodScope.Missing by Reedy
 * - Fix includes/media/ Squiz.Scope.MethodScope.Missing by Reedy
 * - Fix more Squiz.Scope.MethodScope.Missing by Reedy
 * - Fix more Squiz.Scope.MethodScope.Missing by Reedy
 * - Fix more Squiz.Scope.MethodScope.Missing by Reedy
 * - Fix more Squiz.Scope.MethodScope.Missing by Reedy
 * - resourceloader: make SqlModuleDependencyStore avoid issuing no-op upserts by Aaron Schulz
 * - resourceloader: make SqlModuleDependencyStore use CONN_TRX_AUTO by Aaron Schulz
 * - Move known attributes when updating to manifest_version 2 by Reedy
 * - RELEASE-NOTES-1.35: Re-organise Parser stuff into single blocks (again) by James D. Forrester
 * - moment: Hook the tl-ph upstream profile to tl; we don't support tl-ph by James D. Forrester
 * - Use same WatchedItemStore object everywhere in SpecialWatchlist by Sam Wilson
 * - Add rawTables, getQueryInfo and queryInfo to SelectQueryBuilder by Tim Starling
 * - In ApiQueryBase, use a SelectQueryBuilder to store query information by Tim Starling
 * - Use a SelectQueryBuilder in SpecialWhatLinksHere by Tim Starling
 * - Extension schema updates for HookContainer by Tim Starling
 * - Fix testAutomaticSqlGeneration: don't write to the source tree by Tim Starling
 * - Fix recent breakage of ApiStashEditTest by Tim Starling
 * - Rename SkinAddFooterLinks to SkinAddFooterLinksHook and add HookRunner method by Tim Starling
 * - Add HookRunner method for new hook RevisionFromEditComplete by Tim Starling
 * - Call BitmapMetadataHandler functions statically by Reedy
 * - Narrow Squiz.Scope.MethodScope.Missing to match current reality by Reedy
 * - Fix Squiz.Scope.MethodScope.Missing for Title.php by Reedy
 * - Update PostgreSQL supported version in docs/database/postgres.txt by Reedy
 * - Remove rotten docs/php-memcached docs by Reedy
 * - Fix even more Squiz.Scope.MethodScope.Missing by Reedy
 * - Fix some more Squiz.Scope.MethodScope.Missing by Reedy
 * - Fix some Squiz.Scope.MethodScope.Missing by Reedy
 * - Fix some Squiz.Scope.MethodScope.Missing by Reedy
 * - Fix languages/ PSR12.Properties.ConstantVisibility.NotFound by Reedy
 * - Fix more libs PSR12.Properties.ConstantVisibility.NotFound by Reedy
 * - Fix more libs PSR12.Properties.ConstantVisibility.NotFound by Reedy
 * - Documentation fixes for upcoming ESLint config change by Ed Sanders
 * - resourceloader: Cleanup CSSMin by Reedy
 * - Add test to compare generated sql with the abstract schema by Amir Sarabadani
 * - Remove use of Revision objects in SpecialNewpages::feedItemDesc  by DannyS712
 * - ImportableOldRevisionImporter: Remove use of Revision::insertOn by DannyS712
 * - RollbackAction: Reduce uses of Revision objects  by DannyS712
 * - Fix includes/Storage PSR12.Properties.ConstantVisibility.NotFound by Reedy
 * - Fix tests/ PSR12.Properties.ConstantVisibility.NotFound by Reedy
 * - Sync descriptions from extension.schema.v2.json to v1.json by Reedy
 * - skins: Allow $wgValidSkinNames to take ObjectFactory spec by Reedy
 * - Fix some includes/libs PSR12.Properties.ConstantVisibility.NotFound by Reedy
 * - Fix even more PSR12.Properties.ConstantVisibility.NotFound by Reedy
 * - Fix even more PSR12.Properties.ConstantVisibility.NotFound by Reedy
 * - Fix even more PSR12.Properties.ConstantVisibility.NotFound by Reedy
 * - Fix even more PSR12.Properties.ConstantVisibility.NotFound by Reedy
 * - MimeAnalyzer: Remove temporary variable by Reedy
 * - Fix numerous Squiz.Scope.MethodScope.Missing by Reedy
 * - Fix PSR12.Properties.ConstantVisibility.NotFound in FormOptions.php by Reedy
 * - Add RELEASE-NOTES for extension.json SearchMappings by Reedy
 * - Drop User::checkTemporaryPassword by Ammar Abdulhamid
 * - Add Unit tests for SpamChecker service by DannyS712
 * - SpecialBlock: Fix flag set on block if $wgBlockAllowsUTEdit is false by Thalia
 * - Use new TalkPageNotificationManager by Clara Andrew-Wani
 * - mime: 'mimetoExt' => 'mimeToExt' by Ori Livneh
 * - Prohibit empty blocks: fix for false `$wgBlockAllowsUTEdit` by DannyS712
 * - Remove double space from messages by Amir Aharoni
 * - Remove unused code from jquery.confirmable.js by Thiemo Kreuz
 * - In SwiftFileBackend allow HTTP timeouts to be set in the constructor by Tim Starling
 * - specialpage: `fieldInfoToFormDescriptor` is not a static method by Derick A
 * - Fix more PSR12.Properties.ConstantVisibility.NotFound by Reedy
 * - Fix more PSR12.Properties.ConstantVisibility.NotFound by Reedy
 * - eslint: Code style fixes for upcoming config change by Ed Sanders
 * - TalkPageNotificationManager: Undeprecate passing null to setUserHasNewMessages by Clara Andrew-Wani
 * - auth: Add helpful type hint to AuthManager by Thiemo Kreuz
 * - Selenium: Use wdio-video-reporter to record videos of test run by AlQaholic007
 * - Fix inverted assertions in ContentSecurityPolicyTest by Thiemo Kreuz
 * - Use " not ' for example json by Reedy
 * - editpage: Fix misleading "OOUI\FieldLayout" type hint by Thiemo Kreuz
 * - Remove auto-generated "created by PHPStorm" comment by Thiemo Kreuz
 * - Remove unused var initialization from ContentSecurityPolicy by Thiemo Kreuz
 * - Typehint onLoginFormValidErrorMessages param as array by Lucas Werkmeister
 * - SkinTemplate: Set footer keys on template for full compatibility by jdlrobson
 * - SkinTemplate: Allow modification of the footer directly by jdlrobson
 * - Replace use of old $wgVersion constant with MW_VERSION by James D. Forrester
 * - OutputPage: fix @since version by MusikAnimal
 * - Add methods to check if a page is temporarily watched by MusikAnimal
 * - Add MergeHistoryFactory interface, implemented by PageCommandFactory by DannyS712
 * - AbstractBlock: Fix documentation for parseTarget by Thalia
 * - mime: Fix whitespace parsing of 'mime.info' file by Ori Livneh
 * - Make formatLinksInComment understand and link Text[[Link by WMDE-Fisch
 * - Introduce ProtectedHookAccessorTrait and pilot the Hooks::run migration by Tim Starling
 * - Add HookRegistry by Tim Starling
 * - Rest: Add Handler::postInitSetup by Tim Starling
 * - registration: Fix upgradeExtensionJsonSchema to remove _merge_strategy by Kunal Mehta
 * - resources: Upgrade moment from 2.24.0 to 2.25.2; hook in gom-deva & zh-mo by James D. Forrester
 * - Fix numerous PSR12.Properties.ConstantVisibility.NotFound by Reedy
 * - Add tests for RevisionList/RevisionItem classes by DannyS712
 * - Add HookRunner methods for new SearchHandler hooks by Tim Starling
 * - BaseTemplate: Deprecate getFooterIcons by jdlrobson
 * - HookContainer Integration Test by Nikki Nikkhoui
 * - Replace `NewRevisionFromEditComplete` with `RevisionFromEditComplete` by DannyS712
 * - Add Seediq (trv) to Names.php by Amir Aharoni
 * - TextConflictHelper: Add ARIA label to `wpTextbox1`  by Volker E
 * - installer: Restore no-op log message in doWatchlistUpdate by Tim Starling
 * - Prohibit empty blocks by DannyS712
 * - Fixup some SELECT * usages in sqlite schema patches by Reedy
 * - Updating psy/psysh (v0.10.3 => v0.10.4) by Reedy
 * - Add another Hebrew and Yiddish alias for by Amir Aharoni
 * - Replace toast with OOUI popup on watchlist message by suecarmol
 * - Fix impedance mismatch with Parser::getRevisionRecordObject by C. Scott Ananian
 * - editpage: Fix misplaced return value in TextConflictHelper by Thiemo Kreuz
 * - Revision: Ensure getRevisionByTitle works for foreign wikis by Máté Szabó
 * - Support direct editing of tags from Special:Tags by Ammar Abdulhamid
 * - Move french space armoring after doBlockLevels by Arlo Breault
 * - Use private instead of protected in CommentStore by Thiemo Kreuz
 * - Fix native sty name from cебертатар to себертатар by Reedy
 * - Disable parsing of prefs-memberingroups message by Ammar Abdulhamid

Vendor

 * - Bump Parsoid to 0.12.0-a14 by Subramanya Sastry
 * - symfony/polyfill-php73 1.15.0 => 1.17.0 by Reedy
 * - Updating psy/psysh (v0.10.3 => v0.10.4) by Reedy
 * - Update symfony/* from 5.0.7 -> 5.0.8 and 4.4.7 -> 4.4.8 by Reedy
 * - Updating firebase/php-jwt (v5.1.0 => v5.2.0) by Reedy
 * - Update OOUI to v0.39.0 by James D. Forrester
 * - Allow elasticsearch's unpinned dependency on react/promises to upgrade by James D. Forrester

3D
No changes for 3D

AbuseFilter

 * - Selenium: Update to WebdriverIO v5 by vidhi-mody
 * - Make the form on Special:AbuseLog collapsible by Daimona Eaytoy
 * - Replace _merge_strategy with merge_strategy by Reedy

ActiveAbstract
No changes for ActiveAbstract

AdvancedSearch

 * - Describe $wgAdvancedSearchDeepCatEnabled in docs/settings.md by Swayam Samyak Debasis
 * - Fix case in message to match others by pcoombe
 * - Update MediaWiki core dependency to 1.35 by Thiemo Kreuz (WMDE)
 * - Fix PSR12.Properties.ConstantVisibility.NotFound by DannyS712
 * - Let screen readers announce expanded/collapsed state of panes by bkudiess-msft

AntiSpoof
No changes for AntiSpoof

ApiFeatureUsage

 * - Do not pass Message to HtmlForm::setWrapperLegend by Umherirrender

ArticleCreationWorkflow

 * - Fix PSR12.Properties.ConstantVisibility.NotFound by DannyS712

ArticlePlaceholder

 * - Convert to manifest_version 2 by Reedy

Babel

 * - Extend babel.babel_lang to varbinary(35) by Reedy
 * - Remove _merge_strategy from value by Reedy

BetaFeatures

 * - Fix PSR12.Properties.ConstantVisibility.NotFound by DannyS712
 * - Fix GENDER syntax by Amir Aharoni
 * - Bundle model to client via packageFiles, rather than polluting all pages by James D. Forrester
 * - Visually signal that the auto-enrolled featured are set that way  by James D. Forrester

BounceHandler
No changes for BounceHandler

Calendar
No changes for Calendar

Campaigns
No changes for Campaigns

Capiunto
No changes for Capiunto

CategoryTree

 * - Remove _merge_strategy from value by Reedy

CentralAuth

 * - Fix class/function case mismatch by Reedy

CentralNotice
No changes for CentralNotice

CharInsert

 * - Namespace extension by Reedy

CheckUser

 * - Alias the column names for the result  by David Barratt
 * - Put tests into separate test namespace by Thalia
 * - TimelineRowFormatter: Format rows with correct separators by Thalia
 * - Replace Title with TitleValue and SpecialPage with SpecialPageFactory by David Barratt
 * - Use cuc_user instead of cuc_user_text to utilize existing index by Huji Lee
 * - Make whitespace consistent in service buildUserConds methods by Thalia
 * - TimelineRowFormatter: Show or redact the comment for the change by Thalia
 * - Updating firebase/php-jwt (v5.1.0 => v5.2.0) by Reedy
 * - Lower default limit for running checkuser via API to 500 by DannyS712

CirrusSearch

 * - Relax symfony/yaml to ~5.0.5 by Reedy
 * - Use HttpRequestFactory::createMultiClient by Tim Starling
 * - Mock MultiHttpClient in unit tests by David Causse
 * - Fix optional parameter before required by Reedy
 * - Replace use of old $wgVersion global with MW_VERSION constant by James D. Forrester
 * - Remove maintenance script symlinks by Reedy

Cite
No changes for Cite

CiteThisPage
No changes for CiteThisPage

Citoid
No changes for Citoid

cldr

 * - Fix PSR12.Properties.ConstantVisibility.NotFound by Reedy

CodeEditor
No changes for CodeEditor

CodeMirror

 * - Move CodeMirrorPluginModules from config to attributes by Reedy
 * - Convert to manifest_version 2 by Reedy
 * - Update VisualEditor styles for Vector changes by Bartosz Dziewoński

CodeReview

 * - Fix PSR12.Properties.ConstantVisibility.NotFound by Reedy

Cognate
No changes for Cognate

CollaborationKit

 * - Remove _merge_strategy from value by Reedy

Collection

 * - Use HttpRequestFactory::createMultiClient by Tim Starling
 * - SpecialRenderBook: Use UnlistedSpecialPage by DannyS712

CommonsMetadata

 * - Fix PSR12.Properties.ConstantVisibility.NotFound by Reedy
 * - Add config documentation to extension.json by Gergő Tisza

ConfirmEdit

 * - Add $wgHCaptchaProxy by Reedy

CongressLookup
No changes for CongressLookup

ContactPage

 * - Parse messages in string context by Umherirrender

ContentTranslation

 * - Use wikimedia.ui instead of mediawiki.ui style guide by Santhosh Thottingal
 * - Fix lint error: Prefer parentNode to parentElement by Santhosh Thottingal
 * - Updating firebase/php-jwt (v5.1.0 => v5.2.0) by Reedy
 * - Use HttpRequestFactory::createMultiClient by Tim Starling
 * - MT Abuse: Enforce min length consideration for sections with excluded children by Nik G
 * - Selenium: Update to WebdriverIO v6 by vidhi-mody
 * - Upgrade vue-banana-i18n to 1.1.0 by Santhosh Thottingal
 * - Dashboard: Open translation view when clicked on published or draft items by Santhosh Thottingal
 * - Upgrade vue-test-utils to version 1.0.2 by Santhosh Thottingal
 * - Refactor: Use model classes    by Santhosh Thottingal
 * - Section selector - basic version    by Santhosh Thottingal
 * - Revert "Selenium: Record videos of all tests" by Zfilipin
 * - styles: Fix line-height for button labels inside dashboard, to correctly align them with icons by Nik G
 * - Selenium: Record videos of all tests by Željko Filipin
 * - Selenium: Update to WebdriverIO v5 by Željko Filipin
 * - styles: Fix vertical align of context item titles inside cx tools, to align correctly with icons by Nik G
 * - Replace use of old $wgVersion constant with MW_VERSION by James D. Forrester
 * - Try to avoid errors in enableCXBetaFeature by Niklas Laxström
 * - Dashboard: Fix fallback image size for articles by ngkountas
 * - Avoid PHP Warning: min: Array must contain at least one element by Niklas Laxström
 * - ApiQueryContentTranslation: avoid fatals on getName by Niklas Laxström
 * - Add documentation for the MT abuse calculation algorithm by Santhosh Thottingal

ContributionTracking

 * - Update email address to donate@wikimedia.org by Margaret Epps

CreditsSource
No changes for CreditsSource

Dashiki
No changes for Dashiki

Disambiguator
No changes for Disambiguator

DiscussionTools

 * - Fix failing test case for PHP modifier by Bartosz Dziewoński
 * - Remove empty lines in visual mode too by Ed Sanders
 * - Initialize tab state to avoid flicker by Ed Sanders
 * - Use the faster childIndexOf approach in JS too by Bartosz Dziewoński
 * - Insert replies outside of decorative comment frames by Bartosz Dziewoński
 * - Create ImmutableRange class in PHP by Ed Sanders
 * - ReplyWidget: Avoid buttons shifting when switching to source by Bartosz Dziewoński
 * - ReplyWidget: Use interface dir for UI by Ed Sanders
 * - Visual: Use createModelFromDom when setting document by Ed Sanders
 * - Don't allow users to switch to a mode they are already in by Ed Sanders
 * - Avoid deprecated User::getOption by Bartosz Dziewoński
 * - Add autosave support to visual mode by Ed Sanders
 * - Create a user preference to store visual/source mode by Ed Sanders
 * - Prefix '@' to username auto-complete output by Ed Sanders
 * - Add the test for getAuthors in JS too by Bartosz Dziewoński
 * - Reduce duplication between PHP parser and data gen for JS parser by Bartosz Dziewoński
 * - Stop printing console warnings by Bartosz Dziewoński
 * - Add test case for unwrapParsoidSections by Bartosz Dziewoński
 * - Spell check pass by Ed Sanders
 * - Move /cases and /data up to /tests by Ed Sanders
 * - Parser tweaks by Bartosz Dziewoński
 * - Parser.php: Add tests for getTranscludedFrom by Ed Sanders
 * - Rename removeListItem to removeAddedListItem and remove in PHP by Ed Sanders
 * - ReplyWidget: Move all events bind to setup by Ed Sanders
 * - PHP: More missing typehints by Ed Sanders
 * - Modifier: Pass document to createWikitext by Ed Sanders
 * - Add leading \ to covers by Reedy
 * - Don't call non static functions statically by Reedy
 * - Fix return type of callable by Reedy
 * - Add missing use MWException by Reedy
 * - Replace stObject with stdClass by Reedy
 * - Follow-up b78fb3f4: Make sure we're using a MW User by James D. Forrester
 * - PHP: Add missing typehints by Ed Sanders
 * - Move all PHP to the MediaWiki\Extension\DiscussionTools namespace by Ed Sanders
 * - Create a Utils class in PHP by Ed Sanders
 * - Port modifier.js to PHP by Ed Sanders
 * - tests: Fix comparing PHP and JS ranges by Bartosz Dziewoński
 * - tests: Fix failures due to CDATA handling in PHP by Bartosz Dziewoński
 * - tests: Fix different whitespace trimming in PHP and JS by Bartosz Dziewoński
 * - tests: Fix computing ranges in Parsoid documents by Bartosz Dziewoński
 * - tests: Check ranges in PHP parser tests by Bartosz Dziewoński
 * - Parser: Use Element instead of Node when appropriate by Ed Sanders
 * - Fix performance of DiscussionToolsCommentParser::childIndexOf by Bartosz Dziewoński
 * - PHP tests: Move some test utils to a parent class by Ed Sanders
 * - Add comment tests to PHP by Ed Sanders
 * - The Great Parser JS to PHP port of 2020!* by Roan Kattouw
 * - Give username completion a min width of 10em by Ed Sanders
 * - Show no remote users when input is empty by Ed Sanders
 * - Show real error message when an exception is thrown by Bartosz Dziewoński

DismissableSiteNotice
No changes for DismissableSiteNotice

DonationInterface

 * - Don't clear sole submethod on validate fail by Elliott Eggleston
 * - Remove _merge_strategy from value by Reedy
 * - Add missing extension reqs to composer.json by Elliott Eggleston

DoubleWiki

 * - Convert $wgMemc use to WANObjectCache by Aaron Schulz

DynamicSidebar
No changes for DynamicSidebar

Echo

 * - Change pref header to specify it's about page link notifications by Kosta Harlan
 * - Use HttpRequestFactory::createMultiClient by Tim Starling
 * - Add `aria-label` to SpecialHelpMenuWidget by Volker E
 * - Use new TalkPageNotificationManager by Clara Andrew-Wani
 * - Add page linked event title muted list by Kosta Harlan

Elastica

 * - Fix PSR12.Properties.ConstantVisibility.NotFound by DannyS712

ElectronPdfService

 * - Selenium: Update to WebdriverIO v5 by vidhi-mody

EntitySchema
No changes for EntitySchema

EventBus

 * - Use HttpRequestFactory::createMultiClient by Tim Starling
 * - Converted EventBus to use dependency injection by Petr Pchelko

EventLogging

 * - wgEventLoggingSchemas should override extension attributes  by Andrew Otto

EventStreamConfig

 * - Fix PSR12.Properties.ConstantVisibility.NotFound by DannyS712

ExtensionDistributor

 * - Fix PSR12.Properties.ConstantVisibility.NotFound by Reedy

ExternalGuidance
No changes for ExternalGuidance

FeaturedFeeds
No changes for FeaturedFeeds

FileExporter
No changes for FileExporter

FileImporter

 * - Update deprecated constant by Thiemo Kreuz
 * - Add missing whitespace between (i) and "category encouragement" by Thiemo Kreuz
 * - Fix incomplete carriage return/newline normalization by Thiemo Kreuz
 * - Add @license tags to all classes by Thiemo Kreuz
 * - Improve edittoken mismatch error message by Ammar Abdulhamid
 * - i18n: Fix MediaWiki.org link by Yuki Shira
 * - Explicitly call Message::parse instead of string cast by Umherirrender
 * - Selenium: Update to WebdriverIO v6 by vidhi-mody
 * - Always send application log messages in English by Ammar Abdulhamid
 * - Add visibility keywords to all constants by Thiemo Kreuz
 * - Clean up hook handler code by Thiemo Kreuz
 * - Add PHPDoc for ever public method by WMDE-Fisch
 * - Simplify ValidatingUploadBase::validateTitle by Thiemo Kreuz
 * - FileImporter: Localize error messages by Ammar Abdulhamid
 * - Submit the form when hitting return in the summary by WMDE-Fisch
 * - Add missing and improve incomplete @throws documentation by Thiemo Kreuz

FlaggedRevs

 * - Drop back-compat. checks for pre-1.30; this repo requires 1.35+ by James D. Forrester

Flow

 * - Use HttpRequestFactory::createMultiClient by Tim Starling
 * - Fix optional parameter before required by Reedy
 * - Replace use of old $wgVersion global with MW_VERSION constant by James D. Forrester
 * - Fix typo: 'the-the'->'the' by Ed Sanders
 * - Unbreak loading on mobile when VE is not installed by Roan Kattouw
 * - Amend opacity comment to latest WikimediaUI Base equivalent by Volker E

FundraiserLandingPage

 * - Remove _merge_strategy from value by Reedy
 * - Convert to manifest_version 2 by Reedy

FundraisingTranslateWorkflow
No changes for FundraisingTranslateWorkflow

Gadgets

 * - Fix PSR12.Properties.ConstantVisibility.NotFound by Reedy
 * - Add namespaces for Tigrinya by RhinosF1
 * - Convert to manifest_version 2 by Reedy

GeoCrumbs
No changes for GeoCrumbs

GeoData

 * - Add Special:MyLanguage for better user experience by Yuki Shira

GettingStarted

 * - Convert to manifest_version 2 by Reedy

GlobalBlocking

 * - Fix yoda conditional by Reedy

GlobalCssJs

 * - Convert to manifest_version 2 by Reedy

GlobalPreferences
No changes for GlobalPreferences

GlobalUsage

 * - Use "description" in extension.json by Kunal Mehta

GlobalUserPage

 * - Set 'noindex' for global user pages to avoid indexing by search engines by Kunal Mehta

GoogleNewsSitemap

 * - Fix PSR12.Properties.ConstantVisibility.NotFound by Reedy

Graph

 * - Adding spinner to improve client side loading exp by seddon
 * - Convert to manifest_version 2 by Reedy

GrowthExperiments

 * - Help panel tips: Use names instead of numbers for steps  by Kosta Harlan
 * - Help panel tips: Fix parameter number in i18n by Kosta Harlan
 * - Help panel: Add quick start tips to guidance  by Kosta Harlan
 * - Parse messages in string context by Umherirrender
 * - Instrumentation for the post-edit dialog  by Gergő Tisza
 * - Display post-edit dialog widget by Gergő Tisza
 * - Make task card images repeat horizontally by Gergő Tisza
 * - Track suggested edit sessions by Gergő Tisza
 * - Instrumentation schema changes  by Gergő Tisza
 * - Post-edit panel: link the whole task card, not just the title by Gergő Tisza
 * - Simplify GrowthTasksApi Wikidata description logic by Gergő Tisza
 * - Fix fragment encoding in post-edit panel by Gergő Tisza
 * - Add alias for Special:ClaimMentee in French (fr) by Roan Kattouw
 * - Increase help panel z-index by Gergő Tisza
 * - Help panel: Switch from suggested-edits to home panel when editor opens by Roan Kattouw
 * - Help panel: Animate guidance panel in from the bottom by Roan Kattouw
 * - Help panel: Open automatically in guidance mode by Roan Kattouw
 * - Help panel: Add back border-radius to help panel OOUI dialog by Kosta Harlan
 * - Add post-edit dialog widget by Gergő Tisza
 * - Help panel: Animate transitions between panels by Roan Kattouw
 * - Help panel: Remove obsolete ask-help footer height calulation by Roan Kattouw
 * - Remove broken i18n/fa strings by Gergő Tisza
 * - Make Mentorship::getMentor return either bool or User by Martin Urbanec
 * - Help panel: Clean up navigation logging by Roan Kattouw

GuidedTour

 * - Fix PSR12.Properties.ConstantVisibility.NotFound by DannyS712
 * - Convert to manifest_version 2 by Reedy

GWToolset

 * - Fix PSR12.Properties.ConstantVisibility.NotFound by Reedy
 * - Strip charset from Content-Type before parsing as mime type  by Reedy

ImageMap

 * - Remove unused $id property by Thiemo Kreuz
 * - Fix PSR12.Properties.ConstantVisibility.NotFound by DannyS712

InputBox
No changes for InputBox

Insider

 * - Use SidebarBeforeOutput hook with correct format by jdlrobson

intersection
No changes for intersection

Interwiki

 * - Convert to manifest_version 2 by Reedy

InterwikiSorting
No changes for InterwikiSorting

Jade

 * - Integrated Jade on the MW rollback page by kevinbazira
 * - Integrated Jade on the MW undo page by kevinbazira
 * - Integrated Jade on the MW Special:Diff page by kevinbazira
 * - build: Updating mediawiki/mediawiki-codesniffer to 30.0.0 by libraryupgrader
 * - Fixed label proposal error message by kevinbazira
 * - build: Updating stylelint-config-wikimedia to 0.10.1 by Libraryupgrader
 * - build: Updating eslint-config-wikimedia to 0.15.3 by Libraryupgrader
 * - Removed mousedown event handling from Jade ListWidgets by kevinbazira

Josa
No changes for Josa

JsonConfig

 * - Add Data licences Germany by Raymond

Kartographer
No changes for Kartographer

LabeledSectionTransclusion
No changes for LabeledSectionTransclusion

LandingCheck
No changes for LandingCheck

LdapAuthentication
No changes for LdapAuthentication

Linter
No changes for Linter

LiquidThreads

 * - Remove Threads::$VALID_CHANGE_TYPES by Reedy
 * - Remove PHP entry point by Reedy
 * - Fix PSR12.Properties.ConstantVisibility.NotFound by Reedy
 * - Remove method_exists check for isNavigationBarShown by Reedy
 * - Use TalkPageNotificationManager by Clara Andrew-Wani
 * - Use WikiPage::getId methods instead hard-deprecated Article::getId by ArtBaltai

Listings
No changes for Listings

LocalisationUpdate
No changes for LocalisationUpdate

LoginNotify

 * - Fix PSR12.Properties.ConstantVisibility.NotFound by DannyS712

MachineVision

 * - Prevent duplicate statements by Cormac Parle
 * - Add Special:MyLanguage for better user experience by Yuki Shira
 * - build: Updating jquery to 3.5.1 by libraryupgrader

MapSources
No changes for MapSources

MassMessage

 * - Fix PSR12.Properties.ConstantVisibility.NotFound by Reedy

Math

 * - Use HttpRequestFactory::createMultiClient by Tim Starling
 * - Move checking code to a new namespace by Moritz Schubotz (physikerwelt)
 * - Convert to manifest_version 2 by Reedy

MobileApp
No changes for MobileApp

MobileFrontend

 * - MobileFrontend: Fix alignment of history/special:contrib 'more' button by Ammar Abdulhamid
 * - specials: Remove SpecialMobileMenu class (unused) from MF by Derick A
 * - Toggler: Remove wrong ARIA attributes & re-introduce them correctly by Volker E
 * - specials: Remove unused SpecialMobileCite class and related code by Derick A
 * - i18n: Move colon inside the tag by Amir Aharoni
 * - build: Updating watchpack to 1.7.2 by libraryupgrader
 * - Toggler: Remove `div` check by Volker E
 * - Replace Toast.show with mw.notify by Sohom Datta
 * - MobileFrontend uses SkinAddFooterLinks hook by jdlrobson
 * - Stop using deprecated wgContLang, about to be removed by James D. Forrester
 * - Convert to manifest_version 2 by Reedy

MultimediaViewer
No changes for MultimediaViewer

NavigationTiming
No changes for NavigationTiming

Newsletter

 * - Selenium: Update to WebdriverIO v6 by vidhi-mody
 * - Selenium: Update to WebdriverIO v5 by vidhi-mody
 * - Use the new SpamChecker service by DannyS712

NewUserMessage

 * - Convert to manifest_version 2 by Reedy

Nuke
No changes for Nuke

OATHAuth

 * - christian-riesen/base32 to 1.3.2 by Reedy
 * - Add missing message `verifyoathforuser` by DannyS712

OAuth

 * - Adding blankspace per task by Tks4Fish
 * - Updating firebase/php-jwt (v5.1.0 => v5.2.0) by Reedy

OpenStackManager
No changes for OpenStackManager

ORES

 * - Selenium: Update to WebdriverIO v6 by vidhi-mody
 * - Selenium: Update to WebdriverIO v5 by vidhi-mody

PageAssessments

 * - Convert to manifest_version 2 by Reedy

PagedTiffHandler
No changes for PagedTiffHandler

PageImages

 * - Fix PSR12.Properties.ConstantVisibility.NotFound by DannyS712
 * - Convert $wgMemc use to WANObjectCache by Aaron Schulz
 * - Use "description" in extension.json by Kunal Mehta

PageTriage

 * - ApiPageTriageListTest: Use MovePageFactory to construct MovePage by DannyS712

PageViewInfo

 * - Fix PSR12.Properties.ConstantVisibility.NotFound by Reedy

ParserFunctions

 * - Convert to manifest_version 2 by Reedy

PdfHandler

 * - Fix PSR12.Properties.ConstantVisibility.NotFound by Reedy
 * - Convert to manifest_version 2 by Reedy

PerformanceInspector
No changes for PerformanceInspector

Petition

 * - Convert to manifest_version 2 by Reedy

Poem
No changes for Poem

PoolCounter
No changes for PoolCounter

Popups

 * - Fix PSR12.Properties.ConstantVisibility.NotFound by DannyS712
 * - Add Special:MyLanguage for better user experience by Yuki Shira

ProofreadPage

 * - Parse messages in string context by Umherirrender
 * - Fix optional parameter before required by Reedy
 * - Remove broken radio buttons from conflict resolution interface by Thiemo Kreuz

PropertySuggester

 * - Fix PSR12.Properties.ConstantVisibility.NotFound by Reedy

QuickSurveys

 * - Use QUnitTestModule instead of deprecated ResourceLoaderTestModules by James D. Forrester

Quiz

 * - Fix optional parameter before required by Reedy

ReadingLists

 * - Fix PSR12.Properties.ConstantVisibility.NotFound by Reedy

RelatedArticles
No changes for RelatedArticles

Renameuser
No changes for Renameuser

RevisionSlider

 * - Selenium: Update to WebdriverIO v5 by vidhi-mody

RSS

 * - Convert to manifest_version 2 by Reedy

SandboxLink

 * - Convert to manifest_version 2 by Reedy

Score

 * - Fix PSR12.Properties.ConstantVisibility.NotFound by Reedy
 * - Convert to manifest_version 2 by Reedy

Scribunto

 * - Add Tigrinya namespaces by RhinosF1

SearchExtraNS

 * - Convert to manifest_version 2 by Reedy

SecureLinkFixer
No changes for SecureLinkFixer

SecurePoll
No changes for SecurePoll

ShortUrl

 * - Convert to manifest_version 2 by Reedy

SiteMatrix

 * - Replace _merge_strategy with merge_strategy by Reedy

SpamBlacklist

 * - Fix PSR12.Properties.ConstantVisibility.NotFound by Reedy
 * - Remove _merge_strategy from value by Reedy
 * - Convert to manifest_version 2 by Reedy

SubPageList3
No changes for SubPageList3

SubpageSortkey

 * - Remove _merge_strategy from value by Reedy
 * - Convert to manifest_version 2 by Reedy

SyntaxHighlight_GeSHi

 * - Move SyntaxHighlightModels from config to attributes by Reedy
 * - Convert to manifest_version 2 by Reedy

TemplateData

 * - Fix PSR12.Properties.ConstantVisibility.NotFound by Reedy
 * - Convert to manifest_version 2 by Reedy

TemplateSandbox

 * - Convert to manifest_version 2 by Reedy

TemplateStyles
No changes for TemplateStyles

TemplateWizard

 * - Selenium: add page object by ephemeralwaves

TextExtracts

 * - Convert to manifest_version 2 by Reedy
 * - Add Special:MyLanguage for better user experience by Yuki Shira

Thanks

 * - Convert to manifest_version 2 by Reedy

TheWikipediaLibrary
No changes for TheWikipediaLibrary

TimedMediaHandler

 * - Drop back-compat. checks for pre-1.23; this repo requires 1.35+ by James D. Forrester
 * - Add Special:MyLanguage for better user experience by Yuki Shira

timeline

 * - Fix optional parameter before required by Reedy

TitleBlacklist

 * - Fix PSR12.Properties.ConstantVisibility.NotFound by Reedy
 * - Convert to manifest_version 2 by Reedy

TocTree
No changes for TocTree

TorBlock
No changes for TorBlock

Translate

 * - Restore MW 1.33-1.34 compatibility in QueryAggregator by Niklas Laxström
 * - Make WikiPageMessageGroup inherit MessageGroupOld directly by Niklas Laxström
 * - Remove no-op constructor from MessageGroupOld by Niklas Laxström
 * - Avoid extra query in WikiPageMessageGroup::getDefinitions by Niklas Laxström
 * - Fix typo retun -> return by Niklas Laxström
 * - Split message index rebuild off of TranslationsUpdateJob and enable deduplication by Niklas Laxström
 * - Suppress XSS false positive by Daimona Eaytoy
 * - Use HttpRequestFactory::createMultiClient by Tim Starling
 * - Fix regression that broke offline import by Niklas Laxström
 * - Fix "nothing to translate" error on moving from review to page mode by Abijeet
 * - Use QUnitTestModule instead of deprecated ResourceLoaderTestModules by James D. Forrester
 * - AndroidXmlFFS: Add support for unicode symbols by Abijeet
 * - Remove redundant dependency on 'mediawiki.notify' by Timo Tijhof

TranslationNotifications

 * - Fix PSR12.Properties.ConstantVisibility.NotFound by Reedy
 * - Avoid using Job::factory, instead create the job object directly by Abijeet
 * - Convert to manifest_version 2 by Reedy

TrustedXFF
No changes for TrustedXFF

TwoColConflict

 * - Add browser test for talk page conflicts adding new lines by WMDE-Fisch
 * - Detect talk-page cases that are changes instead of additions by Thiemo Kreuz
 * - Mark EventLogging code with @codeCoverageIgnore by Thiemo Kreuz
 * - Pull context dependency 1 level up, out of ResolutionSuggester by Thiemo Kreuz
 * - Remove unnecessary static keyword from ResolutionSuggester by Thiemo Kreuz
 * - Remove unused mw-twocolconflict-title form field by Thiemo Kreuz
 * - Full test coverage for SplitTwoColConflictHelper by Thiemo Kreuz
 * - Reuse existing SplitConflictUtils::addTargetBlankToLinks by Thiemo Kreuz
 * - Show feedback notice for talk pages by Adam Wight
 * - Add first trivial tests for SplitTwoColConflictHelper by Thiemo Kreuz
 * - Pull context dependency 1 level up, out of HtmlSplitConflictHeader by Thiemo Kreuz
 * - Remove unused SpecialPageHtmlFragment by Thiemo Kreuz
 * - Merge talk module into generic CSS ResourceLoader module by Thiemo Kreuz
 * - Display overview when advanced help not available by Adam Wight
 * - Streamline browser tests waiting for the JS to work by WMDE-Fisch
 * - Minimize row swap code in JavaScript a bit by Thiemo Kreuz
 * - Browser tests for swapable talk page blocks by WMDE-Fisch
 * - Add a button that swaps the row order on the talk view by Andrew Kostka
 * - Open preference link in core hint in new tab by WMDE-Fisch
 * - Test core hint stays hidden after first dismissal by WMDE-Fisch
 * - Remove Special page for simulating conflicts by Adam Wight
 * - Mark pulsating blue dots with `cursor: pointer` by Thiemo Kreuz
 * - Streamline waiting in talk page tests by WMDE-Fisch
 * - Always close popups before opening a new one by Adam Wight
 * - Move EditPage::importFormData hook handler to separate file by Thiemo Kreuz
 * - Fix minor merge issue in SplitConflictUtils::mergeTextLines by Thiemo Kreuz

UniversalLanguageSelector

 * - Update jquery.uls from upstream by Amir Aharoni

UploadsLink

 * - Convert to manifest_version 2 by Reedy

UploadWizard

 * - Fix class/function case mismatch by Reedy
 * - Remove EventLogging dependency from tests by Ed Sanders
 * - Convert to manifest_version 2 by Reedy
 * - Replace with   by Reedy
 * - Add Special:MyLanguage for better user experience by Yuki Shira

UrlShortener

 * - Add introductory note to Special:ManageShortUrl by Ammar Abdulhamid
 * - Convert to manifest_version 2 by Reedy

UserMerge
No changes for UserMerge

VipsScaler

 * - Fix PSR12.Properties.ConstantVisibility.NotFound by Reedy

VisualEditor

 * - Update VE core submodule to master (3af5d5964) by James D. Forrester
 * - Use HttpRequestFactory::createMultiClient by Tim Starling
 * - Use fake server for link inspector tests by Ed Sanders
 * - Fix #unwrapParsoidSections for pseudo-sections (generated by templates) by Bartosz Dziewoński
 * - Don't log VEFeatureUse from DiscussionTools by David Lynch
 * - Update extension.json authors to match AUTHORS.txt by Ed Sanders
 * - Update principal authors by Ed Sanders
 * - Update Authors.txt based on lib/ve by Ed Sanders
 * - Replace use of old global with MW_VERSION constant by James D. Forrester
 * - Improve deactivating tabs when switching/exiting on MonoBook etc. by Bartosz Dziewoński
 * - Extract Parsoid/RESTBase stuff out of our API code by Bartosz Dziewoński
 * - ApiVisualEditorEdit: Use existing action=compare parameters for PST by Bartosz Dziewoński
 * - Remove _merge_strategy from value by Reedy
 * - Simplify API modules setup by Bartosz Dziewoński
 * - Refactor getPreferredEditor and expose reusable parts by Ed Sanders
 * - DesktopArticleTarget.init: Set veEditSourceUri in SET mode too by Bartosz Dziewoński
 * - Treat links to diffs and history pages as external links by Sohom Datta

WebAuthn

 * - Add GPL-3.0 license by Reedy

Wikibase

 * - Add --report flag on build by tzhelyazkova
 * - bridge: test: simplify two assertions by Lucas Werkmeister
 * - OutputPageEditabilityTest: When mocking Title, provide getNamespace by James D. Forrester
 * - Fix typo 'desciption' by MarcoAurelio
 * - doxygen-docker, remove prefixing / for volume paths by addshore
 * - Introduce LangLinkHandlerFactory by Tpt
 * - Move LangLinkHandler to the Hooks namespace by Tpt
 * - bridge: mutationsTrackerPlugin test: split assertions, add nomatch by Pablo Grass
 * - bridge: mutationsTrackerPlugin: use method name in type guard by Pablo Grass
 * - bridge: mutationsTrackerPlugin: dynamic type guard result by Pablo Grass
 * - bridge: mutationTrackerPlugin: align test with unit name by Pablo Grass
 * - bridge: mutationsTrackerPlugin: type guard as fixed function by Pablo Grass
 * - Improve documentation of PrefetchingTermLookup implementations by addshore
 * - Use Action::getArticle instead of deprecated Action::$page by ArtBaltai
 * - bridge: track all errors by Michael Große
 * - bridge: Move error formatting into tracker by Michael Große
 * - bridge: Rename error tracking actions by Michael Große
 * - bridge: don't minimize in dev mode by Michael Große
 * - FP: ApiEntityLookup fetch and log when not already prefetched by addshore
 * - FP: Document config instructions by Jakob Warkotsch
 * - Remove compatibility class aliases by Lucas Werkmeister
 * - Move Content classes to right namespace by Lucas Werkmeister
 * - Move repo maintenance tests to correct namespace by Lucas Werkmeister
 * - bridge: update to latest @wmde/wikibase-vuejs-components by Pablo Grass
 * - Add test for batching behaviour of ApiEntityLookup by addshore
 * - Add ArticleRevisionVisibilitySetHookHandler by Marius Hoch
 * - Move batching of Entities from ApiPrefetchingTermLookup to ApiEntityLookup. by rosalie
 * - FP: Allow descriptions in ApiPrefetchingTermLookup by Jakob Warkotsch
 * - Fix optional parameter before required by Reedy
 * - Make onLoginFormValidErrorMessages match MW Core by Reedy
 * - Move some Repo classes to the right namespace by Lucas Werkmeister
 * - bridge: DataBridge: remove unused getter by Pablo Grass
 * - Add populateSitesTable.php back to lib/autoload.php by Lucas Werkmeister
 * - bridge: Add text format to jest coverage reporters by tzhelyazkova
 * - FP: add LinkTargetEntityIdLookup by addshore
 * - bridge: expand documentation of edit decision messages by Lucas Werkmeister
 * - FP: Use the new wbgetentities service (ApiEntityLokup for api fetching entities ) by rosalie
 * - bridge: improve phrasing of “replace” edit decision by Lucas Werkmeister
 * - bridge: wire up reload buttons on edit conflict by Lucas Werkmeister
 * - bridge: wire up ErrorSavingEditConflict in ErrorWrapper by Lucas Werkmeister
 * - Observability for SqlChangeDispatchCoordinator wait for replication by addshore
 * - Move two classes to right namespace by Lucas Werkmeister
 * - Update wikibase-api to 3.2.0 by Marius Hoch
 * - Remove compatibility class aliases by Lucas Werkmeister
 * - Move Action classes to right namespace by Lucas Werkmeister
 * - bridge: selenium: simplify createTag helper by Lucas Werkmeister
 * - Introduce ignoreDuplicateMainSnak param to wbsetclaim by Cormac Parle
 * - bridge: selenium: extract setValue utility by Lucas Werkmeister
 * - bridge: wire up ErrorSavingAssertUser in ErrorWrapper by Lucas Werkmeister
 * - Stop throwing StorageException in TitleFactory mocks by Lucas Werkmeister
 * - Fix core's TitleFactory not being used correctly by Thiemo Kreuz
 * - FP: Throw exception when looking up the data type of a missing prop by Jakob Warkotsch
 * - bridge: purge page immediately after noticing edit conflict by Michael Große
 * - WikibaseValueFormatterBuilders: inject specialized services by Jakob Warkotsch
 * - FP: Add ApiEntityExistenceChecker by Jakob Warkotsch
 * - FP: Use the default LabelsProviderEntityIdHtmlLinkFormatter by Jakob Warkotsch
 * - Move ClientHooks to \Wikibase\Client + client/includes/ by Lucas Werkmeister
 * - Remove EntityTitleLookup from LabelsProviderEntityIdHtmlLinkFormatter by sihe
 * - bridge: Make proceed button use save or publish text by tzhelyazkova
 * - bridge: wire up “login” button for assertuser error by Lucas Werkmeister
 * - bridge: add login warning message by Lucas Werkmeister
 * - bridge: storybook test: only emit critical build output by Pablo Grass
 * - ErrorSavingAssertUser: consistently space buttons by Pablo Grass
 * - bridge: Wire up 'save without logging in' button by tzhelyazkova
 * - bridge: Wire up 'keep editing' button in ErrorSavingAssertUser component by tzhelyazkova
 * - Stop assuming that string DB names mean non local DBs by addshore
 * - Add some deprecated annotations to some old terms classes by addshore
 * - Add ServiceByTypeDispatcherTest by addshore
 * - bridge: selenium: create and use shortcuts to open the app by Pablo Grass
 * - bridge: IconMessageBox CSS: descriptive selector by Pablo Grass
 * - bridge: add ErrorSavingEditConflict component by Lucas Werkmeister
 * - refactoring: consolidate data types by Yuri Astrakhan
 * - bridge: detect edit conflict errors by Lucas Werkmeister
 * - brdige: Add ErrorSavingAssertUser component by tzhelyazkova
 * - bridge: wire up header go-back button for assertUser error by Michael Große
 * - bridge: handle saving errors in root action by Lucas Werkmeister
 * - bridge: selenium: abstract way to set window size by Pablo Grass
 * - Extract shared service dispatching code by Jakob Warkotsch
 * - bridge: selenium: re-enable "go back from a save error" test by Pablo Grass
 * - Fixed some typos and clarified a bit or two in build/doxygen-docker.sh by Leszek Manicki
 * - Run the doxygen in the container as a current user by Leszek Manicki
 * - FP: Override EntityRedirectChecker by Jakob Warkotsch
 * - Add EntityRedirectChecker by Jakob Warkotsch
 * - FP: Throw more meaningful exception when hitting request timeout by Jakob Warkotsch

WikibaseCirrusSearch

 * - Selenium: Update to WebdriverIO v6 by vidhi-mody
 * - Selenium: Update to WebdriverIO v5 by vidhi-mody
 * - Update for namespace moves by Lucas Werkmeister
 * - Replace EntityTypeDefinitions string literals with constants by Jakob Warkotsch

WikibaseLexeme

 * - Update wikibase code sniffer to 1.1.0 by addshore
 * - GrammaticalFeatureView: labels not connected to input by Tobias Andersson
 * - Update for namespace moves by Lucas Werkmeister
 * - Form Representations: labels and input fields not connected by Tobias Andersson
 * - Form template: Inconsistencies between production and test by Tobias Andersson
 * - Remove unused wikibase global from more tests by Lucas Werkmeister
 * - Update for namespace moves by Lucas Werkmeister

WikibaseLexemeCirrusSearch
No changes for WikibaseLexemeCirrusSearch

WikibaseMediaInfo

 * - Update for namespace moves by Lucas Werkmeister
 * - Enable media search for all users by default by Matthias Mullie

WikibaseQualityConstraints
No changes for WikibaseQualityConstraints

Wikidata.org

 * - WikimediaPrometheusQueryServiceLagProvider Nan values by addshore
 * - Use SkinAddFooterLink to add links to the footer by jdlrobson

WikidataPageBanner

 * - Use QUnitTestModule instead of deprecated ResourceLoaderTestModules by James D. Forrester

WikiEditor

 * - Replace use of old $wgVersion constant with MW_VERSION by James D. Forrester
 * - Extend comment on overqualified selector from code example by Volker E

wikihiero

 * - Fix PSR12.Properties.ConstantVisibility.NotFound by Reedy
 * - Spaces to tabs in extension.json by Reedy

WikiLove

 * - Convert to manifest_version 2 by Reedy

WikimediaBadges

 * - Convert to manifest_version 2 by Reedy

WikimediaEditorTasks

 * - Fix PSR12.Properties.ConstantVisibility.NotFound by Reedy

WikimediaEvents

 * - Fix PSR12.Properties.ConstantVisibility.NotFound by Reedy
 * - Remove _merge_strategy from value by Reedy
 * - Convert to manifest_version 2 by Reedy

WikimediaIncubator

 * - Convert to manifest_version 2 by Reedy

WikimediaMaintenance

 * - Fix PSR12.Properties.ConstantVisibility.NotFound by Reedy

WikimediaMessages

 * - Fix links to pages on Wikimedia commons when used on other wikis by Pppery
 * - Clarify WebAuthn messages by Amir Aharoni
 * - Update footer additions to use modern hooks by jdlrobson
 * - Add Shan Wiktionary by Jon Harald Søby
 * - Add 'abusefilter-maintainer' global group messages by MarcoAurelio

Wikisource

 * - Convert to manifest_version 2 by Reedy

XAnalytics
No changes for XAnalytics

CologneBlue
No changes for CologneBlue

MinervaNeue

 * - Exclude localStorage errors from error-logging by Jan Drewniak
 * - Fix PSR12.Properties.ConstantVisibility.NotFound by Reedy
 * - PageHistory: Remove input overrides breaking mobile Firefox by Volker E
 * - icons: Unify page issues SVG source code by Volker E
 * - Fix posting talk page replies on pages with subsections by Bartosz Dziewoński
 * - Replacing instances of toast.show with mw.notify by Sohom Datta
 * - Change opacity (color) of logo to a subtler gray close to `#54595d` by Volker E
 * - AMC history page visual fixes by Jan Drewniak

Modern

 * - Add support for VisualEditor by brandonxlf

MonoBook
No changes for MonoBook

Nostalgia

 * - Fix function case mismatch by Reedy
 * - Use TalkPageNotificationManager by Clara Andrew-Wani

Timeless
No changes for Timeless

Vector

 * - BaseTemplate:makeListItem is deprecated by jdlrobson
 * - [dev] use skin name constant instead of string by Stephen Niedzielski
 * - Make class attribute optional when empty by Volker E
 * - VectorTemplate: SkinTemplateToolboxEnd hook isn't deprecated by DannyS712
 * - [dev][Legacy] split sidebar Mustache and Less by Stephen Niedzielski
 * - Show empty language portal if HTML has been added after portal by jdlrobson
 * - Increase footer font size slightly to `12px` by Volker E
 * - Allow plain text labels in side bar by jdlrobson
 * - [dev] Remove `white-space` attribute from personal menu by Volker E
 * - [modern] Center the logo tagline beneath the wordmark by AronDemian
 * - Refactor: Simplify and standardize menu definitions by jdlrobson
 * - [dev][Storybook] move to start script; report errors not status by Stephen Niedzielski
 * - Show half-star when the page is temporarily watched by MusikAnimal
 * - [dev][Legacy][JS] Split Legacy mode JavaScript into new ResourceLoader module by Stephen Niedzielski

VisualEditor

 * - Update RangeFix to 0.2.9 by Ed Sanders
 * - Update OOjs to v5.0.0 by James D. Forrester
 * - Update principal authors by Ed Sanders
 * - Update OOUI to v0.39.0 by James D. Forrester

Total Changes
699 Changes in 129 repos by 99 authors