MediaWiki 1.39/wmf.28/Changelog

Core changes

 * - Branch commit for wmf/1.39.0-wmf.28 by trainbranchbot
 * - rdbms: Simplify private marshal logic in ChronologyProtector by Timo Tijhof
 * - CREDITS: Update ahead of REL1_39 branch by James D. Forrester
 * - Introduce PagerNavigationBuilder for making pagination links by Bartosz Dziewoński
 * - Drop User methods which were deprecated since 1.38 by vladshapik
 * - rdbms: Remove unused getLogName from internal MySQLPrimaryPos by Timo Tijhof
 * - rdbms: Mark MySQLPrimaryPos as `@internal` by Timo Tijhof
 * - Update doctrine/dbal versions by Alexander Vorwerk
 * - rdbms: Use JSON to store ChronologyProtector position data by daniel
 * - rdbms: Remove stray `@ingroup` from two file doc blocks by Timo Tijhof
 * - Add a new function LanguageFactory::getRawLanguage by Fomafix
 * - Replace wfGetLangObj by $languageFactory->getLanguage by Fomafix
 * - Hard deprecate User::getOption by Roman Stolar
 * - ParsoidOutputAccess: support target language. by daniel
 * - rdbms: log invalid INDEX clauses with multi-table selects by Aaron Schulz
 * - Reduce code duplication in i18n-headings.less by Bartosz Dziewoński
 * - jquery.makeCollapsible: Add dependency on mediawiki.util by Bartosz Dziewoński
 * - ParserOutputAccessTest: Inline services & avoid creating variables by Derick Alangi
 * - Add support to enable Scribunto & Parsoid to handle nowikis properly  by Subramanya Sastry
 * - ParserTestRunner: Clear title cache in cleanupArticles by Subramanya Sastry
 * - ParserTests: Clean up some duplicate revrecord logic by Subramanya Sastry
 * - parser: ParsoidOutputAccess shoulnd't know about caching by Derick Alangi
 * - Update documentation of Title::getDbPageLanguageCode by Fomafix
 * - Track change email/password by ELLENR
 * - Sync up with Parsoid media parserTests by Arlo Breault
 * - Move SearchResultProvideThumbnail hook to 'search' by Matthias Mullie
 * - Set line-height for all Burmese-script languages by Amir E. Aharoni
 * - Add es6 field to QUnitTestModule in extension.json schema by Jakob Warkotsch
 * - Make StatusValue accept MessageValue. by daniel
 * - Allow customizing OutputPage::showErrorPage return URL by Gergő Tisza
 * - ResourceLoader: Remove deprecated global 'loadedScripts' property by Timo Tijhof
 * - mediawiki.base: Restore and document importScript "once" behaviour by Siddharth VP
 * - rdbms: avoid DB_PRIMARY queries in getLagFromPtHeartbeat by Aaron Schulz
 * - SkinTemplate: Make associatedPages menu backwards compatible with namespaces by Jon Robson
 * - SkinTemplate: Unset modern menus in QuickTemplate-based skins by Jon Robson
 * - Don't reconstruct formatting elements in figures by Arlo Breault
 * - Update Codex from v0.1.0-alpha.10 to v0.1.1          by Roan Kattouw
 * - Add 'zh-classical' to the test cases for isWellFormedLanguageTag by Fomafix
 * - Support access to outputs of non-existent pages by msantos
 * - ResourceLoader: Add structure test to detect incompatible `requiresES6` by Timo Tijhof
 * - Remove use-tidy-config option by Arlo Breault
 * - OutputPage: Provide consistent info about whether the revision shown is current by Bartosz Dziewoński
 * - jquery.makeCollapsible: Use mw.util.getTargetFromFragment by Ed Sanders
 * - objectcache: optimize APCUBagOStuff::add for lock keys and large values by Aaron Schulz
 * - resources: Make foreign-resources.yaml pass its own 'verify' test by Timo Tijhof
 * - Rewrite CheckBlocksSecondaryAuthenticationProviderTest by Gergő Tisza
 * - rdbms: Move Database::factory to DatabaseFactory service  by Kunal Mehta
 * - Remove comment from parser test result description by Arlo Breault
 * - resources: Update taylorhakes/promise-polyfill to upstream URL by James D. Forrester
 * - resources: Bump jQuery from v3.6.0 to v3.6.1 by James D. Forrester
 * - Skin: Use camel case for menu name by Jon Robson
 * - docs: Clarify that functions returning namespace names include underscores (not spaces) by Bartosz Dziewoński
 * - mediawiki.util: Add getTargetFromFragment (and percentDecode) by Ed Sanders
 * - wdio-mediawiki: Release 2.2.0 by Kosta Harlan
 * - selenium: Default to larger window size by Kosta Harlan
 * - Move isWellFormedLanguageTag from Language to LanguageCode by Fomafix
 * - maintenance: Add support for links migration to cleanupInvalidDbKeys by Amir Sarabadani
 * - Update Language::isWellFormedLanguageTag by Fomafix
 * - PermissionManager: Add PermissionErrorAudit hook by Sergio Gimeno
 * - EditPage: Refactor large showIntro method by Jon Robson
 * - LocalisationCache: Remove accidentally checked in code by Jon Robson
 * - rdbms: Convert SQLite values to string by Zvi "CtrlZvi" Effron
 * - Remove French fallback from Fula (ff) by Amir E. Aharoni
 * - parsoid: inject UrlUtils to avoid phpunit failures in SiteConfigTest by Aaron Schulz
 * - Introduce HTMLTransformFactory by daniel
 * - Update LanguageConverter ShiConverter shi/"unconverted" variant by Winston Sung
 * - Fix documentation of wfTimestamp by Gergő Tisza
 * - objectcache: remove APCUBagOStuff code for apcu < 5.1.12 by Aaron Schulz
 * - Clarify wording of preview settings by EpicPupper

Vendor

 * - Upgrade to Elastica 7.1.5  by Erik Bernhardson

CampaignEvents

 * - selenium: Setup and first test by Vaughn Walters
 * - Add creation and deletion timestamp to ce_organizers table by Daimona Eaytoy
 * - Revert "Add creation and deletion timestamp to ce_organizers table" by Daimona Eaytoy
 * - Add creation and deletion timestamp to ce_organizers table by Daimona Eaytoy
 * - Use LinkBatch with local pages in EventsPager for performance by Daimona Eaytoy
 * - Show group chat invite link in the "more details" dialog by Daimona Eaytoy
 * - Add indexes to the schema by Daimona Eaytoy

CheckUser

 * - Add tests for CompareService::getTargetsOverLimit by Thalia

CirrusSearch

 * - Make sure what we do at incategory search time is same as index time by joseph emmanuel kayode (iemarjay)
 * - Inject PageStore to InCategoryFeature for testing by David Causse
 * - Revert "Revert "Revert "reindex: Detect index type from live mappings""" by DCausse
 * - Add an option to force the creation of a new suggester index by David Causse
 * - Revert "Revert "reindex: Detect index type from live mappings"" by DCausse
 * - Add partial support for es6 by David Causse
 * - Migrate to Elastica 7.1.5 by David Causse
 * - Use standardized parameter passing in Maintenance::runChild by Erik Bernhardson
 * - Update elastic version dependency to 7.10 by Erik Bernhardson

cldr

 * - Override localisation for "hour" in 'bn' by Bartosz Dziewoński

ContactPage

 * - Stop running EmailUser hook on Special:Contact by Alexander Vorwerk

ContentTranslation

 * - CX3 Build 0.2.0+20220905    by Santhosh Thottingal
 * - SX: Enable publish button after publish target change by wangombe
 * - SX: Fix the message explaining the expected publishing result by NikG
 * - ApiSectionTranslationPublish: Use sourcesectiontitle in summary by NikG
 * - SX Instrumentation: Fix event logging schema version by NikG
 * - SX Instrumentation: Fix event logging access_method by NikG
 * - Mark sx.publishing.followup as requiring ES6 by Roan Kattouw
 * - SX: Adjust publish setting option when translating a lead section by NikG
 * - Use \u00A0 instead of &#160; by Fomafix
 * - Simplify building database conditions by Umherirrender
 * - TranslationCorporaStore: Use SelectQueryBuilder for doFind by Santhosh Thottingal

DiscussionTools

 * - Table of contents style tweaks by Ed Sanders
 * - Use cheaper getRawVal/getCheck instead of getVal where possible by Thiemo Kreuz
 * - ReplyWidget: Ignore pending updates after tearing down by Bartosz Dziewoński
 * - Inject services into API classes by Bartosz Dziewoński
 * - Fix fetching of oldest comment in a thread by Ed Sanders
 * - highlighter: Use upstream getTargetFromFragment by Ed Sanders
 * - API: always output ISO8601 in the timestamp field by David Lynch
 * - ThreadItem jsonSerialize: make sure callback is applied last by David Lynch
 * - Notify users when a topic they are subscribed to is removed from a page by Bartosz Dziewoński
 * - Remove clear:both from topic containers by Ed Sanders

DonationInterface

 * - Check if currency supported by braintree merchant account by wfan
 * - Update default gateway to adyen for countries by wfan
 * - Update SmashPig to 0.8.2.8 by Elliott Eggleston
 * - Update wording for monthly convert logging. by jgleeson
 * - Tweak log message to avoid possible error by Elliott Eggleston
 * - GatewayChooser: Route China to PayPal gateways by Elliott Eggleston

Echo

 * - extension.json: Make `mention-success` a `message` notification by samtar

Elastica

 * - Remove now unnecessary phan suppression by Erik Bernhardson
 * - Switch to Elastica 7.1.5 [re-apply] by Ebernhardson

Gadgets

 * - Purge in-process cache in MWGadgetsDefinitionRepo::handlePageUpdate by Gergő Tisza

GeoCrumbs

 * - Encapsulate breadcrumbs in span tag by Jon Harald Søby

GlobalWatchlist

 * - Mark specialglobalwatchlist.vue module as requiring ES6 by Roan Kattouw

GrowthExperiments

 * - Mentee overview(vue): prevent clicks on more recent edit buttons to submit the filters by Sergio Gimeno
 * - Update SQL files by Gergő Tisza
 * - Use JsonValidateSave for community configuration by Gergő Tisza
 * - Don't show help panel or its button in printable version of page by Kosta Harlan
 * - build: Upgrade jQuery test install to 3.6.1 to align with MediaWiki by James D. Forrester
 * - Mark MentorDashboard.Vue module as requiring ES6 by Roan Kattouw
 * - selenium: Use php-fpm version from PHP_VERSION environment by Kosta Harlan

IPInfo

 * - Use icon-opacity-subtle variable for popup button by csimiyu
 * - Stop importing unused variables in ext.ipinfo/popup/popup.less by tsepothoabala
 * - Deprecate unused IPInfo table, ipinfo_ip_changes by AnaïsGueyte
 * - Make loading animation the same size as the infobox by csimiyu
 * - Remove empty space when no edit from an IP Address by csimiyu
 * - Group padding variables together in ext.ipinfo/variables.less by Thalia
 * - Define and use new color variables by Thalia

Kartographer

 * - Make nearby markers opaque by Adam Wight
 * - Optional, developer setting for static mapframes by Adam Wight
 * - Style nearby markers as gray circles by Thiemo Kreuz
 * - Fix nearby articles auto-refresh feature not being turned off by Thiemo Kreuz
 * - Show all GeoJSON validation errors   by Thiemo Kreuz

MachineVision

 * - Mark ext.MachineVision module as requiring ES6 by Roan Kattouw

Math

 * - Add further nodes by Stegmujo

MediaSearch

 * - Mark mediasearch module as requiring ES6 by Roan Kattouw

MobileFrontend

 * - Toggler: Use upstream percentDecodeFragment by Ed Sanders
 * - Track various talk overlay events via UIActions by David Lynch

NearbyPages

 * - Fixes: Titles returned by geosearch are non canonical  by Jon Robson

Nuke

 * - Use \u{00A0} instead of &#160; by Fomafix
 * - Use WebRequest::getRawVal instead of WebRequest::getText by Fomafix

OAuth

 * - build: Disable phan option scalar_implicit_cast and make pass by Umherirrender

PageImages

 * - Update hook FQCN by Matthias Mullie
 * - Allow thumbnails to be provided in a different size by Matthias Mullie

Phonos

 * - Catch all PhonosExceptions and render localized errors to user by MusikAnimal
 * - Allow Phonos parser function to accept a custom label by MusikAnimal
 * - Improve error messages' display by Sam Wilson
 * - Use Google's error message if available by Sam Wilson
 * - Always persist audio data to disk by MusikAnimal

ProofreadPage

 * - Make phpfpm restart, php version agnostic by Sohom
 * - Remove LEFT-TO-RIGHT MARK (U+200E) from comments and messages by Fomafix

Quiz

 * - build: Disable phan option scalar_implicit_cast and make pass by Umherirrender

Scribunto

 * - Temporarily disable the newly added test in f230419b by Subramanya Sastry
 * - Revert "Disable Parsoid testing tempoarily" by Arlo Breault

SecurePoll

 * - phan: Disable phan option scalar_implicit_cast and make pass by Umherirrender

SyntaxHighlight_GeSHi

 * - Line number highlight: Use getTargetFromFragment by Ed Sanders

Translate

 * - Use improvements of jQuery 3.3 by Fomafix
 * - Make Translations space tab label translatable by Amir E. Aharoni
 * - PageTranslation/Hooks: move to namespace by wangombe
 * - Make RefreshTranslatablePagesJob create missing translation pages by Niklas Laxström
 * - Add support for Elastica 7.1.5 by David Causse
 * - Fix doc of TranslateMetadata::set by Umherirrender

VisualEditor

 * - Restore the $oldid condition for funny ETag logging by Bartosz Dziewoński
 * - Fix logic for getting the *available* preferred editor by Ed Sanders
 * - DesktopArticleTarget: Fix popstate handling when action=edit (single edit tab) by Ed Sanders
 * - Fix broken history management in onEditSectionLinkClick by Ed Sanders
 * - Update VE core submodule to master (059f7d91d)  by Bartosz Dziewoński
 * - Fix calling order in template dialog .getSetupProcess by Thiemo Kreuz
 * - Add missing call to .recalculateStickyHeaderHeight by Thiemo Kreuz
 * - DesktopArticleTarget: Set wgPostEdit when redirecting after save by Ed Sanders

Wikibase

 * - Use SelectQueryBuilder in WikibasePingback by Lucas Werkmeister
 * - REST: OpenAPI definition improvements by Ollie Shotton
 * - REST: Add request validation to PatchItemStatement by sihe
 * - Fix summary construction now that pageName is always set by Michael Große
 * - Don't allow a redirect badge on a sitelink to a redirect be removed by Michael Große
 * - REST: Combine PATCH route tests files into one by Jakob Warkotsch
 * - REST: Add PatchStatementRouteHandler by Jakob Warkotsch
 * - REST: Skip PATCH tests only if json-diff unavailable by Jakob Warkotsch
 * - REST: Add PatchItemStatementRouteHandler happy path by Jakob Warkotsch
 * - Reference task ID to restore the skipped test by sihe
 * - Temporarily disable ReferenceListTest::testSerializationStability by Jakob Warkotsch
 * - DM: Add type hints to StatementList by Ollie Shotton
 * - DM: Add type hints to Statement by Ollie Shotton
 * - REST: Create a JsonPatchValidator by sihe
 * - Run sitelink on redirects tests for wbeditentity as well by Michael Große
 * - Add tests for sitelink to redirect behavior by Lucas Werkmeister
 * - Skip flaky browser test by Michael Große
 * - Mark wikibase.termbox and wikibase.tainted-ref modules as requiring ES6 by Roan Kattouw
 * - REST: Fix example in OpenAPI schema by Ollie Shotton
 * - REST: Make RequestBuilder work with (JSON) PATCH by Jakob Warkotsch
 * - REST: Add JsonDiffStatementPatcher by Jakob Warkotsch
 * - REST: Create PatchItemStatement use case by sihe
 * - bridge: add stories for wikibase-vuejs-components by Michael Große
 * - REST: Add "PATCH statement" endpoints to OpenAPI by sihe

WikibaseLexeme

 * - Require ES6 for RL modules depending on vue/vuex  by Jakob Warkotsch
 * - Add anonymous edit warning in no javascript mode by gtzatchkova

WikiLambda

 * - Add some test coverage for ableToPublish in FunctionDefinition. by EWright
 * - ZTypedMap::setValueForKey: Accept null as a no-op action by James D. Forrester
 * - build: Remove unnecessary "babel-core" dependency by Florent
 * - refactored modal-dialog by temitope adesoji
 * - Initialize Z3K1 (Key value type) as a reference rather than a Z4 by ddw
 * - build: Upgrade jQuery test install to 3.6.1 to align with MediaWiki by James D. Forrester
 * - Disable programming language dropdown for implementation when in read-only or view mode. by EWright
 * - Prevent publishing with empty argument labels or types. by EWright
 * - eslint: Fix the "jsdoc/require-param-type" warnings and enforce by Florent
 * - Change placeholder text for function alias input box. by EWright
 * - Update function-schemata sub-module to HEAD (9f9c223)   by James D. Forrester
 * - Add tester status & metadata dialog to FunctionDetails component by dmartin
 * - UX function language selector updates and bug fix  by Julia Kieserman
 * - Deduplicate code between SpecialCreateZObject and ZObjectEditAction by Florent
 * - do not check for a function label if creating a new ZImplementation by Julia Kieserman
 * - Remove the setting of lookupResults, which was breaking the Type by ddw
 * - MOBILE FUNCTION EDITOR: confirmation dialog by temitope adesoji
 * - Front-End / ZMultilingualString: Fix the language selector say no result by teleosteen
 * - Adapt metadata dialog code to DialogContainer.vue changes by dmartin
 * - doc: Format TODOs consistently by James D. Forrester
 * - ZObjectSelector.vue updates: by Julia Kieserman

WikiLove

 * - Vector 2022: Dedicated skin styles by Jon Robson

WikimediaEvents

 * - WikimediaEventsHooks: log createaccount failed attempts due to a block by Sergio Gimeno

Wikistories

 * - build: Upgrade jQuery test install to 3.6.1 to align with MediaWiki by James D. Forrester
 * - Mark ext.wikistories.viewer and .builder as requiring ES6 by Roan Kattouw
 * - Add instrumentation for unexpected content type by Stephane Bisson

Timeless

 * - Do not unset navigation keys by Jon Robson

Vector

 * - Icons: Enable feature flag for next set of visual enhancements by Jon Robson
 * - FeatureManagement: All features have an associated class on the body tag by Jon Robson
 * - Add tests for dropdownMenu.js by Jan Drewniak
 * - Create new sticky toc container by bwang
 * - Reduce specificity of siteSub by Jon Robson
 * - Override visited link style in MenuTabs by bwang
 * - Replace body:not( .vector-toc-collapsed ) with .vector-toc-not-collapsed class by bwang
 * - Enable related tabs on Vector by Jon Robson
 * - AB test: Complain when TOC experiment setup incorrectly by Jon Robson
 * - Change ULS label for sticky header when 0 Languages available. by Jan Drewniak
 * - Reduce dependency on core styles by Jon Robson
 * - Follow-up: Refactor button/icon class helpers, make portlet classes consistent by bwang

VisualEditor/VisualEditor

 * - Use improvements of jQuery 3.3 by Fomafix
 * - ve.ce.Surface: Preserve internal paste data when doing fake middle-click paste by Ed Sanders
 * - Don't enforce alphabetical order in i18n files by Amir E. Aharoni
 * - ve.ce.Surface: Fix scope typo in middle-click paste handling by Ed Sanders

No changes

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

Total changes
247 Changes in 43 repos by 73 authors