MediaWiki 1.39/wmf.9/Changelog

Core changes

 * - Branch commit for wmf/1.39.0-wmf.9 by trainbranchbot
 * - Handle webm files with AV1 and/or nullbyte terminated VP8/9 by Derk-Jan Hartman
 * - Don't assume LocalSettings exists in unit tests by Aryeh Gregor
 * - resourceloader: Update wikimedia/minify to 2.3.0 by Timo Tijhof
 * - rdbms: fix stray parenthesis in DatabaseMysqlBase::doFlushSession by Aaron Schulz
 * - rdbms: cleanup documentation about error code types by Aaron Schulz
 * - Move wfRequireOnceInGlobalScope to TestSetup by Daimona Eaytoy
 * - rdmbs: Start of SQLPlatform to split out of Database by Amir Sarabadani
 * - Finish testing dynamic config by Aryeh Gregor
 * - GlobalIdGeneratorTest is not a unit test by Aryeh Gregor
 * - More dynamic config tests by Aryeh Gregor
 * - maintenance: Add support to mctest.php for SqlBagOStuff with LB by Aaron Schulz
 * - Fix documentation of includes/languages/data/Names.php by Fomafix
 * - Use more specific assertions in HTMLTitleTextField test by Thiemo Kreuz
 * - phpunit: Remove some unnecessary code from phpunit.php by Daimona Eaytoy
 * - Replace usage of UserGroupMembership::getGroupMemberName/getGroupName by Umherirrender
 * - rcfilters: Compare old and new option value with same datatype by Umherirrender
 * - diff: Replace deprecated User::getOption by Umherirrender
 * - editpage: Replace deprecated User::getOption by Umherirrender
 * - SpecialExport: Avoid using implicit joins by Amir Sarabadani
 * - objectcache: remove "multiPrimaryMode" DB type assertion by Aaron Schulz
 * - mediawiki.mixins: Remove Android <= 4.4 workarounds by Volker E
 * - mediawiki.mixins: Remove Firefox <= 38 workarounds by Volker E
 * - parser: Emit deprecation warnings from ParsoidServices by Alexander Vorwerk
 * - Remove fallback to MediaWikiServices in MovePage::__construct by Daimona Eaytoy
 * - filerepo: Duplicate code handling metadata of files to ArchivedFile by Amir Sarabadani
 * - api: Add support for LinksMigration in ApiQueryBacklinksprop by Amir Sarabadani
 * - build: Replace 'grade-a' by 'support-basic' in stylelint config by Volker E
 * - api: Add support for LinksMigration in ApiQueryAllLinks by Amir Sarabadani
 * - tests: Rename fixtures/bad.json by Reedy
 * - mediawiki.skinning: Make Form UI legend font consistent by lectrician1
 * - Replace deprecated Less `.box-shadow` mixin with standard CSS by Volker E
 * - mediawiki.mixins: Remove IE 9 & 10 workarounds by Volker E
 * - RELEASE-NOTES-1.39: Add note about bumped basic browser requirements   by Volker E
 * - Deprecate use of bottomscripts by Jon Robson
 * - Rename some variables in mediawiki.page.gallery.js by Arlo Breault
 * - RELEASE-NOTES: move note about 'undeletetalk' for action=undelete to 1.39 by MusikAnimal
 * - Deprecate Skin::getAction by Ammarpad
 * - DeletePage, UndeletePage: use plaintextParams when creating log message by MusikAnimal
 * - SpecialExport: Make querying templatelinks respect LinksMigration by Amir Sarabadani
 * - phan: Add internal stub Redis::SERIALIZER_IGBINARY by Sébastien Beyou
 * - Remove unnecessary Content-Type header for GET request by dylsss
 * - api: Avoid unneeded page join in list=logevents by Umherirrender

Vendor

 * - Bump parsoid to 0.16.0-a7 by Arlo Breault
 * - Update wikimedia/minify to 2.3.0 by Timo Tijhof
 * - README: mention to use composer 2.3.x by Reedy
 * - Bump parsoid to 0.16.0-a6      by Arlo Breault
 * - Commit changes from update --no-dev before bumping parsoid by Arlo Breault

AbuseFilter

 * - Remove index detection 'rev_page_timestamp' by Umherirrender

AdvancedSearch

 * - Replace deprecated Less `.box-shadow` mixin with standard CSS by Volker E

CentralAuth

 * - GlobalUserSelectQueryBuilder: Do not fatal when no users are returned by Martin Urbanec

CharInsert

 * - Replace Action::getActionName by IContextSource::getActionName by Umherirrender

CirrusSearch

 * - Prevent negative weights on BoostedQueriesFunction by joseph emmanuel kayode (iemarjay)
 * - Revert "Merge remote-tracking branch 'origin/es68'" by DCausse
 * - Migrate Profile Phpunit integration tests to Unit tests by joseph emmanuel kayode (iemarjay)
 * - Add unit tests for BoostedQueriesFunction by David Causse
 * - Move index settings under settings.index by David Causse
 * - Distinguish types of types related to indices by Erik Bernhardson
 * - Remove index type from index creation/mapping by Erik Bernhardson
 * - Replace index type with _doc by Erik Bernhardson
 * - include_type_name: Index creation and status by Erik Bernhardson
 * - Support only elastic 6.8.x by Erik Bernhardson
 * - Move ♙ from no-results to expect-results by Erik Bernhardson
 * - Repair browser bot integration by Erik Bernhardson

Cite

 * - Sync up with Parsoid citeParserTests.txt by Subramanya Sastry

cldr

 * - Remove Eastern Yiddish (ydd) by Amir E. Aharoni

CodeMirror

 * - Replace Action::getActionName by IContextSource::getActionName by Umherirrender

Collection

 * - Replace getUltimateredirectTarget with getRedirectTarget. by gerritbot

ContentTranslation

 * - CX3 Build 0.2.0+20220425 by Santhosh Thottingal
 * - Remove a few comments that literally repeat the code by Thiemo Kreuz
 * - SX: Fix infinite loading indicator for block templates by Santhosh Thottingal
 * - Add invitation for translation when creating article in mobile by NikG

DiscussionTools

 * - highlighter: Set the location hash for new topics on desktop as well by Bartosz Dziewoński
 * - Mobile empty state adjustments: hide image, bigger button by David Lynch
 * - highlighter: Ensure items in .ranges and .$element are in the same order by Bartosz Dziewoński
 * - ReplyWidget: Fix text-align when content and user language have different direction by Bartosz Dziewoński
 * - Avoid duplicating page content if there are multiple .mw-parser-output elements by Bartosz Dziewoński
 * - Fix highlighting and expanding of new topics on mobile  by Ed Sanders
 * - Replace Action::getActionName by IContextSource::getActionName by Umherirrender
 * - Remove limit on the number of topic subscriptions per user by Bartosz Dziewoński

DonationInterface

 * - Fix typo in next to last commit by Elliott Eggleston
 * - Adyen Checkout: reword comments, move config key by Elliott Eggleston
 * - Adyen Checkout: copy config by value not by reference by Elliott Eggleston
 * - Add credentials for Google Pay by cstone

Echo

 * - Move EchoPush\Api namespace to MediaWiki\Extension\Notifications\Push\Api by Reedy
 * - Move EchoPush namespace to MediaWiki\Extension\Notifications\Push by Reedy
 * - Move EchoOOUI namespace to MediaWiki\Extension\Notifications\OOUI by Reedy
 * - Namespace Hooks class by Reedy
 * - Handle the missing 'all' type as specified in the doc by lens0021
 * - updater: Improve updater for table echo_unread_wikis by Umherirrender

ElectronPdfService

 * - Replace Action::getActionName by IContextSource::getActionName by Umherirrender

FlaggedRevs

 * - Fix mistake in join condition by Amir Sarabadani
 * - Use LinksMigration for queries to templatelinks by Amir Sarabadani
 * - Replace Action::getActionName by IContextSource::getActionName by Umherirrender

Gadgets

 * - Use classic hook for CodeEditorGetPageLanguage by Fomafix

GeoData

 * - elastic: Call the _search endpoint from the index not the type by David Causse

GlobalBlocking

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

GrowthExperiments

 * - Account creation: update campaign value in isMarketingVideoCampaign by MewOphaswongse
 * - Add a legal notice to campaign landing pages by Gergő Tisza
 * - phpbench: tests for LinkRecommendationFilter and Special:Homepage by Kosta Harlan
 * - Add Link: Add array validation for excludedSections field by Kosta Harlan
 * - Welcome emails: update opt-in checkbox copy by Gergő Tisza
 * - Replace deprecated Less `.box-sizing` mixin with standard CSS by Volker E
 * - Add Link: Add 'excluded sections' task setting by Gergő Tisza
 * - Video landing page: Update copy and layout by Gergő Tisza
 * - Revert "Skip welcome surveys for users in the no-homepage control group" by Gergő Tisza
 * - RecentChanges: Fix newcomer task tags display by Kosta Harlan

IPInfo

 * - Normalize IPs before debounceLog by AnaïsGueyte
 * - Use 'info' icon for the popup button by AnaïsGueyte

Kartographer

 * - Add popups for the nearby markers by Andrew Kostka
 * - Add tests for the nearby geosearch query by Andrew Kostka
 * - Fix nearby query by Andrew Kostka
 * - Convert nearby results to GeoJSON and render  by Adam Wight
 * - Replace deprecated Less `.box-shadow` mixin with standard CSS by Volker E
 * - Geosearch request includes a User-Agent by Adam Wight
 * - Workaround for FlaggedRevs stable-revision caching  by Adam Wight
 * - Added geopoints by Svantje Lilienthal

LdapAuthentication

 * - Hooks: return false rather than strings on failure by Bryan Davis

MachineVision

 * - Use LinksMigration for queries to templatelinks by Amir Sarabadani

MassMessage

 * - Remove generate-html false optimization by Brian Wolff

MediaSearch

 * - build: Remove obsolete 'stylelint' config rule by Volker E
 * - Update application to Vue 3 Mode by adesoji

MobileFrontend

 * - Add a body class indicating mobilefrontend is active by David Lynch
 * - Allow skins to enable mobile edit by lens0021
 * - Replace Action::getActionName by IContextSource::getActionName by Umherirrender
 * - Style section headings using flexbox by Bartosz Dziewoński

MultimediaViewer

 * - Add word-break rule for `mw-mmv-image-links` to prevent overflow by stang

Popups

 * - Replace deprecated Less `.box-shadow` mixin with standard CSS by Volker E

ProofreadPage

 * - Style pagelist as a grid by DorianWinty
 * - Add support for LinksMigration in SpecialPagesWithoutScans by Amir Sarabadani

QuickSurveys

 * - build: Fix eslint config, use kebab-case for Vue component tags by Roan Kattouw
 * - Reduce public JavaScript API by Sam Smith

RelatedArticles

 * - Add jest testing infrastructure by Jon Robson

SubPageList3

 * - Inject config via contructor instead of creating in `makeList` by Derick Alangi

TemplateWizard

 * - Fix random template search result order in prefixsearch fallback by Thiemo Kreuz

TimedMediaHandler

 * - Position progress control above the other controls. by Derk-Jan Hartman
 * - Allow page indicators to load videoJS player by Derk-Jan Hartman
 * - Hide info page and subs button for Score players by Derk-Jan Hartman
 * - Provide a fallback width for players by Derk-Jan Hartman
 * - Remove not so useful pause in reject promise of play by Derk-Jan Hartman
 * - WebVideoTranscode: Whitespace cleanup by Reedy
 * - Unbreak Transcoding by Reedy
 * - Mark api timedtext 'trackformat' param as required by Brion Vibber

Translate

 * - ExportTranslation: Fix broken web view for WikiPageMessageGroups by Abijeet
 * - Update version for MLEB 2022.04 by Abijeet
 * - Update the warning message for VisualEditor by Isabelle Hurbain-Palatin
 * - Add MW < 1.38 compatibility for (success|warning) box CSS classes by Abijeet
 * - ExportTranslation: Check for FileBasedMessageGroup on exporting to file by Abijeet

TwoColConflict

 * - Rename misleading "current row number" by Thiemo Kreuz
 * - Fix index access error in ResolutionSuggester by Thiemo Kreuz

UniversalLanguageSelector

 * - Update version for MLEB 2022.04 by Abijeet
 * - Fix-ups to comments and User interface usages by Thiemo Kreuz

VisualEditor

 * - More tests for pasting external links by Bartosz Dziewoński
 * - Check for external url protocols during conversion by rvogel
 * - Update template search fallback to max out at 10 by Thiemo Kreuz
 * - Drop assumption that all template search index start at 1 by Thiemo Kreuz
 * - Update VE core submodule to master (6609cde00) by Bartosz Dziewoński
 * - Update VE core submodule to master (86de64d69) by Ed Sanders
 * - Disable useless "showMissing" option in TemplateTitleInputWidget by Thiemo Kreuz
 * - Move "index from redirect" logic up in template search widget by Thiemo Kreuz
 * - ApiVisualEditor: Fix 'stash' param validation (it's a boolean) by Bartosz Dziewoński
 * - Fix misleading variable name in TemplateTitleInputWidget by Thiemo Kreuz
 * - Replace non-breaking spaces in AUTHORS.txt by Thiemo Kreuz
 * - Fix API response default in TemplateTitleInputWidget by Thiemo Kreuz

Wikibase

 * - phpunit: Temporarily skip tests that depend on LoadBalancer signatures by Tim Starling
 * - Don’t assert text of parser output without HTML by Lucas Werkmeister
 * - Fix EntityHandlerTestCase::testPageProperties by Lucas Werkmeister
 * - REST: Use 308 instead of 301 for redirects by Jakob Warkotsch
 * - REST: Add schema test for Item redirects by Jakob Warkotsch
 * - REST: Added 301 response header specification by Leszek Manicki
 * - REST: Drop GetItemIntegrationTest by Jakob Warkotsch
 * - REST: Respond with 301 for item redirects by Jakob Warkotsch
 * - REST: Add a pattern to the If-None-Match header by Ollie Shotton
 * - REST: Set node version for eslint by Jakob Warkotsch
 * - REST: Fix accidental POST request by Jakob Warkotsch
 * - REST: Handle redirects in the GetItem use case by Jakob Warkotsch
 * - REST: Use ItemRevisionResult in ItemRevisionRetriever by Jakob Warkotsch
 * - REST: Flatten terms to strings in json output by sihe

WikibaseCirrusSearch

 * - Re-enable EntitySearchElasticFulltextTest by David Causse
 * - Temporarily silence EntitySearchElasticFulltextTest by David Causse

WikibaseLexeme

 * - Rename bsnl:* commands to snl:* by Lucas Werkmeister
 * - Show and filter language names in spelling variant lookup by Lucas Werkmeister
 * - Add missing strict_types by Lucas Werkmeister
 * - Improve languageNameLookup in LexemeViewFactory by Lucas Werkmeister
 * - Add language names to ResourceLoader module by Lucas Werkmeister
 * - Replace LexemeLanguageNameLookup service with -Factory by Lucas Werkmeister
 * - Ignore whitespace in user defined message L-ID by Michael Große
 * - Add info panel to special new-lexeme  by Michael Große
 * - Remove unused @vue/compat ResourceLoader module by Lucas Werkmeister
 * - Make `npm run fix` also fix styles by Michael Große
 * - Add the messages needed for the new NewLexeme info panel by Michael Große
 * - Bump Special New Lexeme to include lang code inference by Michael Große

WikibaseQualityConstraints

 * - Bump jasmine from 4.0.2 to 4.1.0 by Addbot
 * - Bump sinon from 13.0.1 to 13.0.2 by Addbot

WikiEditor

 * - Remove all unused "loading" code, messages and animations by Thiemo Kreuz
 * - Disable the realtime preview reload button during loading by Sam Wilson
 * - Reduce $wgWikiEditorRealtimeDisableDuration from 10 to 6 seconds by Sam Wilson
 * - Realtime Preview: make button toggle state more visible in MonoBook by MusikAnimal
 * - Fix return value of TitleInputWidget.looksLikeExternalLink by Sam Wilson
 * - Realtime Preview: display manual-reload bar when previews are slow by Sam Wilson

WikiLambda

 * - Fix multiple promises issue by Simone This Dot
 * - create function-viewer-examples component in the about page by adesoji
 * - create a composable API to fetch current screen size by Simone This Dot
 * - fetchZkeys resolve the incorrect promise by Simone This Dot

WikimediaMaintenance

 * - Drop cleanupBug31576 and support for LinksMigration to makeDumpList by Amir Sarabadani

WikimediaMessages

 * - Add messages for Gadget-CurIDLink.js and Gadget-SousPages.js by Base
 * - Add username in the IPInfo feedback title by AnaïsGueyte

Wikistories

 * - Hiding Wikistories behind a feature flag by Stephane Bisson
 * - Bring back the StoryViewer progress bars by Stephane Bisson
 * - Add space between stories titles and CTA by Stephane Bisson
 * - Fixed text selection help text by Stephane Bisson
 * - Publish form post-QA improvements by Stephane Bisson

MinervaNeue

 * - Set MobileFrontendEditorAvailableSkins attribute by lens0021
 * - [Tests] Strengthen the reference drawer test by Jon Robson
 * - Style section headings using flexbox by Bartosz Dziewoński

Nostalgia

 * - Nostalgia: Generate body of page only by Ammarpad

Timeless

 * - Timeless should only generate body of page by Jon Robson

Vector

 * - Always collapse Echo alert on "wide" headers by Jon Robson
 * - Fix empty space on left when bucketed in the control/unsampled group by Nicholas Ray
 * - Replace h2 in TOC with p and remove aria-hidden by bwang
 * - Replace Action::getActionName by IContextSource::getActionName by Umherirrender

VisualEditor/VisualEditor

 * - Allow testing import rules in ve.ce.Surface paste tests by Bartosz Dziewoński
 * - Re-apply "Fix for showing "invisible icon" when root node is hidden"" by Esanders

No changes

 * 3D
 * ActiveAbstract
 * AntiSpoof
 * ApiFeatureUsage
 * ArticleCreationWorkflow
 * ArticlePlaceholder
 * Babel
 * BetaFeatures
 * BounceHandler
 * Calendar
 * Campaigns
 * Capiunto
 * CategoryTree
 * CentralNotice
 * CheckUser
 * ChessBrowser
 * CiteThisPage
 * Citoid
 * CodeEditor
 * CodeReview
 * Cognate
 * CologneBlue
 * CommonsMetadata
 * ConfirmEdit
 * CongressLookup
 * ContactPage
 * CreditsSource
 * Dashiki
 * Disambiguator
 * DismissableSiteNotice
 * DoubleWiki
 * Elastica
 * EntitySchema
 * EventBus
 * EventLogging
 * EventStreamConfig
 * ExtensionDistributor
 * ExternalGuidance
 * FeaturedFeeds
 * FileExporter
 * FileImporter
 * Flow
 * FundraiserLandingPage
 * FundraisingTranslateWorkflow
 * GWToolset
 * GeoCrumbs
 * GlobalCssJs
 * GlobalPreferences
 * GlobalUsage
 * GlobalUserPage
 * GlobalWatchlist
 * GoogleNewsSitemap
 * Graph
 * GuidedTour
 * ImageMap
 * InputBox
 * Insider
 * Interwiki
 * InterwikiSorting
 * Josa
 * JsonConfig
 * LabeledSectionTransclusion
 * LandingCheck
 * Linter
 * LiquidThreads
 * Listings
 * LocalisationUpdate
 * LoginNotify
 * MapSources
 * Math
 * MediaModeration
 * MobileApp
 * Modern
 * MonoBook
 * NavigationTiming
 * NearbyPages
 * NewUserMessage
 * Newsletter
 * Nuke
 * OATHAuth
 * OAuth
 * OAuthRateLimiter
 * ORES
 * OpenStackManager
 * PageAssessments
 * PageImages
 * PageNotice
 * PageTriage
 * PageViewInfo
 * PagedTiffHandler
 * ParserFunctions
 * PdfHandler
 * Poem
 * PoolCounter
 * PropertySuggester
 * Quiz
 * RSS
 * ReadingLists
 * Renameuser
 * RevisionSlider
 * SandboxLink
 * Score
 * Scribunto
 * SearchExtraNS
 * SecureLinkFixer
 * SecurePoll
 * ShortUrl
 * SiteMatrix
 * SpamBlacklist
 * StopForumSpam
 * SubpageSortkey
 * SyntaxHighlight_GeSHi
 * TemplateData
 * TemplateSandbox
 * TemplateStyles
 * TextExtracts
 * Thanks
 * TheWikipediaLibrary
 * TitleBlacklist
 * TocTree
 * TorBlock
 * TranslationNotifications
 * TrustedXFF
 * UploadWizard
 * UploadsLink
 * UrlShortener
 * VipsScaler
 * WebAuthn
 * WikiLove
 * WikibaseLexemeCirrusSearch
 * WikibaseMediaInfo
 * Wikidata.org
 * WikidataPageBanner
 * WikimediaApiPortal
 * WikimediaApiPortalOAuth
 * WikimediaBadges
 * WikimediaEditorTasks
 * WikimediaEvents
 * WikimediaIncubator
 * Wikisource
 * XAnalytics
 * intersection
 * timeline
 * wikihiero

Total changes
223 Changes in 54 repos by 70 authors