MediaWiki 1.39/wmf.20/Changelog

Core changes

 * - Branch commit for wmf/1.39.0-wmf.20 by trainbranchbot
 * - mediawiki.base: Document mw.track debug console snippet by Timo Tijhof
 * - tests: Make use of `overrideConfig(Value|Values)` where needed by Derick Alangi
 * - Remove @deprecated from SpecialPage by Daimona Eaytoy
 * - Hard deprecated the MWGrants class by Alexander Vorwerk
 * - mw.deflate: Add tests by Ed Sanders
 * - CopyTextLayout: Don't attempt to focus an input if hidden by Ed Sanders
 * - Settings: Remove unstable markers and mark interfaces appropriately by Derick Alangi
 * - Hard deprecate HTMLCacheUpdate by Matěj Suchánek
 * - Hard deprecate CdnCacheUpdate::newFromTitles by Matěj Suchánek
 * - Hard deprecate DataUpdate::runUpdates by Matěj Suchánek
 * - Hard deprecate EnqueueJob::newFromJobsByWiki by Matěj Suchánek
 * - Use GrantsInfo and GrantsLocalization instead of MWGrants by Alexander Vorwerk
 * - Upgrading wikimedia/xmp-reader (0.8.2 => 0.8.3) by Reedy
 * - Don't attempt to use mParent if it isn't set by Mark A. Hershberger
 * - AutoLoader: Avoid vague negated assertion for case-insensitive test by Timo Tijhof
 * - parser: Fix CoreParserFunctions::urlencode null coalescence $arg by Reedy
 * - SpecialDiff: Don't pass null to explode by Reedy
 * - registration: Add suggested dependencies to extension.json schema by Reedy
 * - import: UploadSourceAdapter::stream_read don't pass null to strlen by Reedy
 * - ManualLogEntry::getComment should always return string by Mark A. Hershberger
 * - JobQueueDB: Always use IDatabase::addQuotes for quoting by Umherirrender
 * - RemoveInvalidEmails: Fix quoting for postgres by Umherirrender
 * - Clean up line indent with mixed tabs and whitespaces by Umherirrender
 * - RELEASE-NOTES: dynamic defaults applied before extension registration. by daniel
 * - Dynamic defaults: fix $wgLocaltimezone being empty by daniel
 * - Hard deprecate SkinTemplate::getNameSpaceKey by Matěj Suchánek
 * - Upgrading wikimedia/running-stat (v1.2.1 => v2.0.0) by Reedy
 * - Upgrading wikimedia/php-session-serializer (v2.0.0 => v2.0.1) by Reedy
 * - Upgrading wikimedia/base-convert (v2.0.1 => v2.0.2) by Reedy
 * - block: Create wiki-aware target for autoblocks  by Alexander Vorwerk
 * - actions: Add Action::getAuthority and use it by Umherirrender
 * - Parser::extensionSubstitution Don't run substr on null  by Reedy
 * - Transform e2e test: Move data into separate files by daniel
 * - HISTORY: Add 1.37.4 by Reedy
 * - SpecialRedirect: Don't pass null to explode by Reedy
 * - Hard deprecate FormatMetadata::flattenArrayContentLang by Matěj Suchánek
 * - Hard deprecate DifferenceEngine::textDiff by Matěj Suchánek
 * - Hard deprecate WikiRevision::downloadSource by Matěj Suchánek
 * - Hard deprecate ManualLogEntry::setTags by Matěj Suchánek
 * - Hard deprecate IContextSource::getStats implementations by Matěj Suchánek
 * - ResourceLoader: Switch Image.php to injected log channel by Timo Tijhof
 * - permission: Simplify @covers annotations in PermissionManagerTest by Timo Tijhof
 * - MediaWiki.php: Reduce scope of variables by Umherirrender
 * - populateInterwiki: Include not null columns iw_api/iw_wikiid by Umherirrender
 * - Do not use FormSpecialPage::{pre,post}Text by Martin Urbanec
 * - Remove deprecated wfLocalFile and wfFindFile by Umherirrender
 * - Deprecate unused wfQueriesMustScale by Umherirrender
 * - Remove deprecated wfGetScriptUrl by Umherirrender
 * - ParserOutput::mergeMapStrategy: don't crash if merging non-array values by C. Scott Ananian
 * - Fix typing of MessageCacheReplaceHook by Máté Szabó
 * - rdbms: Add a note encouraging use of SelectQueryBuilder in IDatabase::select   by Amir Sarabadani
 * - Category: Migrate to use SelectQueryBuilder in ::getMembers by Amir Sarabadani
 * - PHPUnit: enable main object cache in tests by daniel
 * - PHPUnit: introduce setMainCache by daniel
 * - Use HashConfig to override config variables in phpunit tests by daniel
 * - Move dynamic defaults into MainConfigSchema by Aryeh Gregor
 * - Add new ContentHandler::supportsPreloadContent feature by Thiemo Kreuz
 * - Language::getHumanTimestamp: Don't show time when timestamp in a different year by Ed Sanders
 * - rdbms: Adapt hasOrMadeRecentPrimaryChanges test mock for PHP 8.1 by Mark A. Hershberger
 * - filebackend,jobqueue: Add signature for FilterIterator::accept  by Mark A. Hershberger
 * - site: Consistently return null from Site::getDomain by Mark A. Hershberger
 * - Remove SpecialUnblock::processUnblock by Matěj Suchánek
 * - Revert "objectcache: avoid using heavily time-drifted microtime values in WAN cache" by Lucas Werkmeister
 * - Move rate limiting tests into RaterLimiterTest by daniel
 * - Remove 'ignoreKeys' from config schema by Lucas Werkmeister
 * - tests: Use Title::makeTitle instead of Title::newFromText by Umherirrender
 * - Stop merging LinkCache select fields with page_title and page_namespace by Alexander Vorwerk
 * - tests: Remove unneeded Title::newFromLinkTarget calls by Umherirrender
 * - Hard deprecate access to WikiRevision::$fileIsTemp by Matěj Suchánek
 * - Hard deprecate DifferenceEngine::getDiffBodyCacheKey by Matěj Suchánek
 * - Deprecate SkinTemplateNavigation::SpecialPage and SkinTemplateNavigation hooks in favor of SkinTemplateNavigation::Universal by Moh'd Khier Abualruz
 * - MediaWiki: Avoid spurious page query by Máté Szabó
 * - RecentChangesLinked: Add support for read new for templatelinks by Amir Sarabadani
 * - FormatMetadata: PHP Notice: Array to string conversion by Mark Shenouda
 * - Fix config type of SessionProviders by Lucas Werkmeister
 * - Use SelectQueryBuilder in OutputPage by Lucas Werkmeister
 * - Migrate risky callers of MediaWikiServices::getParser by Tim Starling
 * - Deprecate Parser::getFreshParser by Tim Starling
 * - Clarify handling of verifier headers in POST and PUT by daniel
 * - Introduce new WRStats library for write-read stats by Tim Starling
 * - SpecialRecentChangesLinked: Migrate partially to SelectQueryBuilder by Amir Sarabadani
 * - Mark WordLevelDiff as newable for now by Lucas Werkmeister
 * - MessagesKo.php: Add some aliases and fix National Library of Korea Link by na1307
 * - GitInfo: simplify and prepare for converting to a service by DannyS712
 * - Merge away `mediawiki.ForeignStructuredUpload` module by DannyS712
 * - htmlform: Use ContextSource to get config by Umherirrender
 * - Fix typo in installer by EpicPupper

Vendor

 * - Removing symfony/debug (v4.4.41) by Reedy
 * - Upgrading wikimedia/css-sanitizer (v4.0.0 => v4.0.1) by Reedy
 * - Upgrading wikimedia/xmp-reader (0.8.2 => 0.8.3) by Reedy
 * - Upgrading wikimedia/running-stat (v1.2.1 => v2.0.0) by Reedy
 * - Upgrading wikimedia/php-session-serializer (v2.0.0 => v2.0.1) by Reedy
 * - Upgrading wikimedia/base-convert (v2.0.1 => v2.0.2) by Reedy
 * - Upgrading wikimedia/css-sanitizer (v3.0.2 => v4.0.0) by Reedy

AbuseFilter

 * - PurgeOldLogIPData: Fix quoting for postgres by Umherirrender
 * - Add a space between the checkbox and timestamp in Special:AbuseLog by dreamyjazz
 * - FilterProfiler: use WRStats by Tim Starling
 * - Add the ListToggle to Special:AbuseLog for users who can hide entries by dreamyjazz
 * - Delimit namespace and title text in warning keys by Matěj Suchánek

ActiveAbstract

 * - Namespace extension by Reedy

CentralAuth

 * - GlobalGroup: Convert DB selects to use SelectQueryBuilder by Alexander Vorwerk
 * - WikiSet: Convert DB selects to use SelectQueryBuilder by Alexander Vorwerk
 * - api: Convert DB selects to use SelectQueryBuilder by Alexander Vorwerk
 * - tests: Convert DB selects to use SelectQueryBuilder by Alexander Vorwerk
 * - Change wikiID to false for local database connection by Umherirrender
 * - mailmap: Add an entry for Zabe by Alexander Vorwerk
 * - Do not use FormSpecialPage::preText by Martin Urbanec

CheckUser

 * - tests: Fix testGetTimeConds for postgres by Umherirrender
 * - Convert maintenance scripts to SelectQueryBuilder by dreamyjazz
 * - Convert DB queries to use SelectQueryBuilder by dreamyjazz
 * - Do not use FormSpecialPage::preText by Martin Urbanec
 * - Remove tags from titles in Special:Investigate timeline by Thalia
 * - Wrap titles in tags in Special:Investigate timeline by Thalia
 * - Show descriptive error on too small CIDR and disable result input by dreamyjazz
 * - Add cul_reason_id and cul_reason_plaintext_id into cu_log  by dreamyjazz

CirrusSearch

 * - Fix trait deprecations by Mark A. Hershberger
 * - ResultSet: Remove odd ` ` from return annotations in doc blocks by Timo Tijhof
 * - Update signature on various count methods by Mark A. Hershberger
 * - Revert "job queue: Squelch errors related to unwritable cloudelastic" by Ebernhardson
 * - job queue: Squelch errors related to unwritable cloudelastic by Erik Bernhardson

ConfirmEdit

 * - Use new array syntax in README by Alexander Vorwerk

ContentTranslation

 * - Replace Maintenance::error calls with ::fatalError by Matěj Suchánek
 * - Convert to abstract schema by Umherirrender
 * - Update MT label for Flores by Kartik Mistry
 * - SX parallel corpora: Fix parallelCorporaMTContent calculation by NikG
 * - SX: Remove "publishFeedbackMessages" from vuex state by NikG
 * - SX MT validation: fix calls of "calculateUnmodifiedContent" method by NikG
 * - SXPublishOptionSelector: Refactor to use composition api by NikG
 * - Standardise type for timestamp columns by Umherirrender
 * - schema: Remove updates with non-existing patches by Umherirrender
 * - CX3 Build 0.2.0+20220704 by Santhosh Thottingal

DiscussionTools

 * - ImmutableRange: Fix setStart/setEnd to avoid backwards range by Ed Sanders
 * - Fix infinite recursion when checking for the new topic tool on empty pages by Ed Sanders
 * - Don't enable visual enhancements CSS on mobile when feature is "unavailable" by Ed Sanders
 * - Enable transformations in preview mode by Bartosz Dziewoński
 * - Show new topic tool empty state on existing pages with no topics too by Bartosz Dziewoński
 * - ReplyWidget: CSS tweaks for monobook by Ed Sanders
 * - ReplyWidget: Don't add border-radius when hovering mode tab by Ed Sanders
 * - CommentController: Scroll before focusing in showAndFocus by Ed Sanders
 * - LanguageData: Accept abbreviations in $wgLocaltimezone by Bartosz Dziewoński
 * - Hide the lede section on mobile when DiscussionTools is enabled (2nd attempt) by Esanders
 * - New topic tool: Always disable when "Add topic" is not visible by Ed Sanders
 * - Revert "Hide the lede section on mobile when DiscussionTools is enabled" by Ed Sanders
 * - Remove some unused or redundant styles by Bartosz Dziewoński
 * - Prevent the "Subscribe" button focus outline from being cut off by Bartosz Dziewoński

DonationInterface

 * - Switch 4 countries to default to Adyen by Elliott Eggleston

Echo

 * - Replace Maintenance::error calls with ::fatalError by Matěj Suchánek

FileImporter

 * - tests: Use `overrideConfigValue` to set lang code by Derick Alangi

FlaggedRevs

 * - FlagProtectToSemiProtect: Always use IDatabase::addQuotes for quoting by Umherirrender
 * - Make ft_tmp_rev_id in flaggedtemplates NOT NULL by lens0021

Flow

 * - Replace Maintenance::error call with ::fatalError by Matěj Suchánek
 * - Do not use FormSpecialPage::preText by Martin Urbanec
 * - mw.flow.ui.NavigationWidget: adapt browse topics sticky header by Sergio Gimeno
 * - Convert to abstract schema  by Umherirrender
 * - Standardise type for timestamp columns by Umherirrender
 * - schema: Move all sql files to own folder by Umherirrender
 * - Bump minimum required version for upgrade to 1.31 by Umherirrender
 * - Merge ext.flow.dm into ext.flow.ui by DannyS712

GeoCrumbs

 * - Use LinkRenderer instead of Linker::link by palak199

GlobalBlocking

 * - Do not use FormSpecialPage::postText by Martin Urbanec

GlobalCssJs

 * - Replace usage of Linker::link with LinkRenderer by Ferran Tufan

GrowthExperiments

 * - Fix GENDER syntax by Amir E. Aharoni
 * - Mentee overview (vue): add labels to all icons by Sergio Gimeno
 * - AddImage: Only process metadata for a single valid suggestion by Kosta Harlan
 * - Do not use FormSpecialPage::preText by Martin Urbanec
 * - ServiceImageRecommendationProvider: Don't fail on first validation error by Kosta Harlan
 * - DatabaseMentorStore: Move from IDatabase::select by Martin Urbanec
 * - Add basic instrumentation to SpecialEditGrowthConfig by Martin Urbanec
 * - AskHelpPanel: Inform mentees when their primary mentor is back by Martin Urbanec
 * - HelpPanelHooks: Inject services via dependency injection by Martin Urbanec
 * - Mentee overview (vue): place info icon in right top corner by Sergio Gimeno
 * - Mentee overview(Vue): remove custom menu item template by Sergio Gimeno
 * - Newcomer tasks: adjust the number of tasks shown in the taskfeed pager to match the total number of tasks received  by Sergio Gimeno
 * - Remove space from inside parentheses by Amir E. Aharoni
 * - StructuredMentorProvider: Set sign up title to Special:EnrollAsMentor by Martin Urbanec
 * - Add SpecialQuitMentorshipStructured by Martin Urbanec
 * - StructuredMentorWriter: Tag edits made by the writer by Martin Urbanec

ImageSuggestions

 * - Cleanup script output by Matthias Mullie

IPInfo

 * - Introduce BetaFeaturePreferencesHandlerTest by Thalia
 * - Improve test coverage of HookHandler/PreferencesHandler by tsepothoabala
 * - i18n: Amend log-action-filter-* messages by MarcoAurelio
 * - Add links to block log on infobox by tsepothoabala
 * - Add InfoboxHandlerTest class by Thalia

Kartographer

 * - phpunit: Skip ApiQueryMapDataTest::testStableAndLatest by Kosta Harlan
 * - Log target language behavior by msantos

LiquidThreads

 * - Start namespacing extension by Reedy
 * - Move most PHP files under includes/ by Reedy
 * - schema: Drop duplicate index thread_root_page by Umherirrender
 * - Convert to abstract schema by Umherirrender
 * - schema: Remove duplicate unique index from thread.thread_root by Umherirrender
 * - Standardise type for timestamp columns by Umherirrender
 * - schema: Move all sql files to sql folder by Umherirrender
 * - Bump minimum required version for upgrade to 1.31 by Umherirrender

MassMessage

 * - Do not use FormSpecialPage::{pre,post}Text by Martin Urbanec
 * - The SkinTemplateNavigation hook is deprecated by Moh'd Khier Abualruz

MediaSearch

 * - Fix 'ownKeys' on proxy: trap result did not include 'length' by Mark Shenouda

MultimediaViewer

 * - MMV lightbox: Allow notifications to appear on top of the lightbox by Ed Sanders
 * - Remove monobook selectors that assumed the '*' selector might not be available by Ed Sanders
 * - Remove instrumentation by Sam Smith
 * - Fix credit fallback not updating when switching image by dylsss

Newsletter

 * - Convert to abstract schema by Umherirrender
 * - Bump minimum required version for upgrade to 1.31 by Umherirrender
 * - Namespace extension by Reedy
 * - newsletter-create-confirmation: Fix registered typo by Reedy

OATHAuth

 * - Replace Maintenance::error calls with ::fatalError by Matěj Suchánek

OAuth

 * - Replace Maintenance::error calls with ::fatalError by Matěj Suchánek

OpenStackManager

 * - SpecialNovakey: Remove support for puttygen by Taavi Väänänen

PageImages

 * - SearchResultProvideThumbnailHookHandler: Construct from injected services by Kosta Harlan
 * - Replace comment about deprecated wfFindFile by Umherirrender
 * - PageImageCandidate: Cast handlerWidth to int by Reedy
 * - Convert Hooks to HookHandlers by Reedy

PageTriage

 * - UndeleteHookHandler: fix namespace conditional by Taavi Väänänen
 * - Convert to abstract schema by Umherirrender
 * - schema: Move inital inserts from sql file to extension update by Umherirrender
 * - Standardise type for timestamp columns by Umherirrender
 * - Bump minimum required version for upgrade to 1.31 by Umherirrender

RSS

 * - Namespace extension by Reedy

Scribunto

 * - Replace usage of Linker with LinkRenderer service by Ferran Tufan
 * - Use new ContentHandler::supportsPreloadContent feature by Thiemo Kreuz
 * - In ScribuntoContentHandler use the new ParserFactory::getInstance by Tim Starling

SecureLinkFixer

 * - Updating domains.php from Mozilla by Reedy

SecurePoll

 * - Use LinkRenderer instead of Linker by Ferran Tufan
 * - PurgePrivateVoteData: Always use IDatabase::addQuotes for quoting by Umherirrender
 * - STVBallot: Add limit option for seats by miriam schlindwein

TemplateStyles

 * - Update wikimedia/css-sanitizer to ~4.0.0 by Reedy

Thanks

 * - Do not use FormSpecialPage::preText by Martin Urbanec

Translate

 * - WikiPage group description: prefix source page title by tacsipacsi
 * - Translation unit deletion: Skip translation update if it doesn't exist by Abijeet
 * - log-action-filter-translationreview: Add missing colon by MarcoAurelio
 * - Indicator that email reminder was sent for new user by Wangombe

TranslationNotifications

 * - Do not use FormSpecialPage::postText by Martin Urbanec

TrustedXFF

 * - generate.php: Run array_unique over $ranges before output by Reedy

UploadWizard

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

VisualEditor

 * - Take parameter list out of tab navigation when empty by Adam Wight
 * - Add grey background when buttons are in focus by WMDE-Fisch
 * - Use rgba instead of hex to highlight identical styling by WMDE-Fisch
 * - Lessy-fying OutlineParameterWidget rules by WMDE-Fisch
 * - Lessy-fying OutlineTemplateWidget rules by WMDE-Fisch
 * - Fix CSS regression by Adam Wight
 * - Don't refocus content pane after removals  by Adam Wight
 * - Lessy-fying OutlinePartWidget and OutlineButtonWidget rules by WMDE-Fisch
 * - Update VE core submodule to master (71e970992)   by Bartosz Dziewoński
 * - Move obvious Outline related CSS into own file by WMDE-Fisch
 * - Remove highlighting when typing in a search field by Andrew Kostka
 * - Revert "Restore selection after keyboard parameter navigation" by Adam Wight
 * - Autofocus template input field on dialog open by Andrew Kostka
 * - Drop StackLayout by Adam Wight
 * - No highlight for selected template names by Svantje Lilienthal
 * - Remove dead code when adding parameters by WMDE-Fisch
 * - Update styling for the floating help button by Andrew Kostka
 * - Scroll even if sidebar selection hasn't changed by Adam Wight
 * - Focus the input after switching to the content pane by Adam Wight
 * - Remove unused autofocus code by Adam Wight
 * - Use "Add template" label in the sidebar and as the header by Andrew Kostka
 * - Refine height calculation of template parameter docs by Thiemo Kreuz
 * - Use full dialog width for add template input on mobile by Andrew Kostka
 * - Remove selection when selected parameter is unchecked by WMDE-Fisch
 * - Remove max-width limitation on inputs for mobile skin by Adam Wight
 * - Shorten text for add buttons by Adam Wight
 * - Restore selection after keyboard parameter navigation by Adam Wight
 * - Drop unused `active` state by Adam Wight
 * - Always scroll to current page by Adam Wight
 * - selenium: Enable all tests by Esther Akinloose

Wikibase

 * - REST: Add "DELETE statement" endpoints to OpenAPI by Ollie Shotton
 * - Deprecate LanguageFallbackLabelDescriptionLookupFactory by Lucas Werkmeister
 * - Fix HistoryEntityAction::getPageTitle escaping by Lucas Werkmeister
 * - Stop using rawParams in HistoryEntityAction by Lucas Werkmeister
 * - Inject RedirectResolvingLatestRevisionLookup into WikibaseValueFormatterBuilders by Lucas Werkmeister
 * - Create FallbackLabelDescriptionLookupFactory service by Lucas Werkmeister
 * - REST: Homogenize object keys in OpenAPI schema by Ollie Shotton
 * - REST: Fix examples in OpenAPI schema by Ollie Shotton
 * - Extract RedirectResolvingLatestRevisionLookup service by Lucas Werkmeister
 * - Add profile parameter to entity search APIs by Lucas Werkmeister
 * - Use SelectQueryBuilder in PropertyInfoTable, SiteLinkTable by Lucas Werkmeister
 * - Use SelectQueryBuilder in DispatchStats by Lucas Werkmeister
 * - Add strict types to DiffView classes by Lucas Werkmeister
 * - Use WordLevelDiff for site link titles by Lucas Werkmeister
 * - Prepare switching to WordLevelDiff in SiteLinkDiffView by Lucas Werkmeister
 * - Remove unused $path from BasicDiffView classes by Lucas Werkmeister
 * - Use WordLevelDiff for Labels/Description/Aliases by Noa wmde
 * - Disable cache in WikibasePingbackTest by daniel

WikibaseCirrusSearch

 * - Remove no-longer-used Phan suppression by Lucas Werkmeister
 * - Pass $searchProfiles into SearchEntities API by Lucas Werkmeister

WikibaseLexeme

 * - Remove obsolete TODO comments by Michael Große
 * - Use FallbackLabelDescriptionLookupFactory in LexemeHandler by Lucas Werkmeister
 * - Use FallbackLabelDescriptionLookupFactory for meta tags creator by Lucas Werkmeister
 * - Use FallbackLabelDescriptionLookupFactory for Form formatter by Lucas Werkmeister
 * - Use FallbackLabelDescriptionLookupFactory for Lexeme formatter by Lucas Werkmeister
 * - Use FallbackLabelDescriptionLookupFactory for Form ID formatter by Lucas Werkmeister
 * - Use FallbackLabelDescriptionLookupFactory for Lexeme ID formatter by Lucas Werkmeister

WikibaseMediaInfo

 * - Remove usage of protection related deprecated Title function by Umherirrender

WikibaseQualityConstraints

 * - Use SelectQueryBuilder by Lucas Werkmeister

Wikidata.org

 * - Add messages for the sidebar by Amir E. Aharoni

WikiEditor

 * - Realtime Preview: add mediawiki.storage module dependency by Sam Wilson
 * - Realtime Preview: don't hide diff view on refresh by MusikAnimal
 * - Realtime Preview: only add window-resize handler if toolbar button is used by Sam Wilson

WikiLambda

 * - build: Upgrade grunt to v1.5.3 by James D. Forrester
 * - build: Upgrade grunt-banana-checker to v0.10.0 by James D. Forrester
 * - Migrate Database::select usages to SelectQueryBuilder by Ori Livneh
 * - package.json: Add coverage command by Kosta Harlan
 * - Restrict ZObjectType that chooses typed list to only search and return Z4s by adesoji
 * - Fix benjamin arrays when adding new aliases by gengh
 * - Dialog components: allow HTML values, action buttons optional by dmartin
 * - Update function-schemata sub-module to HEAD (633e437) by gengh

WikimediaMaintenance

 * - Use abstract schema sql file for Flow by Umherirrender
 * - Fix path of sql files for Flow by Umherirrender
 * - addWiki.php: Fix path of sql files for Math by Umherirrender

WikimediaMessages

 * - Add messages for Banjar Wiktionary (bjnwiktionary) by gerritbot
 * - Update XTools en variable by AnaïsGueyte
 * - Add messages for language entity search profile by Lucas Werkmeister

Wikistories

 * - Instrumentation: use location.host instead of new mw.Uri.host by Stephane Bisson
 * - Make Story/Story_Talk namespace localizable and localized to ID language by Huei Tan
 * - nojs form localization by Huei Tan
 * - Localize Special:StoryBuilder to ID language by Huei Tan

MinervaNeue

 * - Group.php: Hard deprecate insertAfter function by suecarmol

Vector

 * - CSS cleanup: Revise CSS that is no longer needed per FIXME guidelines  by Jon Robson
 * - TOC: CSS clean up and spacing fix by bwang
 * - Restore #siteSub font size by bwang
 * - [Storybook] Fixes state of various components by Jon Robson
 * - TOC scrollbar should not fade by Clare Ming
 * - Move Vector menu class logic into Menu mustache template by Jon Robson
 * - Layout: Title should always be above tabs by Jon Robson
 * - Layout: Fixes table of contents alignment issues by Jon Robson

VisualEditor/VisualEditor

 * - Insert content at click coords when middle click pasting to a blurred surface by Ed Sanders
 * - Don't create selection when middle-click pasting into empty paragraph by Ed Sanders
 * - Allow middle-click pasting to happen next to the current selection by Ed Sanders
 * - Fix middle click to paste behaviour by Ed Sanders

No changes

 * 3D
 * AdvancedSearch
 * AntiSpoof
 * ApiFeatureUsage
 * ArticleCreationWorkflow
 * ArticlePlaceholder
 * Babel
 * BetaFeatures
 * BounceHandler
 * Calendar
 * CampaignEvents
 * Campaigns
 * Capiunto
 * CategoryTree
 * CentralNotice
 * CharInsert
 * ChessBrowser
 * Cite
 * CiteThisPage
 * Citoid
 * CodeEditor
 * CodeMirror
 * Cognate
 * Collection
 * CologneBlue
 * CommonsMetadata
 * CongressLookup
 * ContactPage
 * CreditsSource
 * Dashiki
 * Disambiguator
 * DismissableSiteNotice
 * DoubleWiki
 * Elastica
 * ElectronPdfService
 * EntitySchema
 * EventBus
 * EventLogging
 * EventStreamConfig
 * ExtensionDistributor
 * ExternalGuidance
 * FeaturedFeeds
 * FileExporter
 * FundraiserLandingPage
 * FundraisingTranslateWorkflow
 * GWToolset
 * Gadgets
 * GeoData
 * GlobalPreferences
 * GlobalUsage
 * GlobalUserPage
 * GlobalWatchlist
 * GoogleNewsSitemap
 * Graph
 * GuidedTour
 * ImageMap
 * InputBox
 * Insider
 * Interwiki
 * InterwikiSorting
 * Josa
 * JsonConfig
 * LabeledSectionTransclusion
 * LandingCheck
 * LdapAuthentication
 * Linter
 * Listings
 * LoginNotify
 * MachineVision
 * MapSources
 * Math
 * MediaModeration
 * MobileApp
 * MobileFrontend
 * Modern
 * MonoBook
 * NavigationTiming
 * NearbyPages
 * NewUserMessage
 * Nostalgia
 * Nuke
 * OAuthRateLimiter
 * ORES
 * PageAssessments
 * PageNotice
 * PageViewInfo
 * PagedTiffHandler
 * ParserFunctions
 * PdfHandler
 * Poem
 * PoolCounter
 * Popups
 * ProofreadPage
 * PropertySuggester
 * QuickSurveys
 * Quiz
 * ReadingLists
 * RelatedArticles
 * Renameuser
 * RevisionSlider
 * SandboxLink
 * Score
 * SearchExtraNS
 * ShortUrl
 * SimilarEditors
 * SiteMatrix
 * SpamBlacklist
 * StopForumSpam
 * SubPageList3
 * SubpageSortkey
 * SyntaxHighlight_GeSHi
 * TemplateData
 * TemplateSandbox
 * TemplateWizard
 * TextExtracts
 * TheWikipediaLibrary
 * TimedMediaHandler
 * Timeless
 * TitleBlacklist
 * TocTree
 * TorBlock
 * TwoColConflict
 * UniversalLanguageSelector
 * UploadsLink
 * UrlShortener
 * VipsScaler
 * WebAuthn
 * WikiLove
 * WikibaseLexemeCirrusSearch
 * WikidataPageBanner
 * WikimediaApiPortal
 * WikimediaApiPortalOAuth
 * WikimediaBadges
 * WikimediaEditorTasks
 * WikimediaEvents
 * WikimediaIncubator
 * Wikisource
 * XAnalytics
 * cldr
 * intersection
 * timeline
 * wikihiero

Total changes
328 Changes in 57 repos by 74 authors