MediaWiki 1.40/wmf.7/Changelog

Core changes

 * - Branch commit for wmf/1.40.0-wmf.7 by trainbranchbot
 * - When importing revision with same timestamp as latest revision, treat it as the new latest by Bartosz Dziewoński
 * - RandomImageGenerator::getImageSpec: Don't pass a float to mt_rand, for PHP 8.1 by James D. Forrester
 * - Use buildComparison instead of raw SQL in CategoryMembershipChangeJob by Bartosz Dziewoński
 * - Use buildComparison instead of raw SQL in REST API by Bartosz Dziewoński
 * - Article: Handle revision with same timestamp in showPatrolFooter by Umherirrender
 * - Use buildComparison instead of raw SQL in API list=categorymembers by Bartosz Dziewoński
 * - Use buildComparison instead of raw SQL in API prop=linkshere and friends by Bartosz Dziewoński
 * - Use buildComparison instead of raw SQL in API list=backlinks and friends by Bartosz Dziewoński
 * - Convert SkinComponentMenu `is-empty` from string to boolean  by Nicholas Ray
 * - phan: Remove local override of suppress_issue_types by Kevin Israel
 * - Article: Fix missing patrol link for pages that have been moved by xiplus
 * - SiteStats: Use the null coalescing assignment operator by Kevin Israel
 * - GIFMetadataExtractor: Add exception for more fread calls by Umherirrender
 * - Allow setting min/max on DateInputWidget by tacsipacsi
 * - Use short array destructuring instead of list by Tim Starling
 * - Use array_key_first/array_key_last in some places by Tim Starling
 * - Use the null coalescing assignment operator by Tim Starling
 * - ScrambleMappingTest: mark skipped if the extensions are not present by Tim Starling
 * - Pass linkOptions to menu items by Jon Robson
 * - Add a new RC filter to filter account creations. by Brian Wolff
 * - Add portlet support for after html in the SkinComponentMenu.php by Moh'd Khier Abualruz
 * - Feed: Move feed-related classes to Feed/ and namespace them by Amir Sarabadani
 * - Add efficient LanguageCode::bcp47ToInternal helper by C. Scott Ananian
 * - objectcache: Deprecate WANObjectCache::reap and ::reapCheckKey by Timo Tijhof
 * - Make IDE not complain on `createNoOpMock` & `createNoOpAbstractMock` by Derick Alangi
 * - When calling mail, use an array for headers by Tim Starling
 * - Sync up core repo with Parsoid by Subramanya Sastry
 * - Upgrading wikimedia/xmp-reader (0.8.4 => 0.9.0) by Reedy
 * - SpecialNewFiles: Reject invalid mediatype= values to avoid bad query by Timo Tijhof
 * - Call setFormIdentifier on LogEventsList form by Brian Wolff
 * - rdbms: improve LoadBalancer connection pool reuse (ii) by Aaron Schulz
 * - rdbms: remove DB domain parameter from various lag/read-only methods by Aaron Schulz
 * - Remove SkinTemplate::getPortletData and SkinTemplate::getPortletLabel by Moh'd Khier Abualruz
 * - schema: Add new fields for externallinks so we can reduce duplication by Amir Sarabadani
 * - GetBlockErrorMessageKey: Add typehints and improve documentation by Thalia
 * - Add default value for search-thumbnail-extra-namespaces by Matthias Mullie
 * - Fix date formats for Inari Sámi and Skolt Sámi by Jon Harald Søby
 * - OutputPageTest: Adjust testAddBodyClasses by Func
 * - tests: Avoid WikiPage in ImportableOldRevisionImporterTest by Umherirrender
 * - SpecialContribute: Avoid unnecessary redirects and optimise showing logics by Func
 * - Add Arakanese (rki) to Names.php by Amir E. Aharoni
 * - Make HtmlOutputRendererHelper more flexible by daniel
 * - lockmanager: remove MysqlLockManager and DBLockManager by Aaron Schulz
 * - Settings: add support for obsolete config by daniel
 * - Improve special pages to sort by primary key along with timestamp by Umherirrender

Vendor

 * - Bump wikimedia/parsoid to 0.17.0-a4     by Subramanya Sastry
 * - Upgrading wikimedia/xmp-reader (0.8.4 => 0.9.0) by Reedy
 * - Downgrade lcobucci/jwt (4.2.1 => 4.1.5) by Alexander Vorwerk

AbuseFilter

 * - AbuseFilterPermissionManager: Add sitewide block check by samtar

BetaFeatures

 * - Add PreferencesGetIconHook by suecarmol

CampaignEvents

 * - selenium: Enable Event Registration requires event data by Vaughn Walters
 * - Remove the 'wp' prefix for 'hide-if' parameter of field descriptor by Func

CheckUser

 * - Split the MultiLock links if the length exceeds 2000 characters by dreamyjazz
 * - Add multiple integration tests for Hooks.php by dreamyjazz
 * - Revert "Add multiple integration tests for Hooks.php" by Zabe

CirrusSearch

 * - Fix metric CirrusSearch._cluster_.updates.all.doc_size by David Causse
 * - Fix category field name in example by Matthias Mullie

Cite

 * - Restore styling for cite warnings by mainframe98
 * - Add language specific CSS overrides for a few languages by Subramanya Sastry
 * - Parsoid CSS: Update default styles to reduce needed overrides by Subramanya Sastry

ContentTranslation

 * - SX save api: Die with an error when target title cannot be created by NikG
 * - Add Retry MT snapshot and test file. by wangombe

DiscussionTools

 * - Don't insert reply tool outside on mobile by Bartosz Dziewoński
 * - Add test case for wrappers on mobile by Bartosz Dziewoński
 * - Retry without RESTBase when the page/revision seems to be missing by Bartosz Dziewoński
 * - Remove oldid from URL when refreshing page by Ed Sanders
 * - ThreadItemStoreTest: Add test for old revisions of indistinguishable comments by Bartosz Dziewoński
 * - ThreadItemStore: Fix updates for identical revision timestamps by Bartosz Dziewoński
 * - ThreadItemStoreTest: Add test for identical revision timestamps by Bartosz Dziewoński
 * - ThreadItemStoreTest: Use a consistent ordering for the output by Bartosz Dziewoński
 * - ThreadItemStore: Remove long comment no one is ever going to read by Bartosz Dziewoński
 * - ReplyLinksController: Skip empty reply buttons container by Func
 * - Fix parsing of non-English titles in JS tests by Bartosz Dziewoński
 * - Separate out mobile init from controller.js by Ed Sanders
 * - Add 'wpTextbox1' to parameters that disable new topic tool by Bartosz Dziewoński
 * - EventDispatcher: Remove reference to $wgWMESchemaEditAttemptStepOversample by Sam Smith
 * - logger: Also log VisualEditorFeatureUsage events via Metrics Platform by Sam Smith
 * - logger: Use wgWMESchemaVisualEditorFeatureUseSamplingRate config variable by Sam Smith
 * - CommentFormatter: Always add the overflow menu by Bartosz Dziewoński
 * - Fire wikipage.content hook on edit notices by Bartosz Dziewoński

DonationInterface

 * - Update SmashPig to v0.8.3.5 by cstone
 * - Update SmashPig to v0.8.3.4 by cstone
 * - Update SmashPig to version v0.8.3.3 by cstone
 * - Add test for new gateway adapter session_resetOnSwitch scenario by jgleeson
 * - Update smashPig to 0.8.3.2 by wfan
 * - Show error form when error in getPaymentMethods by Elliott Eggleston
 * - Catch errors in setClientVariables by Elliott Eggleston
 * - Stop redirecting on Adyen failure by Elliott Eggleston

Echo

 * - Add PreferencesGetIconHook by suecarmol

Gadgets

 * - Add support for ES6 gadgets, but with validation disabled by Siddharth VP

GlobalBlocking

 * - Add GlobalBlock::isCreateAccountBlocked to GlobalBlocking by AnaïsGueyte

Graph

 * - Cast graph tag input to string by Brian Wolff

GrowthExperiments

 * - Translate Special:EnrollAsMentor name into Polish by Msz2001
 * - MenteeOverview: Fix link under "reverted" column by Martin Urbanec
 * - phan: Set minimum target PHP version to 7.4 by Kosta Harlan
 * - User impact: adapt content margin/padding when by Sergio Gimeno
 * - Mentee overview: move info popover components to vue-components by Sergio Gimeno
 * - DataTableCellMentee: Strike-through suppressed mentees by Martin Urbanec
 * - UserImpactLookup: Switch to Computed as the default service by Kosta Harlan
 * - UserImpact: Add config flag to globally disable new impact module by Kosta Harlan
 * - SpecialEditGrowthConfig: Update description of "Mentorship" by Martin Urbanec
 * - User impact: use Codex typography scale by Sergio Gimeno
 * - LocalSettingsSetup: Add more shared functionality by Kosta Harlan
 * - User impact: display best streak data in scorecards by Sergio Gimeno

IPInfo

 * - Add mediawiki.user to list of dependencies by tsepothoabala

JsonConfig

 * - Cast to string before using ctype_digit by Brian Wolff

Kartographer

 * - Fix lint warning by Adam Wight
 * - Mark the close map dialog button with role button by Derk-Jan Hartman
 * - Allow "Set" by Adam Wight
 * - Document debouncing TODO by Adam Wight
 * - Add clustering for the nearby feature by WMDE-Fisch
 * - Slightly move popup handler creation by WMDE-Fisch
 * - Consider thumbnail width/height when rendering nearby popups  by thiemowmde
 * - Revert "Add ability to add caption to maps in VE" by Svantje Lilienthal
 * - Use class to toggle focusBox availability by WMDE-Fisch
 * - Add ability to add caption to maps in VE by Svantje Lilienthal
 * - Show an outline on the map when using keyboard nav by WMDE-Fisch
 * - Feature flag to disable Wikivoyage Nearby by Adam Wight
 * - Move Api….php classes into an Api namespace by thiemowmde
 * - Remove dead code from fullscreen map code by Thiemo Kreuz

MassMessage

 * - PHPCS: Fix MediaWiki.Commenting.FunctionComment.MissingDocumentationProtected rule by Zoran Dori
 * - Remove unused dependency from ext.MassMessage.special.js by Kunal Mehta
 * - content: Render local links as red if they don't exist by Kunal Mehta

Math

 * - Add Integration for the TexVC-PHP check to Math by Stegmujo
 * - Create Tests for Parser and TexVC by Stegmujo
 * - Add Node and Util fixes for Parser.php by Stegmujo
 * - Add TexVC with Check functionality by Stegmujo
 * - Add Grammar and Parser Functionalities by Stegmujo
 * - Add Builder for creating Parser.php by Stegmujo

MobileFrontend

 * - schemaVisualEditorFeatureUse: Also log via Metrics Platform by Sam Smith
 * - Page: Remove unused methods #getSection/#getSections and support code by Bartosz Dziewoński

PageTriage

 * - selenium: Initial framework setup and first test by Kosta Harlan
 * - statsv: Add error counters to delete/tags .js by TheresNoTime
 * - Add $wgPageTriageMaxNoIndexAge configuration variable by NovemLinguae
 * - CurationToolbar: Allow page curation of own pages, if you are  by MPGuy2824
 * - Hooks: Log to statsd when a page is noindex'd by TheresNoTime
 * - NewPagesFeed: Allow the Refresh button to work even when by MPGuy2824

Phonos

 * - Add instrumentation with statsv by hmonroy

ProofreadPage

 * - Fix floating footer and wikieditor UI issue. by Sohom
 * - Drops prefetching previous and next pages by Tpt

Score

 * - Trace command execution in generatePngAndMidi.sh by Tim Starling

SearchVue

 * - Reduce CirrusDoc request payload by Simone Cuomo
 * - Add the ability for the Search preview to be closed on imageless pages by Simone Cuomo
 * - Fix arrow & hover by Matthias Mullie
 * - Set aspect ratio ahead of time & remove fixed heights  by Matthias Mullie
 * - Tutorial/message to introduce quick view and inform users of quick view turn on/off option by Vadim Kovalenko

TimedMediaHandler

 * - Use floor before mod operation to prevent warning in php 8.1 by Brian Wolff
 * - Inject config by Fomafix

Translate

 * - Update version for MLEB 2022.10 by Abijeet
 * - Tux: Decrease time to display validation warnings to 1 second by wangombe
 * - Hide message api load errors before displaying them again by Abijeet
 * - Do not throw exception if translatable page status cannot be determined by Abijeet
 * - RevTagStore: Use getLatestRevisionsForTags in getLatestRevisionWithTag by Abijeet
 * - Add script to sync translatable bundle status from the rev_tag table by Abijeet
 * - Do not add anchor heading if translate tag has nowrap attribute by Abijeet
 * - Add warning when a variant of source language is selected by wangombe
 * - Update translatable page status on delete & removal from translation by Abijeet
 * - Track status of translatable page in translatable_bundle_status table by Abijeet
 * - Add table to store status for translatable bundles by Abijeet

UniversalLanguageSelector

 * - Update version for MLEB 2022.10 by Abijeet

VisualEditor

 * - Add further debugging information by Jon Robson
 * - Allow 'nofollow' on external links in Parsoid output by Bartosz Dziewoński
 * - Update VE core submodule to master (65c6a2ff5) by Bartosz Dziewoński
 * - Bump requested Parsoid HTML version to 2.6.0 by Arlo Breault
 * - Update VE core submodule to master (8fd8d1451) by Bartosz Dziewoński
 * - Pick ParsoidClient implementation based on etag. by daniel
 * - logger: Also log VisualEditorFeatureUsage events via Metrics Platform by Sam Smith
 * - Use wgWMESchemaVisualEditorFeatureUseSamplingRate config variable by Sam Smith
 * - selenium: Toolbar should open switch editor by Esther Akinloose
 * - selenium: Content editable should insert a table by Željko Filipin

Wikibase

 * - REST: Update swaggest/json-diff to v3.10 by Ollie Shotton
 * - Lock data-values versions in composer.json by Lucas Werkmeister
 * - REST: Add optional 'context' field to errors by Ollie Shotton
 * - Remove superfluous argument from getMaxLag call by Jakob Warkotsch
 * - Update Termbox (don’t hydrate DOM) by Lucas Werkmeister
 * - Make the doc building for search aware of the revision by David Causse

WikibaseMediaInfo

 * - build: Upgrade jQuery test install to 3.6.1 to align with MediaWiki by James D. Forrester

WikibaseQualityConstraints

 * - Use typed properties in Context classes by Lucas Werkmeister

Wikidata.org

 * - Add an integration test for updateQueryServiceLag  by Marius Hoch
 * - Only generate QS maxlag for pooled servers  by addshore

WikiEditor

 * - Hooks: Use $revId of -1 for ::logEvent calls by Sam Smith

WikiLambda

 * - Delete Work Summary component and all its references. by ddw
 * - eslint: Clean up a few small lint warnings and enforce so they don't recur by Julia Kieserman
 * - Add integration tests for attaching and detaching an implementation. by ddw
 * - Correct 2 calls to ZTypedList::buildType by dmartin
 * - Follow-up 682133b7: Disable sticky mode in fallback editor by Florent
 * - Mobile: align confirmation box vertically despite vertical scroll by Florent
 * - Update function-schemata sub-module to HEAD (2015e4a) by James D. Forrester
 * - Fix input argument lists misaligned by moving "add another input" below by Florent

WikimediaMessages

 * - Add messages for Assamese Wikiquote (aswikiquote) by gerritbot
 * - Add messages for Gun Wikiquote (guwwikiquote) by gerritbot
 * - Add messages for Shan Wikibooks (shnwikibooks) by gerritbot

Wikistories

 * - Use first value when author is an array by Stephane Bisson

MinervaNeue

 * - Fix a11y logged in test case on beta by bwang
 * - max-width only applies to thumbs by Arlo Breault
 * - hooks: reference PreferencesGetLayout docs by jsn
 * - Bump nvmrc to 14.17.5 to match Wikimedia CI infrastructure. by bwang

Vector

 * - Features: Make max width a feature  by Jon Robson
 * - i18n: Remove unnecessary comma in preference description by Moh'd Khier Abualruz
 * - Use WebRequest directly in Hooks::shouldDisableMaxWidth by Umherirrender
 * - search: Add wprov to result URLs by Lucas Werkmeister
 * - Add vector-tab-noicon class to tabbed menus when menu items are added by gadgets by Nicholas Ray
 * - Fix Vector 22 missing user menu on private wikis by Nicholas Ray
 * - Update package-lock.json to lockfileVersion 2 by Lucas Werkmeister
 * - i18n: Rename some messages to follow common practice by Func
 * - i18n: Fix typo and simplify preference description by Jon Robson
 * - Set width of preview to match reading by Sam Wilson
 * - Follow-up 76d1135: Use better practice in the code by Func

VisualEditor/VisualEditor

 * - Only inspect data when it is actually available by Derk-Jan Hartman
 * - Add setTimeout to re-focus when opening SpecialCharacterDialog by Ed Sanders
 * - Revert "Verify key before removing node from InternalList" by Chlod Alejandro
 * - Verify key before removing node from InternalList by ChlodAlejandro

No changes

 * 3D
 * ActiveAbstract
 * AdvancedSearch
 * AntiSpoof
 * ApiFeatureUsage
 * ArticleCreationWorkflow
 * ArticlePlaceholder
 * Babel
 * BounceHandler
 * Calendar
 * Campaigns
 * Capiunto
 * CategoryTree
 * CentralAuth
 * CentralNotice
 * CharInsert
 * ChessBrowser
 * CiteThisPage
 * Citoid
 * CodeEditor
 * CodeMirror
 * Cognate
 * Collection
 * CologneBlue
 * CommonsMetadata
 * ConfirmEdit
 * ContactPage
 * CreditsSource
 * Dashiki
 * Disambiguator
 * DismissableSiteNotice
 * DoubleWiki
 * Elastica
 * ElectronPdfService
 * EntitySchema
 * EventBus
 * EventLogging
 * EventStreamConfig
 * ExtensionDistributor
 * ExternalGuidance
 * FeaturedFeeds
 * FileExporter
 * FileImporter
 * FlaggedRevs
 * Flow
 * FundraiserLandingPage
 * FundraisingTranslateWorkflow
 * GWToolset
 * GeoCrumbs
 * GeoData
 * GlobalCssJs
 * GlobalPreferences
 * GlobalUsage
 * GlobalUserPage
 * GlobalWatchlist
 * GoogleNewsSitemap
 * GuidedTour
 * ImageMap
 * ImageSuggestions
 * InputBox
 * Insider
 * Interwiki
 * InterwikiSorting
 * Josa
 * LabeledSectionTransclusion
 * LandingCheck
 * LdapAuthentication
 * Linter
 * LiquidThreads
 * Listings
 * LoginNotify
 * MachineVision
 * MapSources
 * MediaModeration
 * MediaSearch
 * MobileApp
 * Modern
 * MonoBook
 * MultimediaViewer
 * NavigationTiming
 * NearbyPages
 * NewUserMessage
 * Newsletter
 * Nostalgia
 * Nuke
 * OATHAuth
 * OAuth
 * OAuthRateLimiter
 * ORES
 * OpenStackManager
 * PageAssessments
 * PageImages
 * PageNotice
 * PageViewInfo
 * PagedTiffHandler
 * ParserFunctions
 * PdfHandler
 * Poem
 * PoolCounter
 * Popups
 * PropertySuggester
 * QuickSurveys
 * Quiz
 * RSS
 * ReadingLists
 * RelatedArticles
 * Renameuser
 * RevisionSlider
 * SandboxLink
 * Scribunto
 * SearchExtraNS
 * SecureLinkFixer
 * SecurePoll
 * ShortUrl
 * SimilarEditors
 * SiteMatrix
 * SpamBlacklist
 * StopForumSpam
 * SubPageList3
 * SubpageSortkey
 * SyntaxHighlight_GeSHi
 * TemplateData
 * TemplateSandbox
 * TemplateStyles
 * TemplateWizard
 * TextExtracts
 * Thanks
 * TheWikipediaLibrary
 * Timeless
 * TitleBlacklist
 * TocTree
 * TorBlock
 * TranslationNotifications
 * TrustedXFF
 * TwoColConflict
 * UploadWizard
 * UploadsLink
 * UrlShortener
 * VipsScaler
 * WebAuthn
 * WikiLove
 * WikibaseCirrusSearch
 * WikibaseLexeme
 * WikibaseLexemeCirrusSearch
 * WikidataPageBanner
 * WikimediaApiPortal
 * WikimediaApiPortalOAuth
 * WikimediaBadges
 * WikimediaEditorTasks
 * WikimediaEvents
 * WikimediaIncubator
 * WikimediaMaintenance
 * Wikisource
 * XAnalytics
 * cldr
 * intersection
 * timeline
 * wikihiero

Total changes
213 Changes in 42 repos by 86 authors