MediaWiki 1.40/wmf.6/Changelog

Core changes

 * - Branch commit for wmf/1.40.0-wmf.6 by trainbranchbot
 * - OutputPageTest: Adjust testAddBodyClasses by Func
 * - Add preference to control Special:Search thumbnails by Matthias Mullie
 * - Have Special:UserGroupRights display user group technical name by Novem Linguae
 * - Maintenance: Move OrderedStreamingForkController to PSR-4 namespace by Timo Tijhof
 * - languages: Consistently use @ingroup Languages in messages/*.php by Fomafix
 * - Move ForkController to MediaWiki/Maintenance/ namespace by Amir Sarabadani
 * - Remove PHPCS exclude-pattern */languages/* by Fomafix
 * - Rename test case class names to match the file names by Fomafix
 * - language: Change Message from false to null internally for user lang by Fomafix
 * - profiler: Actually output profiler data in CLI/Maintenance mode by Aaron Schulz
 * - Create Hook to check block's error messages from extensions by AnaïsGueyte
 * - SECURITY: Fix XSS in DYM by David Causse
 * - Parsoid: Fix e2e tests for size limits. by daniel
 * - ApiSandbox: Use 'formatversion=2' instead of 'latest' by Bartosz Dziewoński
 * - SpecialUpload: Remove redundant message about deleted files by Bartosz Dziewoński
 * - Add icons to Special:Preferences mobile layout by suecarmol
 * - title: Fix 'if' typo in Title::getWikiId docs by Timo Tijhof
 * - Special:Contribute: Use canonical special page name for message keys by Moh'd Khier Abualruz
 * - Translate: Special page names in Polish by Msz2001
 * - SpecialVersion: Clean up count, early return, strict types by Timo Tijhof
 * - Use delegation to reduce number of event listeners on history pages by Francois Pignon
 * - Auto-discover core parser test files by C. Scott Ananian
 * - Remove $wgParserTestFiles, deprecated in MW 1.30 by C. Scott Ananian
 * - Commons files can have thumbnails too by Matthias Mullie
 * - Maintenance script updates to support ucfirst title case by Tim Starling
 * - jquery.tablesorter: Convert custom cases to native QUnit.test by Timo Tijhof
 * - extension.schema.v2: Synchronize QUnitTestModule definition with ResourceModules by Bartosz Dziewoński
 * - jquery.tablesorter: Group parser test cases into nested module by Timo Tijhof
 * - Sync up core repo with Parsoid by C. Scott Ananian
 * - Add Promise-Non-Write-API-Action header to page.preview.js by Aaron Schulz
 * - Sync up core repo with Parsoid by C. Scott Ananian
 * - Add some helpers to filter properties out of var_dump by Tim Starling
 * - jquery.tablesorter: Inline vars in test cases by Timo Tijhof
 * - rdbms: remove DB domain parameter from LoadMonitor methods by Aaron Schulz
 * - rdbms: Instead of reconfiguring all of LB, just remove depooled db by Amir Sarabadani
 * - pingback: Update schema revision by Alexander Vorwerk
 * - lockmanager: remove PostgreSqlLockManager by Aaron Schulz
 * - block: Remove temporary logging for closed task from DatabaseBlock by Thalia
 * - rdbms: Introduce DatabaseFlagsHolder and move some internal logic there by Amir Sarabadani
 * - Add Magahi language (mag) by Amir E. Aharoni
 * - Rescale images based on width alone by Matthias Mullie
 * - benchmarks: Add benchmark for JsonCodec by daniel
 * - docs: Add missing backticks to `@deprecated` mentions by Timo Tijhof
 * - Revert "Skins: Config flag controls contributions link" by Kosta Harlan
 * - parser: Make the behavior of REVISIONTIMESTAMP consistent by Func
 * - Update MessagesShn.php by Stang
 * - ConditionalHeaderUtil: Handle `If-None-Match: *` by Jakob Warkotsch
 * - ApiQueryLanguageinfo: Allow fetching variant names from API by Func
 * - Use markTestSkippedIfExtensionNotLoaded shortcut in tests by thiemowmde
 * - Search thumbnails visual tweaks by Matthias Mullie
 * - Remove deprecated global function wfLogProfilingData by Umherirrender
 * - Upgrading guzzlehttp/guzzle (7.4.5 => 7.5.0) by Reedy
 * - Include file and line number in job errors by Brian Wolff

Vendor

 * - Add a "run composer via docker" example to README by Ollie Shotton
 * - Update symfony/* by Reedy
 * - Upgrading ezimuel/ringphp (1.1.2 => 1.2.0) by Reedy
 * - Upgrading lcobucci/jwt (4.1.5 => 4.2.1) by Reedy
 * - Upgrading data-values/geo (4.2.3 => 4.3.0) by Reedy
 * - Upgrading guzzlehttp/guzzle (7.4.5 => 7.5.0) by Reedy
 * - Upgrading ramsey/collection (1.1.4 => 1.2.2) by Reedy

CampaignEvents

 * - Add validation for tracking tools by Daimona Eaytoy
 * - Work around PHP bugs in timezone validation by Daimona Eaytoy
 * - Fix double-escaping in "more details" dialog by Daimona Eaytoy

CentralAuth

 * - Create HTML elements with jQuery and avoid .html by Fomafix

CentralNotice

 * - Add ESI test string to base HTML by Andrew Green
 * - Add description for Special:Preferences layout by suecarmol
 * - Optimize regular expression code in PHP and JavaScript by Thiemo Kreuz

CheckUser

 * - Show CUs whether the password matched on login attempts to locked accounts by dreamyjazz
 * - Remove InvestigateButtonMenuSelectWidget by AnaïsGueyte
 * - Make the login log link go to the user's logs and fix cuc_title default by dreamyjazz
 * - Add multiple integration tests for Hooks.php by dreamyjazz
 * - Add a hook to allow modification of the cu_changes row before insertion by dreamyjazz
 * - Use GlobalBlocking::getUserBlock over User::isGloballyBlocked by dreamyjazz

CirrusSearch

 * - Reduce Cirrusdoc API payload by Simone Cuomo
 * - UpdateOneSearchIndexConfig: Cleanup failed index creations by Erik Bernhardson
 * - Monitor doc sizes in statsd by David Causse
 * - Remove ConfigUtils::fatalError method by Erik Bernhardson

ContentTranslation

 * - SX: RetryMtCard shows up alongside a proposed translation by wangombe
 * - SX UI lib: Export colors to be available without injecting a plugin by NikG
 * - SX Eventlogging: Add web_pageview_id and web_session_id to the events by Santhosh Thottingal
 * - CX ULS relevant languages entrypoint: Hide banner when user types by NikG
 * - composer.json: Add ext-xmlwriter to suggests by Reedy
 * - mffrequentlanguages entrypoint: Avoid showing current language as missing by Santhosh Thottingal
 * - SX: Show error message and options to retry when MT fails by wangombe
 * - MF languagesearcher: Avoid showing option to translate to current language by Santhosh Thottingal
 * - AddContributeCardEntryPoint: Use RequestContext::getMain by Kosta Harlan

DiscussionTools

 * - Follow-up I394f02912: Use existing class API to move button away from sticky header by Ed Sanders
 * - Re-enable fixed JS parser tests by Bartosz Dziewoński
 * - Translate: Special page names into Polish by Msz2001
 * - Fix '?dtenable=1' on mobile by Ed Sanders
 * - Ship HTML test files for JS using 'packageFiles' instead of 'templates' by Bartosz Dziewoński
 * - Autogenerate list of files for JS test module instead of maintaining it by hand by Bartosz Dziewoński
 * - Use FormatJson helper for outputting pretty JSON for tests by Bartosz Dziewoński
 * - testUtils.js: Fix selector for old parser tests by Ed Sanders
 * - testUtils.js: Serialize timestamp with #getTimestampString by Ed Sanders
 * - parser.test.js: New test for each case, as in modifier.test.js by Ed Sanders
 * - modifier.test.js: Improve test descriptions by Ed Sanders
 * - Log page/revision IDs when the page/revision seems to be missing by Bartosz Dziewoński
 * - Use ParsoidOutputAccess when RESTBase is not set up (WMF private wikis) by Bartosz Dziewoński
 * - Remove all hacks for old HTML in HTTP cache or parser cache by Bartosz Dziewoński
 * - Use RevisionLookup methods instead of ApiParsoidTrait methods by Bartosz Dziewoński
 * - Rewrite persistRevisionThreadItems by Bartosz Dziewoński
 * - ThreadItemStore: Move some work in insertThreadItems outside transactions  by Bartosz Dziewoński

DonationInterface

 * - Adyen: Don't show general error on validation fail by Elliott Eggleston
 * - Avoid loading external scripts on error forms by Elliott Eggleston
 * - Avoid calling setClientVariables on error in getForm by Elliott Eggleston
 * - Fix order_id reset on recurring change by Elliott Eggleston
 * - Add try catch for adyen to catch if any adyen connection been blocked by wfan

Echo

 * - Api: Minor code updates by Reedy
 * - Namespace Api classes by Reedy

ExternalGuidance

 * - Remove redundant CSS selector by Bartosz Dziewoński

FileImporter

 * - Use GlobalBlocking::getUserBlock instead of User::isGloballyBlocked by WMDE-Fisch

GeoData

 * - Replace deprecated Language::factory by Fomafix

GlobalBlocking

 * - Use AbstractBlock types in SpecialGlobalBlockList by Thalia
 * - Fix documentation for GlobalBlockingHooks::onUserIsBlockedGlobally by Thalia
 * - Override GlobalBlock::appliesToPasswordReset to return true by AnaïsGueyte
 * - Update GlobalBlock to extend AbstractBlock by STran

GrowthExperiments

 * - CacheBackedImageRecommendationProvider: Instrument miss rate by Kosta Harlan
 * - api-testing: Skip the QUIBBLE_APACHE environment check by Kosta Harlan
 * - Mentee filters: always use mw.user.options values to initialise by Sergio Gimeno
 * - Only override article size limits in quibble by Kosta Harlan
 * - selenium: Use runJobs.php instead of rebuildrecentchanges by Kosta Harlan
 * - selenium: Adjust set up code and logging by Kosta Harlan
 * - Raise article size limits for Selenium tests by Gergő Tisza
 * - selenium: Restore LocalSettings.php after GrowthExperiments tests by Kosta Harlan
 * - selenium: Rework and re-enable suggested edit navigation test by Kosta Harlan
 * - Mentor dashboard: use vue globals for passing filter functions to components by Sergio Gimeno
 * - selenium: Use Special:CreateAccount for account creation  by Kosta Harlan
 * - api-testing: Restart php-fpm after restoring LocalSettings by Kosta Harlan
 * - selenium: Improve error reporting and fail early by Kosta Harlan
 * - changeWikiConfig: Throw error if unable to decode JSON by Kosta Harlan

ImageMap

 * - Sync up ImageMap repo with Parsoid by C. Scott Ananian

IPInfo

 * - Fix IPInfo Help popup opacity by AnaïsGueyte
 * - Use MaxMind translations in country and location data by AnaïsGueyte

Kartographer

 * - Revert "Show an outline using CSS when the fullscreen map is in focus" by Svantje Lilienthal
 * - Use $this->getServiceContainer in test cases by Fomafix
 * - Show an outline using CSS when the fullscreen map is in focus by Andrew Kostka
 * - Non-ambiguous distinction between GeoJSON array and error list by thiemowmde
 * - Skip expensive wikitext parsing when there is nothing to parse by thiemowmde

MassMessage

 * - Fix variable names in ext.MassMessage.create.js by Kunal Mehta
 * - SpecialCreateMassMessageList: Use hide-if for import source by Kunal Mehta
 * - SpecialCreateMassMessageList: Use a TitleInputWidget instead of jquery.ui by Kunal Mehta

MobileFrontend

 * - Clean up after default editor a/b test by David Lynch

MultimediaViewer

 * - Streamline user options check for readability by Thiemo Kreuz

NavigationTiming

 * - ext.navigationTiming: Use native packageFiles for virtual config.json by Timo Tijhof

ORES

 * - Various minor code cleanups by Thiemo Kreuz
 * - Make use of the ?? syntax where it makes sense by thiemowmde
 * - Use PHPUnit's convenience shortcuts where possible by thiemowmde

PageTriage

 * - Promise cleanup by Chlod Alejandro
 * - PageCuration: afd_status tag wasn't being set correctly for AFD-ed by MPGuy2824
 * - Fixing bad translatewiki commit which is causing test jobs to fail by MPGuy2824
 * - Remove "Deletion tag log" from Special:Log by NovemLinguae

Phonos

 * - Engine: add reminder to run maint script after bumping CACHE_VERSION by MusikAnimal
 * - Set a miniumum height for the button by Sam Wilson
 * - Engine: Set STORAGE_PREFIX to `phonos-render` by TheresNoTime

Poem

 * - Sync up Poem repo with Parsoid by C. Scott Ananian

ProofreadPage

 * - Source link should also use wgProofreadPageBookNamespaces by Sohom
 * - Add ability to configure Book namespaces on a per wiki basis by Sohom
 * - Disallow the PagelistWidget from loading when the "empty" value is used by Sohom

ReadingLists

 * - Anonymize preview of reading lists. by Dmitry Brant
 * - Don't show import message if it hasn't been defined by Jon Robson

Scribunto

 * - Include the bad timestamp string in the error when unable to parse it by Jackmcbarn
 * - Add mw.loadJsonData by Kunal Mehta
 * - Add strict.lua to replace "Module:No globals" by Kunal Mehta

TimedMediaHandler

 * - Sync up TMH repo with Parsoid by C. Scott Ananian
 * - Inject services in Hooks by Fomafix
 * - Inject services in API by Fomafix

Translate

 * - Message handle permission: Avoid performing checks if action is read by Abijeet

UniversalLanguageSelector

 * - Update jquery.uls from upstream by Amir E. Aharoni

UploadWizard

 * - Namespace extension by Reedy

VisualEditor

 * - GalleryContextItem: Only count image node children by Ed Sanders
 * - Remove AutoConfig setting by daniel
 * - Don't try to contact RESTbase directly when in PHP direct mode.  by daniel
 * - Local implementation of ParsoidClient (DirectParsoidClient) by daniel
 * - Use RevisionLookup methods instead of ApiParsoidTrait methods by Bartosz Dziewoński
 * - selenium: Move code to beforeEach and afterEach hooks by Esther Akinloose

Wikibase

 * - Use StaticUserOptionsLookup in OutputPageBeforeHTMLHookHandlerTest by Lucas Werkmeister
 * - Use assertMatchesRegularExpression in EntityModificationTestHelper by Lucas Werkmeister
 * - Use markTestSkippedIfExtensionNotLoaded shortcut in tests by thiemowmde
 * - Fix namespace condition in Special:UnconnectedPages by Lucas Werkmeister
 * - PropertyLabelNotResolvedException: Add default $message by Marius Hoch
 * - Bump actions/cache from 2 to 3.0.11 by Addbot
 * - Add ircs as supported protocol for URL values by Lectrician1
 * - DM: Add __(un)serialize to Snak (and implementations) by Marius Hoch
 * - DM: Add abstract __(un)serialize to SerializableEntityId by Marius Hoch
 * - Log entityViewInit errors to browser console by Lucas Werkmeister
 * - DOC: Fix nested lists by Ollie Shotton
 * - DOC: Remove narrow non-breaking space characters by Ollie Shotton
 * - DOC: Fix broken references and typos by Ollie Shotton
 * - REST: Add and lint native property type hints by Jakob Warkotsch
 * - Add ArrayObject method return type hints to SnakList by Marius Hoch
 * - Add type hints for IteratorAggregate::getIterator implementations by Marius Hoch
 * - REST: Remove `If-None-Match: *` override by Jakob Warkotsch
 * - REST: Document json data format differences by sihe
 * - REST: Prettify code using arrow functions by Jakob Warkotsch
 * - Adding i18n for the Wikibase Repository Item, Property, Query tabs by Winston Sung
 * - Bump mediawiki/mediawiki-phan-config to 0.12.0 by Jakob Warkotsch
 * - Bump wikibase-data-values-value-view to HEAD by Marius Hoch
 * - Make Wikibase error message "Malformed input" more meaningful by Hasan Akgün
 * - Add int type hint to Countable::count implementations by Marius Hoch

WikibaseCirrusSearch

 * - Make use of the createMock shortcut in tests by Thiemo Kreuz

WikibaseLexeme

 * - LexemeNotFoundException: Add default $message by Lucas Werkmeister
 * - Add missing return types by Lucas Werkmeister

WikibaseMediaInfo

 * - MediaInfoId: Add (return) type hints to __(un)serialize by Marius Hoch
 * - Make use of the createMock shortcut in tests by Thiemo Kreuz

WikibaseQualityConstraints

 * - Use MockBuilder::getMockForAbstractClass for SerializableEntityId by Marius Hoch
 * - Update data-values versions in composer.json by Lucas Werkmeister
 * - Use shorter array-style callback syntax in renderer by Thiemo Kreuz
 * - Make use of native array_column where possible by Thiemo Kreuz
 * - Make use of PHPUnit convenience shortcuts where possible by Thiemo Kreuz

Wikidata.org

 * - updateQueryServiceLag: Add lb(-pool) options for forward compatibility  by Marius Hoch

WikidataPageBanner

 * - build: Drop PHP dependency, irrelevant given MediaWiki version by James D. Forrester

WikiLambda

 * - ZResponseEnvelope.php: Drop old-style (non-ZTypedMap) Z22 support by James D. Forrester
 * - Update function-schemata sub-module to HEAD (d41dee3)    by James D. Forrester
 * - i18n: Remove 51 unused translation keys by teleosteen
 * - Remove Vue layer functions obsoleted by use of metadata dialog by dmartin
 * - Drop old-style (non-ZTypedMap) Z22 support in Vue layer by dmartin
 * - Implementation composition: Fix if argument of function has no label in selected language or fallback language, show default "input X" by ddw
 * - Follow-up e5a368704: Actually declare the icon as needed by James D. Forrester
 * - Add meta-data help link and icon to TesterTableStatus.vue by dmartin
 * - Drop use of non-ZMap Z22 creation in PHP tests by dmartin
 * - Move meta-data help link into template and add an icon by James D. Forrester
 * - Add Help link to metadata dialog by dmartin
 * - Fix label-dependent data model behind the function page. Part B. by ddw
 * - Remove the Function Definition scrollbar in favor of sticky work summary by Florent
 * - Function view: Fix alias list for additional languages always have an empty string as first item by ddw
 * - Fix false positives when checking the existence of components by Florent
 * - Initial implementation of ZObjectDiffer by gengh
 * - Aligned to the right of labels instead of below in function creation by Florent
 * - Fix language ISO chip tooltip in Function View by Florent
 * - Evaluate tests when opening the tab "Details", not before by temitope adesoji
 * - Handle metadata elements implementationId and implementationType by dmartin
 * - Fix bug where clicking to change input in Work Summary throws error. by EWright
 * - Remove unused VueJS Components by Florent

WikimediaEvents

 * - Fix editattempt_block country_code not being string by David Lynch
 * - Hooks: Remove EditConflict instrument by Sam Smith
 * - devserver: Simplify non-integrated mode with composer instead of docker by Timo Tijhof
 * - Add a simple development server by Sam Smith
 * - Bump EditAttemptStep schema version by David Lynch

WikimediaIncubator

 * - Generalize Special:MyMainPage to Special:MyWiki by Jon Harald Søby

WikimediaMessages

 * - Add messages for Wikimedia Venezuela (vewikimedia) by gerritbot
 * - Add Special:MyLanguage prefix to URL in ipinfo message by Stang

Wikistories

 * - Add contribution_attempt_id to contribution events by Stephane Bisson
 * - Improve wikistory text display per component approach by Eduardo

MinervaNeue

 * - hooks: implement PreferencesGetLayout by jsn

Vector

 * - Create user preference to turn fixed width on and off by Moh'd Khier Abualruz
 * - Split MenuPortal.less into legacy and modern Vector  by Jan Drewniak

No changes

 * 3D
 * AbuseFilter
 * ActiveAbstract
 * AdvancedSearch
 * AntiSpoof
 * ApiFeatureUsage
 * ArticleCreationWorkflow
 * ArticlePlaceholder
 * Babel
 * BetaFeatures
 * BounceHandler
 * Calendar
 * Campaigns
 * Capiunto
 * CategoryTree
 * CharInsert
 * ChessBrowser
 * Cite
 * CiteThisPage
 * Citoid
 * CodeEditor
 * CodeMirror
 * Cognate
 * Collection
 * CologneBlue
 * CommonsMetadata
 * ConfirmEdit
 * ContactPage
 * CreditsSource
 * Dashiki
 * Disambiguator
 * DismissableSiteNotice
 * DoubleWiki
 * Elastica
 * ElectronPdfService
 * EntitySchema
 * EventBus
 * EventLogging
 * EventStreamConfig
 * ExtensionDistributor
 * FeaturedFeeds
 * FileExporter
 * FlaggedRevs
 * Flow
 * FundraiserLandingPage
 * FundraisingTranslateWorkflow
 * GWToolset
 * Gadgets
 * GeoCrumbs
 * GlobalCssJs
 * GlobalPreferences
 * GlobalUsage
 * GlobalUserPage
 * GlobalWatchlist
 * GoogleNewsSitemap
 * Graph
 * GuidedTour
 * ImageSuggestions
 * InputBox
 * Insider
 * Interwiki
 * InterwikiSorting
 * Josa
 * JsonConfig
 * LabeledSectionTransclusion
 * LandingCheck
 * LdapAuthentication
 * Linter
 * LiquidThreads
 * Listings
 * LoginNotify
 * MachineVision
 * MapSources
 * Math
 * MediaModeration
 * MediaSearch
 * MobileApp
 * Modern
 * MonoBook
 * NearbyPages
 * NewUserMessage
 * Newsletter
 * Nostalgia
 * Nuke
 * OATHAuth
 * OAuth
 * OAuthRateLimiter
 * OpenStackManager
 * PageAssessments
 * PageImages
 * PageNotice
 * PageViewInfo
 * PagedTiffHandler
 * ParserFunctions
 * PdfHandler
 * PoolCounter
 * Popups
 * PropertySuggester
 * QuickSurveys
 * Quiz
 * RSS
 * RelatedArticles
 * Renameuser
 * RevisionSlider
 * SandboxLink
 * Score
 * SearchExtraNS
 * SearchVue
 * 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
 * UploadsLink
 * UrlShortener
 * VipsScaler
 * VisualEditor/VisualEditor
 * WebAuthn
 * WikiEditor
 * WikiLove
 * WikibaseLexemeCirrusSearch
 * WikimediaApiPortal
 * WikimediaApiPortalOAuth
 * WikimediaBadges
 * WikimediaEditorTasks
 * WikimediaMaintenance
 * Wikisource
 * XAnalytics
 * cldr
 * intersection
 * timeline
 * wikihiero

Total changes
248 Changes in 49 repos by 83 authors