MediaWiki 1.39/wmf.1/Changelog

Core changes

 * - Branch commit for wmf/1.39.0-wmf.1 by trainbranchbot
 * - rdbms: mark trxStatus as @internal and cleanup the comments by Aaron Schulz
 * - rdbms: make DatabaseSqlite release named locks on connection loss by Aaron Schulz
 * - resourceloader: Set class-wide @covers and ignore coverage of HookRunner by Timo Tijhof
 * - objectcache: add makeTimestampedModificationToken type hint by Aaron Schulz
 * - Fix phpunit failures due to invalid testGetResultAllTables provider by Aaron Schulz
 * - ApiParse: Fail gracefully when the requested format is not supported by Func
 * - phan: Disable scalar_implicit_cast setting  by Umherirrender
 * - parser: change 'level' in parse api back to string by Alexander Vorwerk
 * - page: Store Wikipage::mIsNew/mIsRedirect as real bool, not integer by Umherirrender
 * - objectcache: Clean up getMultiWithUnionSetCallback test cases by Timo Tijhof
 * - Simplify TransactionManager::pendingWriteQueryDuration by Umherirrender
 * - Cast block id to string in BlockManager::getCookieValue by Umherirrender
 * - Generate config name constants. by daniel
 * - Generate DefaultSettings.php from schema by daniel
 * - Sync up with Parsoid parserTests.txt by Subramanya Sastry
 * - Sync up with Parsoid mediaParserTests.txt by Subramanya Sastry
 * - Sync up with Parsoid legacyMediaParserTests.txt by Subramanya Sastry
 * - Revert "tests: Add @group Broken to by Umherirrender
 * - Fix Special:ComparePages form layout when there are errors by Bartosz Dziewoński
 * - Add a class on the span representing the broken media element  by Arlo Breault
 * - Update Codex from v0.1.0-alpha.3 to v0.1.0-alpha.5 by Roan Kattouw
 * - Use class constants to define config schema, rather than config-schema.yaml by daniel
 * - Span representing broken media element is only expected as first child by Arlo Breault
 * - Revert "rdbms: make automatic connection recovery apply to more cases" by Ladsgroup
 * - Revert "rdbms: factor out session state helper class from Database" by Ladsgroup
 * - AddRFCandPMIDInterwiki: Replace deprecated unique keys in DB::replace by Umherirrender
 * - ActorStore: Avoid deprecated way for unique keys in IDatabase::upsert by Umherirrender
 * - Revert "rdbms: Followups to automatic connection recovery patch" by Ladsgroup
 * - Revert "rdbms: provide $owner argument in LoadBalancer::flushPrimarySessions" by Ladsgroup
 * - WatchedItemStoreIntegrationTest: Call setMwGlobals without $ on name by Umherirrender
 * - Revert "rdbms: fix owner id and RELEASE_ALL_LOCKS query in session flushing methods" by Ladsgroup
 * - objectcache: clarify usage of getMultiWithUnionSetCallback by Aaron Schulz
 * - listFiles: Display file name instead of version by Func
 * - tests: Make sure deferred updates are done and re-enable TemplateCategoriesTest by Func
 * - Put some space between apihelp examples by Lucas Werkmeister
 * - LoadBalancerTest: Avoid using hard-coded table prefix by Func
 * - Cleanup SpecialComparePages by Func
 * - HTMLForm: Deprecate calling loadData from outside by Func
 * - SuiteEventsTrait: don't call setUp for an empty suite by Tim Starling
 * - rdbms: fix owner id and RELEASE_ALL_LOCKS query in session flushing methods  by Aaron Schulz
 * - Don't re-check "Move subpages" on Special:MovePage after a warning by Kunal Mehta
 * - tests: Fix @group Broken on MediaWikiIntegrationTestCaseSchemaTest by Umherirrender
 * - Add convenience methods for asserting status. by daniel
 * - ParserTestRunner: Remove unused property $dbClone by Ammarpad
 * - ApiEmailUser: Mark the subject as a required parameter by Func
 * - Improve ensureMockDatabaseConnection error message by Aaron Schulz
 * - SpecialComparePages: Use show instead manual displayForm by Func
 * - DevelopmentSettings.php: Remove obsolete comment about --mwdebug param by Aaron Schulz
 * - parser: Cast return of Timestamp::format to int for n by Umherirrender
 * - rdbms: factor out session state helper class from Database by Aaron Schulz
 * - Hard deprecate PageProps::getInstance by Alexander Vorwerk
 * - api: Get all services for ApiPageSet in constructor by Umherirrender
 * - Fix @since of Title::getId by Alexander Vorwerk
 * - ParamValidator: Allow to use User:0 in UserDef by Umherirrender
 * - Bump minimum required version for upgrade to 1.31 by Alexander Vorwerk
 * - Follow-up 753a4ec: UPGRADE: Minimum upgradable version is now 1.29 by DannyS712
 * - rdbms: Remove deprecated IDatabase functions by Amir Sarabadani
 * - tests: Remove unused mock of getLazyConnectionRef by Umherirrender
 * - rdbms: provide $owner argument in LoadBalancer::flushPrimarySessions by Aaron Schulz
 * - Follow-up 753a4ec: RELEASE-NOTES-1.39: Minimum upgradable version is now 1.29 by Alexander Vorwerk
 * - Add 1.38 snapshot to sqlite db tests by Alexander Vorwerk
 * - Use badfilecontexttitle to set targetlang for imageinfo requests by Arlo Breault
 * - Upgrading symfony/polyfill-php80 (v1.24.0 => v1.25.0) by Reedy
 * - Language: retrieve MainConfig instead of using a bunch of globals by DannyS712
 * - RELEASE-NOTES-1.39: fix version typos by DannyS712
 * - Prepare active branch following REL1_38 cut, labelling as 1.39-alpha by James D. Forrester
 * - The targetlang is a handler parameter by Arlo Breault
 * - Pass a ConvertibleTimestamp to CoreMagicVariables by C. Scott Ananian
 * - search: Improve null documentation on RevisionSearchResultTrait by Umherirrender
 * - parser: Fix various scalar types to match documentation by Umherirrender
 * - maintenance: Improve updateSpecialPages.php and related documentation by Umherirrender
 * - [doc only] Update filename for config-schema.yaml in doc comment by C. Scott Ananian
 * - Update OOUI to v0.43.2   by James D. Forrester
 * - Integration test for extension registration by daniel
 * - Add 'skin-' prefix to remaining nav item messages by Bartosz Dziewoński
 * - Try to ensure tags are arrays by Arlo Breault
 * - media: Limit result array of explode to minimum needed by Umherirrender

Vendor

 * - Upgrade symfony/polyfill-php* by Reedy
 * - Update OOUI to v0.43.2 by James D. Forrester

3D

 * - build: Update devDependencies by Ed Sanders

AbuseFilter

 * - ViewRevert: Adjust use cases of HTMLForm by Func
 * - build: Update linters by Ed Sanders

Babel

 * - tests: Use ::class in assertInstanceOf function by Umherirrender

CentralAuth

 * - tables.json: Fix account typo in localnames comment by Reedy
 * - Remove temporary feature flag for group expiries by Taavi Väänänen
 * - Drop CentralAuthServices back compat alias by Alexander Vorwerk
 * - Drop gu_hidden column by Taavi Väänänen
 * - Drop support for CentralAuthHiddenLevelMigrationStage by Taavi Väänänen
 * - Replace use of deprecated RecentChange::getEngine by Taavi Väänänen
 * - add Zabe to author list by Taavi Väänänen
 * - Remove db patches which are older than 7 years by Alexander Vorwerk
 * - Drop the gu_enabled and gu_enabled_method column by Alexander Vorwerk
 * - build: Update devDependencies by Ed Sanders

CharInsert

 * - build: Update devDependencies by Ed Sanders

CheckUser

 * - build: Update devDependencies by Ed Sanders

CirrusSearch

 * - tests: Use ::class in assertInstanceOf function by Umherirrender
 * - Removed $wgJobQueueAggregator from CirrusSearch by aacaldwell
 * - MetaStore: Remove minor versions by Erik Bernhardson
 * - MetaStore: Remove support for metastore < 1.0 by Erik Bernhardson
 * - metastore: Drop BC for old index name by Erik Bernhardson
 * - Add transport capable of logging deprecations by Erik Bernhardson

cldr

 * - Add Hadza (hts), not in CLDR, used by Wikispecies by Raymond
 * - Add Pannonian Rusyn (rsk) by Raymond
 * - Namespace extension by Reedy

CodeEditor

 * - build: Update devDependencies by Ed Sanders

CodeMirror

 * - build: Update devDependencies by Ed Sanders
 * - Highlight headings with trailing comments by AntiCompositeNumber

CommonsMetadata

 * - tests: Use ::class in assertInstanceOf function by Umherirrender

DiscussionTools

 * - Move cache expiry update from ParserAfterParse to ParserAfterTidy by C. Scott Ananian
 * - Refactor highlights into a class, and add window resize listener by Ed Sanders

Echo

 * - Remove mocking of numRows by Amir Sarabadani
 * - Call IDatabase::timestamp before inserting rows by Umherirrender

EventLogging

 * - Namespace includes/Libs by Reedy

ExtensionDistributor

 * - Fix race condition in processAPIResponse by dylsss

FileImporter

 * - selenium: use browser.waitUntil instead of pause by Kosta Harlan

FlaggedRevs

 * - Don't pass the revision to PO access service by Amir Sarabadani

Flow

 * - mw.flow.ve.Target: Replace call to deprecated method by Ed Sanders

GlobalBlocking

 * - Fix use of warningbox in GlobalBlocking by stang

Graph

 * - build: Update devDependencies by Ed Sanders

GrowthExperiments

 * - MenteeOverviewPresets: Add helper methods for known properties by Kosta Harlan
 * - MenteeOverviewPresets: Add QUnit tests by Kosta Harlan
 * - Mentee overview: Persist the page size by Martin Urbanec
 * - selenium: Stricter check when inspecting outbound requests by Kosta Harlan
 * - WelcomeSurvey: Add checkbox for opt-in to marketing emails by Kosta Harlan
 * - Tag newcomer task edits via VisualEditor or post-edit dialog by Kosta Harlan
 * - Help panel: Show the help button when editing unstructured tasks again by MewOphaswongse
 * - Pilot: Proof of concept account creation page with video embed by Kosta Harlan
 * - Add a link: add field for maximumLinksToShowPerTask in Special:EditGrowthConfig by Sergio Gimeno
 * - [docs] Document scope for the Mentor class by Martin Urbanec
 * - Add StructuredMentorWriter to complement StructuredMentorProvider by Martin Urbanec
 * - Mentor: Add getAutoAssigned and getWeight by Martin Urbanec
 * - Create StructuredMentorProvider by Martin Urbanec
 * - WikiPageConfigWriter: Remove the JsonContent TODO by Martin Urbanec
 * - WikiPageConfigWriter: Do not require full User object by Martin Urbanec
 * - Make Mentor aware of default intro text by Martin Urbanec

IPInfo

 * - Dotted lines on revision history jumps when opening popup by tsepothoabala
 * - Use infoFilled for the popup button by tsepothoabala
 * - IPInfo popup: Adjust content padding by tsepothoabala
 * - Make some changes to the help popup styles by Thalia
 * - Stop subscribing to listeners on every log call by STran
 * - Log when Infobox expand/collapse by AnaïsGueyte
 * - Fire a hook from the infobox widget by Thalia
 * - Add dependency on mediawiki.htmlform for CollapsibleFieldsetLayout by Thalia

Kartographer

 * - build: Update stylelint-config-wikimedia to 0.12.2 by Ed Sanders
 * - Fix eslint warnings by Ed Sanders
 * - build: Update eslint-config-wikimedia to 0.22.1 by Ed Sanders

Linter

 * - Use HTMLTitleTextField on SpecialLintErrors by Umherirrender

MediaSearch

 * - Safari 15 - Special:MediaSearch several drop-down filters displayed at the same time by adesoji

MobileFrontend

 * - Replace deprecated $.throttle with mw.util.throttle by Stephane Bisson

Nuke

 * - SpecialNuke: Don't set edit token in HTMLForm twice by Func
 * - Bump required MW version to 1.35.6 by Alexander Vorwerk

OATHAuth

 * - Send a notification when 2FA is enabled by Reedy

PageTriage

 * - Delete test that duplicates core test by Ammarpad
 * - Add `pagetriage-curation` log to ActionFilteredLogs by DannyS712
 * - Change wgPageTriageCacheVersion to integer class constant by Kosta Harlan
 * - ArticleMetadata: Ensure fallback value is set for each page ID by Kosta Harlan
 * - PageCuration: Use value of date selectors by samtar

ProofreadPage

 * - Revert "build: Update devDependencies" by Majavah
 * - build: Update devDependencies by Ed Sanders
 * - i18n: Use tag for status tag names in other messages. by Inductiveload

RevisionSlider

 * - build: Update devDependencies by Ed Sanders

Score

 * - build: Update devDependencies by Ed Sanders

SyntaxHighlight_GeSHi

 * - build: Update devDependencies by Ed Sanders

TemplateWizard

 * - Remove DismissibleMessageWidget and use MessageWidget's showClose option instead by Ed Sanders

Translate

 * - tests: Use ::class in assertInstanceOf function by Umherirrender
 * - Add debug logging to investigate T302754 by Niklas Laxström
 * - Update class for TranslationNotifications refactoring by Niklas Laxström

TranslationNotifications

 * - Namespace extension by Reedy

TrustedXFF

 * - generate.php: natsort IP list by Reedy
 * - Add Facebook Discover to trusted XFF list by samtar
 * - Use IPSet for all IP lookup operations  by Reedy

UploadWizard

 * - Check for appversion to handle deprecation by seddon

VisualEditor

 * - Fix right padding on inline descriptions without the new sidebar by Adam Wight
 * - eslint: Lint root files with server rules by Ed Sanders
 * - Rename ve-mw/init/styles to LESS by Ed Sanders
 * - Namespace rest of the extension by Reedy
 * - Extract template scrollToTop method by WMDE-Fisch
 * - Remove MWDismissibleMessageWidget and use MessageWidget's showClose option instead by Ed Sanders

Wikibase

 * - Revert "Use default scope in example settings" by Daniel Kinzler
 * - REST: GetItemJsonPresenter to return JSON string by Ollie Shotton
 * - Add 'display' to wbsearchentities response by Lucas Werkmeister
 * - REST: Implement 404 response for item not found by Ollie Shotton
 * - REST: Update GetItemResult for success and failure by Ollie Shotton
 * - REST: Added specs for GET /entities/items/item_id errors by Leszek Manicki
 * - REST: Add project structure to `repo/rest-api/README.md` by Ollie Shotton
 * - Use default scope in example settings by daniel
 * - tests: Use ::class in assertInstanceOf function by Umherirrender
 * - UnexpectedUnconnectedPagePrimer: Discard populated rows when selecting by Marius Hoch
 * - REST: Test non-empty item response by Jakob Warkotsch
 * - RankSelector._stopEditing: Handle dropValue by Marius Hoch
 * - REST: Extract createEntity function for tests by Jakob Warkotsch
 * - REST: Introduce tests against openapi spec by Jakob Warkotsch
 * - REST: Fix typo in global Item specification by sihe
 * - REST: Correctly serialize empty objects by Jakob Warkotsch

WikibaseLexeme

 * - Pass tags into NewLexemeAlpha by Lucas Werkmeister
 * - Stop passing token into NewLexemeAlpha by Lucas Werkmeister
 * - Properly connect lemma labels with inputs by Lucas Werkmeister

WikiEditor

 * - dialogInsertTable: empty preview-hidden row to hide header row when needed by Pols12
 * - build: Update devDependencies by Ed Sanders
 * - Streamline smaller pieces of JavaScript code by Thiemo Kreuz

WikiLambda

 * - Create "about" and "details" tabs in the function viewer by Simone This Dot
 * - create function view page by Simone This Dot
 * - Switch validator ZID so that orchestrator doesn't complain about nonexistent validators. by apine
 * - ZArgumentReference.vue: Labels are an array, not a single string by Simone This Dot
 * - Fix Console error bug shown on application load in FE by Simone This Dot
 * - Add cleanup task for vue router removal by Simone This Dot
 * - Move icons.json into test-specific location by Eric Gardner
 * - WikiLambdaIntegrationTestCase::makeLanguage: Use LanguageFactory when we can by James D. Forrester

WikimediaIncubator

 * - Fallback to no project selected for users without a valid language code by Func

WikimediaMaintenance

 * - Update invalid skin preference update script by Clare Ming
 * - Add insert option for update skin preferences script by Clare Ming
 * - Add script to update vector skin preferences by Clare Ming

WikimediaMessages

 * - Add a link for feedback about the IPInfo feature by Thalia
 * - Add & improve message for the chapter/thorg application contact form by Derick Alangi
 * - Update internal trust and safety survey question for testing by Maggie Epps

MinervaNeue

 * - [Tests] Move beforeEach calls into tests by Jon Robson
 * - Revert "[Tests] Check for VisualEditor in editor overlay integration test" by Jdlrobson
 * - [Tests] Check for VisualEditor in editor overlay integration test by Jon Robson

Vector

 * - Never show an empty table of contents by Jon Robson
 * - Revert "build: Update eslint-config-wikimedia to 0.22.1" by Jdlrobson
 * - Fix updateUserLinksDropdownItems not being called by bwang
 * - [i18n] Table of contents heading by Jon Robson
 * - build: Update eslint-config-wikimedia to 0.22.1 by Ed Sanders
 * - Set position and z-index for mw-page-container by Abijeet
 * - Update Node version by Jon Robson

No changes

 * ActiveAbstract
 * AdvancedSearch
 * AntiSpoof
 * ApiFeatureUsage
 * ArticleCreationWorkflow
 * ArticlePlaceholder
 * BetaFeatures
 * BounceHandler
 * Calendar
 * Campaigns
 * Capiunto
 * CategoryTree
 * CentralNotice
 * ChessBrowser
 * Cite
 * CiteThisPage
 * Citoid
 * CodeReview
 * Cognate
 * Collection
 * CologneBlue
 * ConfirmEdit
 * CongressLookup
 * ContactPage
 * ContentTranslation
 * CreditsSource
 * Dashiki
 * Disambiguator
 * DismissableSiteNotice
 * DonationInterface
 * DoubleWiki
 * DynamicSidebar
 * Elastica
 * ElectronPdfService
 * EntitySchema
 * EventBus
 * EventStreamConfig
 * ExternalGuidance
 * FeaturedFeeds
 * FileExporter
 * FundraiserLandingPage
 * FundraisingTranslateWorkflow
 * GWToolset
 * Gadgets
 * GeoCrumbs
 * GeoData
 * GlobalCssJs
 * GlobalPreferences
 * GlobalUsage
 * GlobalUserPage
 * GlobalWatchlist
 * GoogleNewsSitemap
 * GuidedTour
 * ImageMap
 * InputBox
 * Insider
 * Interwiki
 * InterwikiSorting
 * Josa
 * JsonConfig
 * LabeledSectionTransclusion
 * LandingCheck
 * LdapAuthentication
 * LiquidThreads
 * Listings
 * LocalisationUpdate
 * LoginNotify
 * MachineVision
 * MapSources
 * MassMessage
 * Math
 * MediaModeration
 * MobileApp
 * Modern
 * MonoBook
 * MultimediaViewer
 * NavigationTiming
 * NearbyPages
 * NewUserMessage
 * Newsletter
 * Nostalgia
 * OAuth
 * OAuthRateLimiter
 * ORES
 * OpenStackManager
 * PageAssessments
 * PageImages
 * PageNotice
 * PageViewInfo
 * PagedTiffHandler
 * ParserFunctions
 * PdfHandler
 * Poem
 * PoolCounter
 * Popups
 * PropertySuggester
 * QuickSurveys
 * Quiz
 * RSS
 * ReadingLists
 * RelatedArticles
 * Renameuser
 * SandboxLink
 * Scribunto
 * SearchExtraNS
 * SecureLinkFixer
 * SecurePoll
 * ShortUrl
 * SiteMatrix
 * SpamBlacklist
 * StopForumSpam
 * SubPageList3
 * SubpageSortkey
 * TemplateData
 * TemplateSandbox
 * TemplateStyles
 * TextExtracts
 * Thanks
 * TheWikipediaLibrary
 * TimedMediaHandler
 * Timeless
 * TitleBlacklist
 * TocTree
 * TorBlock
 * TwoColConflict
 * UniversalLanguageSelector
 * UploadsLink
 * UrlShortener
 * VipsScaler
 * VisualEditor/VisualEditor
 * WebAuthn
 * WikiLove
 * WikibaseCirrusSearch
 * WikibaseLexemeCirrusSearch
 * WikibaseMediaInfo
 * WikibaseQualityConstraints
 * Wikidata.org
 * WikidataPageBanner
 * WikimediaApiPortal
 * WikimediaApiPortalOAuth
 * WikimediaBadges
 * WikimediaEditorTasks
 * WikimediaEvents
 * Wikisource
 * XAnalytics
 * intersection
 * timeline
 * wikihiero

Total changes
226 Changes in 50 repos by 64 authors