MediaWiki 1.39/wmf.25/Changelog

Core changes

 * - Branch commit for wmf/1.39.0-wmf.25 by trainbranchbot
 * - mediawiki.util: Minor clean up and payload optimisation by Timo Tijhof
 * - mediawiki.base: Test importScript and re-use internal wikiUrlencode by Timo Tijhof
 * - ImportStreamSource::newFromURL Prevent passing null to fwrite by Reedy
 * - parser: Prepare to use a tag for the internal TOC_PLACEHOLDER   by C. Scott Ananian
 * - mediawiki.storage: Add support for expiry time to localStorage by Ed Sanders
 * - resourceloader: further optimize hot code in makeQueryString by DannyS712
 * - mediawiki.requestIdleCallback: Fix typo in comment by Ed Sanders
 * - api: Minor code cleanup by Reedy
 * - watcheditem: Migrate $db->select and similar to SelectQueryBuilder by Amir Sarabadani
 * - Improve docs of various ::getQueryInfo functions by Umherirrender
 * - api: Swap wfMessage for $this->msg by Reedy
 * - Remove experimental warning from MultiShardSiteStats by Lucas Werkmeister
 * - Don't hardcode Parsoid HTML version number in tests by Subramanya Sastry
 * - Migrate use of global to use of config settings by Derick Alangi
 * - Use spacey style also for code in comments and documentation by Fomafix
 * - mediawiki.htmlform: Inline var declarations by Fomafix
 * - mediawiki.page.preview: Fix documentation comment by Fomafix
 * - mediawiki.page.ready: Correct function documentation for checkbox by Jon Robson
 * - Remove mediawiki.skinning.content.externallinks by Jon Robson
 * - Move transformHtmlToWikitext and getSelserData to HTMLTransform by Derick Alangi
 * - Add linkTrail for Fula (ff) by Amir E. Aharoni
 * - Check for existence of 'wpWatchlistExpiryWidget' before infuse by Fomafix
 * - mediawiki.page.preview: Empty mw-summary-preview on empty summary by Fomafix
 * - DateFormatter: Move non-changing code out of anonymous function by Thiemo Kreuz
 * - SpecialBlock: Set defaults for wpPageRestrictions and wpNamespaceRestrictions  by Reedy
 * - Title: Add support for links migration in Title::getLinksTo by Amir Sarabadani
 * - maintenance: Add support for links migration to namespaceDupes.php by Amir Sarabadani
 * - rdbms: Clean up file doc comments by Timo Tijhof
 * - rdbms: Remove redundant error silencing for mysqlError by Timo Tijhof
 * - Allow doPagePreview to be used for pages other than the current one by Sohom
 * - rdbms: add getDomainChangeException call to DBConnRef::dbSchema by Aaron Schulz
 * - rcfilters: Don't remove #contentSub on Special:Watchlist by Bartosz Dziewoński
 * - api: Migrate IDatabase::select to SelectQueryBuilder interface by Derick Alangi
 * - DateFormatter: Turn private immutable properties into constants by Thiemo Kreuz
 * - Remove confusing ->onlyMethods( [] ) with empty array from tests by Thiemo Kreuz
 * - Inline a few more trivial createMock calls in tests by Thiemo Kreuz
 * - Use native array_column in ChangesListFilter code by Thiemo Kreuz
 * - DateFormatter: Rename reused variable name by Thiemo Kreuz
 * - ResourceLoader: Add test for mw.loader.state missing response by Timo Tijhof
 * - rdbms: add getDomainChangeException call to DBConnRef::tablePrefix by Aaron Schulz
 * - objectcache: avoid NO_REPLY use in pecl memcached client for TOUCH by Aaron Schulz
 * - rdbms: gently discourage tableNames and tableNamesN by Lucas Werkmeister
 * - Log a debug message when a search update is ignored... by David Causse

Vendor

 * - Bump wikimedia/parsoid to 0.16.0-a19  by Subramanya Sastry

CampaignEvents

 * - Remove "Event talk" message by Amir E. Aharoni
 * - Add translatable tab titles for Event and Event talk by Amir E. Aharoni
 * - Add Hebrew special page and namespaces names by Amir E. Aharoni
 * - Hide back link on EventDetails for non-organizers by Daimona Eaytoy
 * - Fix TypeError in RemoveParticipantsFromEventHandler by Daimona Eaytoy

CentralAuth

 * - Make failed login attempts store whether the password was correct by dreamyjazz

CheckUser

 * - Revert some triple equal checks due to incompatabilities on sqlite by dreamyjazz
 * - Migrate most MW Core hooks to HookHandler by Reedy
 * - Fix and narrow PHPCS exclusions by Reedy
 * - Minor code cleanup by Reedy
 * - Add tests for the CheckUser pagers and CheckUserLogService by dreamyjazz
 * - Refactor SpecialCheckUser.php checktype routing code by dreamyjazz
 * - Replace deprecated code with equivalent calls in SpecialCheckUser by dreamyjazz
 * - Use Mustache templates on the server side for result lines in CheckUser by dreamyjazz
 * - Fix literal \n in maintenance scripts by Daimona Eaytoy
 * - Override onDocumentMouseUp handler in InvestigateMenuSelectWidget by Thalia
 * - SpecialInvestigate: Make reading config more usual by Reedy
 * - Check expiry of blocks in Special:Investigate account info tab by dreamyjazz
 * - Add tests for the APIs and a test for SpecialCheckUser.php by dreamyjazz
 * - Organize file structure by STran
 * - Pass empty string to CheckUser::TimelineRowFormatter::getUserAgent when user_agent from the database is null by tsepothoabala
 * - Fix keyboard UI in Special:Investigate results table by Thalia

CirrusSearch

 * - Revert "reindex: Detect index type from live mappings" by Ebernhardson
 * - Add apostrophe filter to the character filter nia wiki by joseph emmanuel kayode (iemarjay)

CodeMirror

 * - ext.CodeMirror.js: Keep at 100% parent width by samtar

ContentTranslation

 * - CX3 Build 0.2.0+20220816   by Santhosh Thottingal
 * - SX recent translation entrypoint: Use anchor instead of button by NikG
 * - SX recent translation entrypoint: Fix dialog visibility by NikG

DiscussionTools

 * - Migrate usage of Database::select (and friends) to SelectQueryBuilder by Bartosz Dziewoński
 * - Store permalink data, implement Special:FindComment/GoToComment by Bartosz Dziewoński
 * - CommentFormatter: Set 'data-mw-comment' even when reply tool disabled by Bartosz Dziewoński
 * - Add signature on separate line if wikitext comment ends with a list by Bartosz Dziewoński
 * - Avoid dependency on Minerva for the mobile "Add topic" button label by Bartosz Dziewoński
 * - Initialize on live preview and real-time preview too by Bartosz Dziewoński

DonationInterface

 * - GatewayChooser: fix submethod country bug, add comments by Elliott Eggleston
 * - GatewayChooser: check country restriction on method by Elliott Eggleston
 * - Show plain GPay button rather than wrong language by Elliott Eggleston
 * - Adyen: extract i18n function, map nb->no by Elliott Eggleston
 * - Update smashpig version to 0.8.2.5 by Damilare Adedoyin
 * - Adyen: send 'card on file' for MC tokenization by Elliott Eggleston
 * - Update smashpig version to 0.8.2.4 by Damilare Adedoyin
 * - Log errors with payment method lookup by Elliott Eggleston
 * - Fix zIndex for autocomplete menu by Damilare Adedoyin
 * - Add en6c countries to Adyen priority rule by Elliott Eggleston
 * - Make employer autocomplete use POST by Elliott Eggleston
 * - Add missing supported countries in Paypal present in Braintree by Damilare Adedoyin
 * - Add Braintree recurring by cstone

Echo

 * - schema: Remove IF EXISTS from DROP FOREIGN KEY by Umherirrender

FileImporter

 * - Rename editPageShowEditFormInitial to onEditPage__showEditForm_initial by Fomafix

Flow

 * - Update use statement following file restructure in CheckUser by dreamyjazz

Gadgets

 * - Remove default values for the constructor of SpecialPage by Fomafix

GrowthExperiments

 * - WikitextMentorProvider: Recognize mentor message in manual mentor list by Martin Urbanec
 * - ConfigHooks: Warnings should prevent saving the config page by Martin Urbanec
 * - MenteeOverview: Change messages displayed when no mentees are found by Martin Urbanec
 * - Declare missing i18n message by Martin Urbanec
 * - MenteeOverviewApi: Respect uselang parameter by Martin Urbanec
 * - MenteeOverview.vue: Don't break when mentee.registration is null by Martin Urbanec
 * - MentorWeightManager: Throw when constructed with wrong provider by Martin Urbanec
 * - MenteeOverview: Do not use mw: for linking to MW.org by Martin Urbanec
 * - Add Czech alias for Special:EnrollAsMentor by Martin Urbanec
 * - MenteeOverview.vue: Remove "TODO apply locale format?" comment by Martin Urbanec
 * - Parametrize title when logging Add Image API errors by Gergő Tisza
 * - Add GENDER to welcome survey messages by Gergő Tisza
 * - Mentee overview(vue): use number input for the edit count filters  by Sergio Gimeno
 * - SpecialEditGrowthConfigLogger: Add is_registered_user by Martin Urbanec
 * - SpecialEditGrowthConfig: Simplify int casting logic by Martin Urbanec
 * - Update to accomodate future changes to JsonCodec by C. Scott Ananian

IPInfo

 * - Add brackets for emphasizing operator precedence by csimiyu
 * - Translate "Connection type" data returned from MaxMind by tsepothoabala
 * - Fix URL to Special:BlockList from infobox by Thalia
 * - Add Block List link to infobox by AnaïsGueyte

Kartographer

 * - Relax validation regex to allow icon names like "bank-JP" and "park-alt1" by Adam Wight
 * - Don't show nearby button on mobile by WMDE-Fisch
 * - build: Bump grunt-stylelint to 0.18.0 by WMDE-Fisch
 * - build: Bump pruncluster to currently used version by WMDE-Fisch
 * - Include zoom factor into de-bouncing calculation by WMDE-Fisch
 * - Introduce callback for marker creation by WMDE-Fisch
 * - Move nearby layer creation to nearby.js by WMDE-Fisch
 * - Add custom styling for nearby markers by WMDE-Fisch
 * - Test and fix saveUnparsed option of SimpleStyleParser by Thiemo Kreuz
 * - Minor improvement api result check by WMDE-Fisch
 * - Skip results without coordinates by WMDE-Fisch

MobileFrontend

 * - Disable hooks in ApiParse tests by Jon Robson
 * - Fix Toggler's handling of hash fragments by Ed Sanders
 * - Make sections expandable by find-in-page  by Joey Arhar
 * - Disallow using the `self` global variable by Bartosz Dziewoński
 * - EditorOverlayBase: Fix failing to clear warning about unsaved changes by Bartosz Dziewoński
 * - Use UnlistedSpecialPage instead of SpecialPage by Fomafix

OAuthRateLimiter

 * - sqlite: Re-generate tables-generated.sql by Umherirrender

ParserFunctions

 * - Remove LEFT-TO-RIGHT MARK (U+200E) from comments and messages by Fomafix

Phonos

 * - Various small CSS improvements by Sam Wilson
 * - ARIA: Add `aria-description` to Phonos player button by TheresNoTime
 * - Add file caching, defaulting to FSFileBackend, and cleanup script by MusikAnimal
 * - GoogleEngine: Normalize apostrophes and remove parentheses by MusikAnimal
 * - Add basic UI for loading/playing/replaying by Sam Wilson

ProofreadPage

 * - Fix selenium CI errors caused by Ib24f6339424f9ab4fb94e7eb76db756a446a3be7 by Sohom
 * - Implement navigation for Edit-in-Sequence by Sohom
 * - styles: Simplify Less rules by Volker E
 * - Makes sure there is no duplicated results on Special:PagesWithoutScans by Tpt

QuickSurveys

 * - Move unconditional call to showSurvey to init module from lib module by Thalia

Scribunto

 * - Update failing language tests by Subramanya Sastry

SimilarEditors

 * - Add new JS module for displaying a survey by Thalia
 * - .eslintrc.json: Remove mediawiki rules from extension root folder by Thalia
 * - Parse error message for help link by AnaïsGueyte

TemplateData

 * - Migrate usage of Database::select to SelectQueryBuilder by Bartosz Dziewoński
 * - Minor fixes & improvements to Specification.md by Thiemo Kreuz

TemplateSandbox

 * - Hooks::templateSandboxPreview: Guard against $sectionTitle being null by James D. Forrester

Translate

 * - Fix typo on class level comment by Wangombe
 * - UpdateTranslatablePageJob: move to namespace by Wangombe
 * - RenderTranslationPageJob: Move to namespace by Wangombe
 * - Move TranslatablePage into PageTranslation namespace by Wangombe
 * - CurrentTranslationAid: Fix untranslated on PHP 8.1 by tacsipacsi
 * - StatsTable: Change cursor type when hovering over expand/collapse link by aswathiprem24
 * - Increase the time to display a warning to 2 seconds by Amir E. Aharoni

VisualEditor

 * - Follow-up I7fb352fc: Fix scope typo in ArticleTarget by Ed Sanders
 * - Code cleanup in ExpandableContentElement by Thiemo Kreuz
 * - Migrate usage of Database::select to SelectQueryBuilder by Bartosz Dziewoński
 * - Chain scroll calls instead of just calling after each other by Thiemo Kreuz
 * - Do not show incompatible skin warning when page is not editable by Gergő Tisza
 * - ve.ui.MWTargetWidget: Suppress the stacking context established by .vector-body by Bartosz Dziewoński
 * - Create Parsoid helper for use outside of action API by Bartosz Dziewoński
 * - ApiParsoidTrait: Mark private methods and properties by Bartosz Dziewoński
 * - Pass empty string to unused argument of pushState/replaceState by Ed Sanders
 * - Update code for setting user preferences by Bartosz Dziewoński

Wikibase

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

WikiEditor

 * - inEventSample: Avoid invalid character warning from sampling code, hash into hex by James D. Forrester

WikiLambda

 * - Update function-schemata sub-module to HEAD (194e4da)   by James D. Forrester
 * - Add metadata dialog to ZFunctionTesterReport component by dmartin
 * - Fix label collection in the Vuex store by gengh
 * - Fix the table headers (so they fill the full width) in Firefox browser. by ddw
 * - Fix zImplementations and zTesters to return a raw array, not a canonical ZList by Julia Kieserman
 * - do not enable save button until zImplementation or zTester has a function associated with it by Julia Kieserman
 * - Function editor: Pre-populate selectors if values available. by ddw
 * - ZMultiLingualStringTest: Cover getStringForLanguageCode for invalid languages by jkieserman
 * - tests: Temporarily disable ApiFunctionCallTest due to Beta Cluster flapping by James D. Forrester
 * - Add convenience linting scripts and apply linting rules in components by gengh
 * - Reflect Type value in selector during Type creation. by ddw
 * - Ensure the function selection box shows if the implementation is not yet by ddw
 * - Make language selector box clear previously typed letters after selection by ddw
 * - Put test assertions in function call API integration test. by apine
 * - Ensure the animated state on the CDX-Lookup box goes away if the input by ddw
 * - ZObjectUtils: Drop applyTransformation, no longer used by James D. Forrester
 * - ZObjectUtilsTest: Cover getLabelOfFunctionArgument directly by James D. Forrester
 * - ZTester,ZImplementation: Show a Linked/Unlinked icon to indicate connected status by James D. Forrester
 * - load attached implementation and testers from zFunction by Julia Kieserman
 * - Pass customClass to Dialog component as a prop by dmartin
 * - ZObjectUtilsTest: Cover isValidZObjectResolver by James D. Forrester
 * - Remove default string for argument labels. by EWright

WikimediaEvents

 * - phpEngine: Add the ability to sample users to use php 7.4 by Giuseppe Lavagetto

WikimediaMessages

 * - Add help link for SimilarEditors error by AnaïsGueyte

Wikistories

 * - Include the story viewer in the navigation stack by Huei Tan
 * - Replace vue-router with minimal custom router by Stephane Bisson
 * - Fixes for vue3 by Stephane Bisson
 * - Edit story at this frame id by Stephane Bisson
 * - Disable scroll on iOS when reading a Wikistories by Huei Tan

MinervaNeue

 * - Cleanup: Use .position-sticky mixin from core by Ed Sanders

Vector

 * - Fix collapsed TOC menu positioning with site notice without JS or major CSS changes by bwang
 * - [ToC] Show new/modified sections after publishing an edit (new floating ToC) by Moh'd Khier Abualruz
 * - [ToC] Content should be centered when TOC is collapsed by Jon Robson
 * - Follow up: Remove .vector-layout-grid, .mw-workspace-container classes by bwang
 * - Add collapsed TOC to sticky header by moving the TOC by bwang
 * - Remove .mw-ui-button styles from user-links overflow menu by Jan Drewniak
 * - Prevent collapsed dropdowns from having height. by Jan Drewniak
 * - Revert "styles: Set `background-repeat: no-repeat` for menu tabs" by Jdlrobson
 * - Allow composer/installers plugin by Gergő Tisza

VisualEditor/VisualEditor

 * - Pass empty string to unused argument of pushState/replaceState by Ed Sanders

No changes

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

Total changes
211 Changes in 38 repos by 63 authors