MediaWiki 1.39/wmf.16/Changelog

Core changes

 * - Branch commit for wmf/1.39.0-wmf.16 by trainbranchbot
 * - Fix edit API using summary as section title incorrectly by Bartosz Dziewoński
 * - Add edit API tests for combining 'summary' and 'sectiontitle' by Bartosz Dziewoński
 * - SVG Language selector should default to page language by Derk-Jan Hartman
 * - Hard deprecate QueryPage::getSQL by Alexander Vorwerk
 * - SECURITY: Escape welcomeuser message passed to showSuccessPage by sbassett
 * - ApiBase: Reset self::$filterIDsCache between tests by daniel
 * - Get rid of warnings on PHP 8.1  by Aryeh Gregor
 * - Avoid passing null to trim in SkinTemplate by Sam Wilson
 * - Allow any SVG language tag that is well formed IETF by Derk-Jan Hartman
 * - phpunit: Restore default progress reporter and add MWTestDox option by Timo Tijhof
 * - SpecialStatistics: Use userGroupManager->listAllGroups for getGroupStats by Stang
 * - Support requesting undetermined SVG language by Derk-Jan Hartman
 * - Change Kanuri autonym to lowercase by Amir E. Aharoni
 * - Avoid passing null to strcasecmp, for PHP 8.1 by Sam Wilson
 * - Make the ParsoidHandler base class usable by the parsoid extension. by daniel
 * - SpecialWhatLinksHere: Fix patchwork in filter localisation messages by Bartosz Dziewoński
 * - Remove some unused localisation messages by Bartosz Dziewoński
 * - StatusValue: include type in toString output by daniel
 * - Improve ImagePage::doRenderLangOpt/File::getMatchedLanguage  by Umherirrender
 * - Update Codex from v0.1.0-alpha.6 to v0.1.0-alpha.7 by Anne Tomasevich
 * - Namespace localisation updates for Kyrgyz language by MarcoAurelio
 * - Revert "Restrict img tags to the maximum available space"  by Esanders
 * - Revert "phpunit: Default to vendor/bin/phpunit, remove suites.xml"  by Lucas Werkmeister (WMDE)
 * - ParserTestRunner: Fix wiki url for Parsoid-specific config by Subramanya Sastry
 * - ParserTests: Reset ParsoidSiteConfig always by Subramanya Sastry
 * - Add namespace names for Twi by Amir E. Aharoni
 * - Database::queryMulti, buildExcludedValue cleanup by Tim Starling
 * - rdbms: allow merging IDatabase::upsert rows with current ones by Aaron Schulz
 * - rdbms: Add multi-statement query support to Database by Aaron Schulz
 * - rdbms: move mysql isQuotedIdentifier override to SQLPlatform by Aaron Schulz
 * - Repair language selector for SVGs by Derk-Jan Hartman
 * - phpunit: Default to vendor/bin/phpunit, remove suites.xml  by Kosta Harlan
 * - objectcache: optimize WANObjectCache::setInterimValue by using set by Aaron Schulz
 * - Sync up with Parsoid parserTests by Arlo Breault
 * - Remove use of deprecated nextSequenceValue method in SqlBlobStore by Aaron Schulz
 * - SpecialBlock: Improve the look of initial error messages by Bartosz Dziewoński
 * - Follow up to d522079c: Fix crashes with skipped tests. by C. Scott Ananian
 * - ApiTestCase: Support APIs with parameter prefixes in doApiRequestWithToken by dylsss
 * - Set alt in galleries, despite caption being visible   by Arlo Breault
 * - Collect autoloader info in ExtensionProcessor by daniel
 * - phpunit: Only report the slowest 25 tests over 100ms, not 50 over 50ms by James D. Forrester
 * - ParserCache: always use JSON by daniel
 * - HTMLInfoField: Ensure ID is included for the 'info' field. by dreamyjazz
 * - composer.json: Reference a single phpunit script by Kosta Harlan
 * - maintenance: Display the birth date & age of a wiki install by Derick Alangi
 * - Add Fante (fat) to Names.php by Amir E. Aharoni
 * - mediawiki.base: Move some variables inline by Timo Tijhof
 * - rdbms: make DatabaseSqlite::doSelectDomain handle table prefix changes by Aaron Schulz
 * - ParserTestRuner: Init 'selser' to prevent 'Undefined index' warnings by Subramanya Sastry
 * - docs: Move, clarify and cross-ref "DI Principles" for easy reference by Timo Tijhof
 * - ChangeTags: Fix MessageLocalizer/RawMessage hack by Bartosz Dziewoński
 * - Restrict img tags to the maximum available space by Jon Robson
 * - rdbms: Move cpStash message to ChronologyProtector.php by Timo Tijhof
 * - DiffHistoryBlob: Remove workarounds for old PECL xdiff versions by Kevin Israel
 * - DiffHistoryBlob: Don't check for hash PHP extension by Kevin Israel
 * - Load mediawiki.diff with mediawiki.diff.styles by xiplus
 * - REST: Hide exception message when wgShowExceptionDetails=false by Timo Tijhof
 * - Update the generic watchlistedit-too-many message to include a success message by Klein Muçi

Vendor

 * - Bump parsoid to 0.16.0-a12        by Arlo Breault

AbuseFilter

 * - Add class to AF log contribs link by TerraCodes

CentralAuth

 * - Bump minimum required version for upgrade to 1.31 by Umherirrender
 * - Move image and icons into images folder by Umherirrender
 * - Add an AbuseFilter variable for global edit count of the user by Matěj Suchánek
 * - Use Html::successBox by Jon Robson

CheckUser

 * - Respect the wiki when performing autoblocks  by Alexander Vorwerk
 * - SpecialCheckUser::IPEditsTooMany: Fix handling of \n by Martin Urbanec
 * - Use OOUI in the CIDR calculator and checkuserblock form  by dreamyjazz
 * - Remove reverted message keys from qqq.json by dreamyjazz
 * - Ensure that on unprovided XFF header the DB stores nothing by dreamyjazz
 * - Conditionally show block step in Special:Investigate GuidedTour by Thalia
 * - Replace deprecated calls and code cleanup by dreamyjazz
 * - Convert to abstract schema by Umherirrender

CirrusSearch

 * - Truncate failed requests errors to 4kB by Erik Bernhardson
 * - metastore: Don't use versioning semantics for saneitize by Erik Bernhardson

Cite

 * - CitationContextItem: Manually suppress the generic context item by Ed Sanders

Citoid

 * - VE: Make CitoidReferenceContextItem a real class by Ed Sanders

cldr

 * - Add Tai Nuea (tdd) by Raymond

CodeMirror

 * - Remove $wgCodeMirrorEnableBracketMatching feature flag by Adam Wight
 * - Merge accessibility-mindful colors into base styles by Adam Wight
 * - Remove $wgCodeMirrorAccessibilityColors feature flag by Adam Wight

ContentTranslation

 * - Allow beta invitation popup to be suppressed with query string param by Ed Sanders
 * - Collect citation tools from ve.ui.mwCitationTools directly by Ed Sanders
 * - SX: Fix JS error for clicking on nested element inside sentence by NikG
 * - Unadapted inline template causing js error and preventing translation restore by Santhosh Thottingal
 * - SX: Add tests for subSection model by NikG

DiscussionTools

 * - MemoryStorage: Setup this.data before calling parent constructor by Ed Sanders
 * - Prefer late static binding over self:: by Ed Sanders
 * - Follow-up I46a58f6a: Add missing test runner by Ed Sanders
 * - Revert "Localisation updates from https://translatewiki.net." by Bartosz Dziewoński
 * - Show createpage preference only when feature is available by na1307
 * - TagHooks: Make static method for obtaining DiscussionTools tags by Kosta Harlan
 * - Clarify subject placeholder wording by EpicPupper

DonationInterface

 * - GatewayChooser still_include_if_currency_is_not_supported by Andrew Green
 * - Add gateway chooser test cases for bt and cash by Elliott Eggleston
 * - add more countries for adyen, not set as default by wfan

Echo

 * - Pass Echo configuration to mobile by Jon Robson

EntitySchema

 * - Use SkinTemplateNavigation::Universal instead of SkinTemplateNavigation by Lucas Werkmeister

Gadgets

 * - Namespace translations for Kyrgyz language by MarcoAurelio

Graph

 * - Unhardcode "/w" from the path to api.php (for non-Wikimedia wikis) by Edward Chernenko

GrowthExperiments

 * - MentorStore::getMenteesByMentor: Require $mentorRole by Martin Urbanec
 * - [tests] Add QuitMentorshipTest by Martin Urbanec
 * - QuitMentorship: Only process primary mentors by Martin Urbanec
 * - Correct grammar in a message by Amir E. Aharoni
 * - Update pageviews's URL to pageviews.wmcloud.org by Martin Urbanec
 * - Move wrapping intro text to quotation marks into Mentorship class by Martin Urbanec
 * - [docs] WikiPageConfigWriterFactory: Make it clear what passing null as $performer does by Martin Urbanec
 * - [i18n] Do not put "mentor" in quotation marks by Martin Urbanec
 * - Suggested edits: Fix loading states when fetching additional tasks by MewOphaswongse
 * - NewcomerTasksStore: update quality gate config when the task queue is set by MewOphaswongse
 * - Populate cache from listTaskCounts when querying growth topics by MewOphaswongse

ImageSuggestions

 * - Maintenance script that sends image suggestions  by Matthias Mullie

IPInfo

 * - Use gender-specific pronouns in logentry-ipinfo-change_access by diesel kapasule

JsonConfig

 * - Catch MWException of Language::factory by Lucas Werkmeister

Kartographer

 * - Force empty properties to be JSON serialized as an object by Thiemo Kreuz
 * - Kartographer: Improve warning of external content warning by EpicPupper

Math

 * - Remove special handling of math in sections by Petr Pchelko
 * - Improve description of default rendering mode by Moritz Schubotz (physikerwelt)

MediaSearch

 * - Fix: Cannot read properties of null (reading 'toUpperCase') by Mark Shenouda
 * - Fix: Search result box is not the same height across media types by Mark Shenouda

Popups

 * - Remove unnecessary vendor prefixes and mixins for animations by Ed Sanders

Scribunto

 * - Namespace translations for Kyrgyz language by MarcoAurelio

SimilarEditors

 * - Check for exact values in TimeOverlapTest by Thalia
 * - Add test coverage for TimeOverlap by AnaïsGueyte
 * - Make SimilarEditors testable on beta by STran

TemplateWizard

 * - Remove $wgTemplateWizardTemplateSearchImprovements feature flag by Adam Wight

Translate

 * - Strip tvar from source when preprocessing by Isabelle Hurbain-Palatin

TwoColConflict

 * - Replace Message mocks with anonymous classes where possible by Thiemo Kreuz

UniversalLanguageSelector

 * - Update language name search index by Niklas Laxström
 * - Update jquery.ime and jquery.uls from upstream by Amir E. Aharoni
 * - Add explicit dependency to oojs RL module by Santhosh Thottingal

UploadWizard

 * - Several improvements to coordinate parsing code by Thiemo Kreuz

VisualEditor

 * - Fix tab messages being changed wrong by JavaScript by Bartosz Dziewoński
 * - WIP: selenium: Enable Content Editable should save an edit by Željko Filipin
 * - Remove $wgVisualEditorTransclusionDialogBackButton feature flag by Adam Wight
 * - Remove $wgVisualEditorTransclusionDialogSuggestedValues feature flag by Adam Wight
 * - Tighten spacing in VE template dialog by Svantje Lilienthal
 * - Remove updated feature message about search by Svantje Lilienthal
 * - Update VE core submodule to master (78ab52b71) by Bartosz Dziewoński
 * - selenium: Add EditPage.saveComplete by Esther Akinloose
 * - Show all elements when expanding a collapsible description by Andrew Kostka
 * - Change template model to not merge conflicting aliased parameters  by Thiemo Kreuz
 * - Update toolbar negative margin for new padding in vector-2022 by Ed Sanders
 * - Get rid of figure-inline compatibility by Arlo Breault
 * - MobileArticleTarget: Update contentSub by Ed Sanders
 * - MobileArticleTarget: Update categories list if present by Ed Sanders
 * - Remove global class aliases by Reedy
 * - selenium: Better assertion after saving the page  by Željko Filipin
 * - selenium: Run only one test in Jenkins daily job by Željko Filipin
 * - Split advanced language variants messages by Amir E. Aharoni
 * - Improve test coverage of template dialog outline by Thiemo Kreuz
 * - Add prefixsearch fallback test for MWTemplateTitleInputWidget by Thiemo Kreuz
 * - Remove/update template related comments that just repeat the code by Thiemo Kreuz

Wikibase

 * - REST: Differentiate 404 Not Found examples by sihe
 * - REST: Differentiate 400 Invalid input examples by sihe
 * - REST: Add ItemRetriever implementation by Jakob Warkotsch
 * - REST: Implement ItemUpdater by Jakob Warkotsch
 * - REST: Add EditMetadataValidator by Jakob Warkotsch
 * - REST: Use StatementValidator in AddItemStatementValidator by Jakob Warkotsch
 * - REST: Add StatementValidator by Jakob Warkotsch
 * - REST: Polish OpenAPI spec document by sihe
 * - Change API tests from unit tests to integration tests by Lucas Werkmeister
 * - Rename validateClaimSnaks to validateStatementSnaks by Jakob Warkotsch
 * - SetClaimTest: Mock API request to siteinfo by Kosta Harlan
 * - REST: Add AddItemStatement use case by Jakob Warkotsch
 * - Use the actual local domain in FakeLoadBalancer in case something uses selectDomain by Aaron Schulz
 * - Use new display part in entity selector some more by Lucas Werkmeister

WikibaseLexeme

 * - Add NaN undefineds to message by Lucas Werkmeister
 * - Lexidata: add maxLemmaLength to init parameter list by Noa wmde
 * - Lexical data: Improve copy for per-field errors by Noa wmde

WikibaseMediaInfo

 * - Only manipulate mediainfo content by Matthias Mullie

WikibaseQualityConstraints

 * - Bump unexpected from 12.0.4 to 13.0.0 by Addbot
 * - Bump jasmine from 4.1.0 to 4.2.0 by Addbot
 * - Reenable MediaWiki.PHPUnit.AssertEmpty.AssertEmptyUsed by Lucas Werkmeister
 * - Bump sinon from 13.0.2 to 14.0.0 by Addbot

WikiEditor

 * - Realtime preview: allow loading as a gadget   by Sam Wilson
 * - Realtime preview: match scroll positions between textarea and preview by Sam Wilson
 * - URI-decode external link page names when turning them into local links by Sam Wilson

WikiLambda

 * - code: Use arrays when writing multiple HTML.php classes by James D. Forrester
 * - add formatting for untitled functions by jkieserman
 * - Update function-schemata sub-module to HEAD (3cdf1cd) by James D. Forrester
 * - schema: Move all sql files to new sql folder by Umherirrender
 * - ApiFunctionCallTest::testExecuteRequestFailedWithMock: Update failure case by James D. Forrester
 * - ApiFunctionCallTest::testExecute: Update how to work with mock orchestrator by James D. Forrester
 * - Drop 'Orchestrated' and 'Tested' wrappers from API return objects  by James D. Forrester
 * - Rename "error" to "metadata" in performFunctionCall  by dmartin
 * - Vue ResponseEnvelope component handles map-based Z22 by dmartin
 * - ZResponseEnvelope: Cope with Maps as well as Errors by James D. Forrester
 * - Provide ZTypedMap.php by James D. Forrester
 * - Provide ZTypedPair.php by James D. Forrester

WikimediaMaintenance

 * - addWiki.php: Use abstract schema sql file for CheckUser by Umherirrender

Wikisource

 * - Optimize SVG and load it with ResourceLoader by Sam Wilson

Wikistories

 * - Play wikistories with cover frame at the beggining, showing the story title. by Eduardo
 * - Scroll long text on no-js viewer by Stephane Bisson
 * - Update Design on Monday by hueitan
 * - Edit story in StoryBuilder by Stephane Bisson
 * - Scroll the current frame into view only horizontally by Stephane Bisson

MinervaNeue

 * - Notification icon should be localized by Jon Robson

Vector

 * - Disable table of contents toggle on VE activation by Jon Robson
 * - Collapse ToC into page title at narrow view ports with CSS/template changes only by bwang
 * - [Refactor] Generalize checkbox hack code by Jon Robson
 * - [Refactor] Separate sidebar persistence code from checkbox hack code by Jon Robson
 * - Hide TOC in print mode and clean up other print styles by bwang
 * - skin.json: Fix 'tittle' typo in documentation by Ed Sanders
 * - Move menu border style to legacy by bwang
 * - Restyle Vector tabs in modern Vector by Jan Drewniak
 * - Make footer take up full width by Jon Robson
 * - [Grid] Vector 2022 layout uses CSS grid by Jon Robson
 * - Follow-up: Update menu label elements by bwang
 * - [Grid] Minor HTML restructure for grid by Jon Robson

VisualEditor/VisualEditor

 * - build: Update language lists by Bartosz Dziewoński
 * - ModeledFactory: Allow candidates to suppress other candidates when matching by Ed Sanders

No changes

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

Total changes
212 Changes in 45 repos by 74 authors