MediaWiki 1.39/wmf.27/Changelog

Core changes

 * - Branch commit for wmf/1.39.0-wmf.27 by trainbranchbot
 * - Avoid PHP 8.1 failures in SpecialPreferencesTest::testT43337 by Aaron Schulz
 * - rdbms: rename "master" variables to "primary" in ChronologyProtector by Aaron Schulz
 * - rdbms: soft-deprecate tableNames by Lucas Werkmeister
 * - rdbms: Fix typo in ROLE_STATIC_CLONE value by Timo Tijhof
 * - actions: Migrate to SelectQueryBuilder API by Derick Alangi
 * - Block: Expose list of block types as constant by Gergő Tisza
 * - IcuCollation: Add mappings for versions 70 and 71 by Reedy
 * - Define concrete method in order to deprecate it in subclasses by Sébastien Beyou
 * - Revert "objectcache: avoid php 8.1 argument type warnings in genericKeyFromComponents" by Krinkle
 * - rdbms: remove getTopologyRootPrimary and clean up related fields/parameters by Aaron Schulz
 * - ResourceLoaderSkinModule: Document new interface styles by Jon Robson
 * - docs: Update database related documentation a bit by Amir Sarabadani
 * - Replace trivial usages of code in strings with concatenation by Thiemo Kreuz
 * - docs: Fix syntax of markdown link in DEVELOPERS.md by Timo Tijhof
 * - HTMLTransform: add more tests by daniel
 * - Followup on 02d13afa: Unbreak Parsoid parser test runs by Subramanya Sastry
 * - Add --dry-run flag to rebuildLocalisationCache.php by Ahmon Dancy
 * - Customise error message for invalid JSON, add hook by Siddharth VP
 * - ParsoidHandlerTest: Add tests to cover `tryToCreatePageConfig` by Derick Alangi
 * - Split `setOriginalData( ... )` to more related setters for encapsulation by daniel
 * - Fix continuations on second use in ApiSandbox by Sébastien Beyou
 * - rdbms: Remove synchronous pre-send waitForReplication fallback by Timo Tijhof
 * - Display page namespace with spaces instead of underscores when page doesn't exist by Bartosz Dziewoński
 * - ResourceLoaderSkinModule: Split up interface feature into multiple parts by Jon Robson
 * - Add a null check VueComponentParser to prevent php8.1 issues by Brian Wolff
 * - Sanitizer: Don't consider inline var CSS insecure by Michał Turek
 * - Do not compare byte-for-byte of serialized items in tests [php8.1] by Brian Wolff
 * - filerepo: avoid PHP 8 warnings in File::splitMime if $mime is null by Aaron Schulz
 * - ResourceLoader: Hoist and simplify `@covers` in test cases by Timo Tijhof
 * - Fix and document AbstractBlock::getPermissionsError by Gergő Tisza
 * - DifferenceEngine: Should respect skin option for rendering table of contents by Jon Robson
 * - Deprecate use of wvui library by Jon Robson
 * - SpecialRecentChangesLinked: Pass query builder instead of SQL by Amir Sarabadani
 * - Linker: Omit default value '' on Html::rawElement by Fomafix
 * - UserClearNewTalkNotificationHook: Add a \ before class name by Reedy
 * - tests: Migrate away from `setMwGlobals` by Derick Alangi
 * - mediawiki.storage: Update API guidance to mention new expiry feature by Timo Tijhof
 * - api: Deprecate ApiQuery::getNamedDB and ::selectNamedDB by Timo Tijhof
 * - rdbms: Remove obsolete cross-dc wait from ChronologyProtector by Timo Tijhof
 * - Replace usage of User::getOption by Roman Stolar
 * - DeleteAction: Improve messaging on successful page deletion by Dayllan Maza
 * - ApiTestCase: Drop testApiTestGroup forcing use of medium/large by James D. Forrester
 * - MigrateActors.php: ignore duplicate creations of actors by Sébastien Beyou

Vendor

 * - Bump parsoid to 0.16.0-a20      by Arlo Breault

AdvancedSearch

 * - Don't focus on search input when displaying results in Special:Search by Simone This Dot

ArticlePlaceholder

 * - Use NewStatement and NewItem from new namespace by Jakob Warkotsch

CampaignEvents

 * - Revert "Add timezone selector to Special:(Enable|Edit)EventRegistration" by Daimona Eaytoy
 * - Fix order of CSS rules for EventDetails by Daimona Eaytoy
 * - Add timezone selector to Special:(Enable|Edit)EventRegistration by Daimona Eaytoy
 * - Fix typos by Daimona Eaytoy
 * - Show reason why users cannot register on event page by Daimona Eaytoy
 * - Expose reason why it's not possible to (un)register in commands by Daimona Eaytoy
 * - Improve layout of EventDetails on smaller screens by Daimona Eaytoy
 * - Add the ability to search participants by Claudio Melo
 * - remove unnecessary API call when loading more participants by Claudio Melo
 * - UX improvements for "enable registration" header by Daimona Eaytoy
 * - UX improvements for the event details dialog on event page by Daimona Eaytoy
 * - Remove flatlist from location in enable registration form by Daimona Eaytoy
 * - Expand kebab menu on MyEvents to the other side for mobile support by Daimona Eaytoy
 * - Improve styling of registration header on small screens by Daimona Eaytoy
 * - Move join conditions to their place in EventsPager by Daimona Eaytoy
 * - Adjust visibility of suppressed users by Daimona Eaytoy

CentralAuth

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

CheckUser

 * - Remove parentheses from data provider name in comment by Thalia

Cite

 * - Sync up with Parsoid citeParserTests.txt by Arlo Breault
 * - Improve two error messages by Thiemo Kreuz

cldr

 * - minor typo spotted by Middle river exports
 * - Add Ghanaian Pidgin (gpe) by Raymond

ConfirmEdit

 * - Remove LEFT-TO-RIGHT MARK (U+200E) from comments by Fomafix
 * - Restore auth request ID from before namespacing by Gergő Tisza

ContentTranslation

 * - Remove LEFT-TO-RIGHT MARK (U+200E) from comments by Fomafix
 * - CX3 Build 0.2.0+20220825  by Santhosh Thottingal
 * - SX: Add missing import for MTProviderGroup by NikG
 * - Avoid double HTML escaping by Fomafix
 * - SX in Desktop: fix error on editing enablement after publishing by NikG
 * - SX in Desktop: fix CAPTCHA support by NikG
 * - SX in Desktop: first working implementation of publishing by NikG
 * - Fix event source for "newbytranslationmobile" entrypoint by NikG
 * - SX in Desktop: Add SectionTitleWidget and SectionTitleModel classes by NikG
 * - Section Translation in Desktop: Hide section title from editor by NikG
 * - Basic Publishing of section translation from desktop by Santhosh Thottingal
 * - Add a CSS class to mark sx mode in desktop by Santhosh Thottingal

DiscussionTools

 * - Fix boilerplate in maintenance scripts for WMF production by Bartosz Dziewoński
 * - percentDecode: Pre-escape query string separators (&,=) by Ed Sanders
 * - Support nested-directionality content by Ed Sanders
 * - ApiDiscussionToolsEdit: etag is optional by Bartosz Dziewoński
 * - Prefix browser title while replying/starting a new topic by Ed Sanders
 * - Update categories list when reloading page by Ed Sanders
 * - Fix updating of subtitle when reloading page for new comments by Ed Sanders
 * - Remove all stuff about legacy IDs by Bartosz Dziewoński
 * - Enhance vector-2022 table of contents by Bartosz Dziewoński
 * - Show latest comment info in subtitle by Ed Sanders
 * - persistRevisionThreadItems: Allow processing current revisions only by Bartosz Dziewoński
 * - Fix subscribe button appearing for unsubscribeable sections with visualenhancements by Bartosz Dziewoński
 * - Reorder messages for translator convenience by Amir E. Aharoni
 * - Don't enforce alphabetical order in i18n files by Amir E. Aharoni

DonationInterface

 * - Update SmashPig lib by Elliott Eggleston
 * - Adyen: log raw details response by Elliott Eggleston
 * - Backup Donor session to allow additional donations by Damilare Adedoyin
 * - Update smash-pig version by Elliott Eggleston

Echo

 * - Fix notification dynamic actions outside of the dropdown by Bartosz Dziewoński
 * - Standardize dynamic action notification styling by Bartosz Dziewoński
 * - Echo mobile: add CSS media query class - bug fix by essexigyan
 * - WatchlistChange: Include namespace in presentation by Kosta Harlan

FlaggedRevs

 * - Use more compact and readable syntax in some places by Thiemo Kreuz
 * - Changes list filter: don't add fields that are already in the query by Tim Starling

Flow

 * - tables.json: Fix comment about flow_revision.rev_id by Reedy
 * - Remove LEFT-TO-RIGHT MARK (U+200E) from comments by Fomafix

Gadgets

 * - Allow pages in gadget namespace to begin with a lowercase letter by Siddharth VP
 * - Migrate usage of Database::selectFieldValues to SelectQueryBuilder by Siddharth VP

GeoCrumbs

 * - Bunch of code cleanup + followup fixes by Subramanya Sastry
 * - Convert page title to variant properly by Subramanya Sastry

GlobalBlocking

 * - SpecialGlobalBlock: Add checkbox for local email access by AntiCompositeNumber
 * - Make GlobalBlock::getId work by Gergő Tisza

GrowthExperiments

 * - selenium: Use php-fpm version from PHP_VERSION environment by Kosta Harlan
 * - [tests] Add ConfigHooksTest by Martin Urbanec
 * - Fix WelcomeSurvey CentralAuthPostLoginRedirect hook  by Gergő Tisza
 * - MenteeOverview.vue: Change "No mentees found" wording by Martin Urbanec
 * - tests: Use fake timer for MentorHooksTest by Umherirrender
 * - Create REST API for fetching user impact data by Gergő Tisza
 * - Avoid errors when VariantHooks::getCampaign is called early by Gergő Tisza
 * - Bump link_suggestion_interaction schema version by Gergő Tisza
 * - Remove MessageCache::get hook handler from HomepageHooks by Gergő Tisza
 * - SECURITY: Don't use messages in WikiPageConfig error handler by Gergő Tisza
 * - MentorMessageChangeDialog: Display API errors by Martin Urbanec
 * - Selenium: Close help panel before editing by Kosta Harlan

ImageMap

 * - Switch to HookHandlers by Reedy

IPInfo

 * - Load animation same size as infobox by csimiyu

Kartographer

 * - Reset "show nearby articles" button state on close by Thiemo Kreuz
 * - Filter nearby points to not hide user-provided points by Thiemo Kreuz
 * - Don't destroy the fullscreen map to early by Thiemo Kreuz
 * - Use "geoJSON" capitalization in variable names and such by Thiemo Kreuz
 * - Use mapdata library version 0.7.0 by Thiemo Kreuz
 * - Use more memory efficient hash function by Thiemo Kreuz
 * - Don't add duplicate points to the nearby layer by Thiemo Kreuz

Math

 * - Replace 3 backslashes with 4 by Moritz Schubotz (physikerwelt)
 * - Change type hints for TexNode by Moritz Schubotz (physikerwelt)
 * - Minor: MathDatabaseTest cleaning by Moritz Schubotz (physikerwelt)
 * - Add some basic nodes and texUtil by Stegmujo
 * - Add TexNode by Stegmujo
 * - tests: Skip schema test for sqlite/postgres by Umherirrender

MobileFrontend

 * - percentDecode: Pre-escape query string separators (&,=) by Ed Sanders
 * - Track switch to desktop clicks by essexigyan

NearbyPages

 * - Upgrade Nearby to use Codex and Vue 3  by Jon Robson

Nuke

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

PageViewInfo

 * - Convert to HookHandlers by Reedy

Phonos

 * - Add icon module to load volumeUp by Sam Wilson
 * - LarnyxEngine: remove double-conversion of WAV to MP3 by MusikAnimal
 * - Remove default event handler for anchor href by Sam Wilson
 * - Load PhonosButton CSS as moduleStyle by Sam Wilson
 * - Add PHP class to match the JS OOUI PhonosButton by Sam Wilson
 * - Check status code after converting to MP3 by MusikAnimal
 * - Add mobile as a target in ResourceLoader config by MusikAnimal
 * - Use MP3 instead of WAV by MusikAnimal
 * - Phonos: Add .noexcerpt to span by TheresNoTime
 * - Lay out button with padding for icon by Sam Wilson

Poem

 * - Switch to HookHandlers by Reedy
 * - composer.json: Remove require php by Reedy

ProofreadPage

 * - Make phpfpm restart, php version agnostic by Sohom
 * - Remove limit on proofreadpagesinindex query API by Sohom
 * - Use mw.util.addPortletLink to attach "source" link by Jan Drewniak
 * - pagelist: removes hardcoded roman spacing by Tpt

SandboxLink

 * - Use the new hook system by Taavi Väänänen

Scribunto

 * - Update failing language tests by Subramanya Sastry
 * - Disable Parsoid testing tempoarily by Subramanya Sastry

SecureLinkFixer

 * - extension.json: Bump required MW version to >= 1.35.0 by Reedy
 * - Updating domains.php from Mozilla by Reedy
 * - Improve performance of string operation on domain lookup by Umherirrender

SecurePoll

 * - Add missing comma by Alexander Vorwerk
 * - Drop bv2021 by Reedy
 * - wm-scripts: More use statements by Reedy
 * - schema: Rename tables.sql to tables-generated.sql by Umherirrender
 * - Use real transactions when managing the voter list for a poll by Alexander Vorwerk
 * - phan: Fix use of IMaintainableDatabase::tableExists by Umherirrender

SimilarEditors

 * - Don't enforce alphabetical order in i18n files by Amir E. Aharoni

Thanks

 * - Remove LEFT-TO-RIGHT MARK (U+200E) from comments by Fomafix
 * - Update defaults to allow thanking of rights/rights only by Taavi Väänänen

TimedMediaHandler

 * - Video transcode config cleanup by Brion Vibber

Translate

 * - RenderTranslationPageJob: Add patrol status for translation page by Abijeet
 * - Make Insertable without post content to replace selection by Pols12

UniversalLanguageSelector

 * - Use WebRequest::getRawVal instead of WebRequest::getText by Fomafix

UploadWizard

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

UrlShortener

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

VisualEditor

 * - Don't focus template input fields (and open keyboard) on mobile by Thiemo Kreuz
 * - ParsoidHelper: Stop logging missing etags by Bartosz Dziewoński
 * - Update VE core submodule to master (d4c438548) by Bartosz Dziewoński
 * - Fix a few risky places for a multi-valued rel attributes by Isabelle Hurbain-Palatin
 * - Improve error messages for RESTBase errors by Bartosz Dziewoński
 * - Tweak main toolbar shadow to not leak out from the sides on vector-2022 by Bartosz Dziewoński
 * - Don't send missing $wgVisualEditorTabMessages to the browser by Thiemo Kreuz

Wikibase

 * - Remove LEFT-TO-RIGHT MARK (U+200E) from comments by Fomafix
 * - REST: Homogenize path params by Ollie Shotton
 * - REST: Add StatementPatcher interface by Jakob Warkotsch
 * - Remove unused phpunit.xml.dist by Jakob Warkotsch
 * - Remove NewItem and NewStatement from old namespace by Jakob Warkotsch
 * - Move NewItem and NewStatement to DM namespace by Jakob Warkotsch
 * - REST: Refactor Statement ID changed validation by Ollie Shotton
 * - DM: Differentiate `replaceStatement` exceptions by Ollie Shotton
 * - Remove annoying newlines from HTML by Fomafix

WikibaseLexeme

 * - Lexidata: media query styles are overriding margins on infopanel by Noa wmde
 * - Add copyright message for nojs by gtzatchkova
 * - Use NewStatement and NewItem from new namespace by Jakob Warkotsch
 * - Lexidata: add class names and margins to infopanel elements by Noa wmde

WikibaseQualityConstraints

 * - Use NewStatement and NewItem from new namespace by Jakob Warkotsch
 * - Bump unexpected from 13.0.0 to 13.0.1 by Addbot

WikiEditor

 * - RealtimePreview.less: Add position: relative to preview class by samtar

WikiLambda

 * - Add approve & deactivate buttons, and fix select-all checkbox. by EWright
 * - ESLint: Allow snakecase names for properties in the Vuex store code by teleosteen
 * - Fix punctuation in wikilambda-publish-impact-prompt by Amir E. Aharoni
 * - tests: Re-enable ApiFunctionCallTest calls to Beta Cluster by Jforrester
 * - Disable static validation in function calls. by apine
 * - Add setValueForKey utility for updating ZMaps by dmartin
 * - Function page cleanup by adesoji
 * - Rework the way we get a localized string from a ZMultiLingualString by teleosteen
 * - Standarize disallowed root types; drop Z_NULL/Z23, as it is not a type by gengh
 * - Add actions to attach/detach testers and implementations. by EWright
 * - Display "impactful change" dialog and disable implementations on input / output change of existing function by temitope adesoji
 * - APIs: Add ability to fetch old revisions on ZObjects by James D. Forrester
 * - tests: Drop the 'medium' group (no longer used) and 'WikiLambda' (done through paths) by James D. Forrester

WikimediaBadges

 * - Use NewStatement and NewItem from new namespace by Jakob Warkotsch

WikimediaEvents

 * - Let uiactions logging be triggered via mw.track by David Lynch
 * - build: Fix and enable MediaWiki.Files.ClassMatchesFilename.NotMatch rule by Timo Tijhof
 * - Update class name, method to PageHash by Clare Ming
 * - hooks: Use $revId of -1 for SpecialMuteSubmit by Sam Smith
 * - Add WMESchemaVisualEditorFeatureUseSamplingRate config variable by Sam Smith

WikimediaMaintenance

 * - addWiki.php: Rename schema file for SecurePoll by Umherirrender

WikimediaMessages

 * - Add messages for Central Bikol Wikiquote (bclwikiquote) by gerritbot
 * - Remove unused wikimediashoplink messages by Timo Tijhof

MinervaNeue

 * - [Cleanup] Remove dependency injection of mw.msg by Fomafix
 * - Use shortcut mw.msg( ... ) instead of mw.message( ... ).text by Fomafix
 * - Fix typo by Fomafix
 * - Mockup config variables for TitleUtil.test.js by Fomafix

MonoBook

 * - Switch to HookHandlers by Reedy

Timeless

 * - Hide new 'associatedPages' navigation items by Bartosz Dziewoński

Vector

 * - Handle pages without ids in typeahead search by bwang
 * - Table of contents doesn't respect NOTOC after an edit  by Moh'd Khier Abualruz
 * - Fix site notice spacing by bwang
 * - Add clearfix to .mw-body-subheader  by Jan Drewniak
 * - Table of contents toggles don't work correctly after update by Moh'd Khier Abualruz
 * - Revert "Remove grid row gap in favor of margins" by Jdlrobson
 * - Vector legacy no longer imports variables from Vector modern by Jon Robson
 * - [Regression] Restore show on hover behaviour for dropdowns by Jan Drewniak
 * - Vector 2022: Align #contentSub with page title (to the left) by Bartosz Dziewoński
 * - Remove grid row gap in favor of margins by bwang
 * - styles: Unify on standard external link icon (re-applying) by Volker E
 * - Support additional content in table of contents by Jon Robson
 * - TOC with bold text. by Jan Drewniak

VisualEditor/VisualEditor

 * - ve.ui.CompletionWidget: Fix showing with no items for latest OOUI by Bartosz Dziewoński

No changes

 * 3D
 * AbuseFilter
 * ActiveAbstract
 * AntiSpoof
 * ApiFeatureUsage
 * ArticleCreationWorkflow
 * Babel
 * BetaFeatures
 * BounceHandler
 * Calendar
 * Campaigns
 * Capiunto
 * CategoryTree
 * CentralNotice
 * CharInsert
 * ChessBrowser
 * CirrusSearch
 * CiteThisPage
 * Citoid
 * CodeEditor
 * CodeMirror
 * Cognate
 * Collection
 * CologneBlue
 * CommonsMetadata
 * ContactPage
 * CreditsSource
 * Dashiki
 * Disambiguator
 * DismissableSiteNotice
 * DoubleWiki
 * Elastica
 * ElectronPdfService
 * EntitySchema
 * EventBus
 * EventLogging
 * EventStreamConfig
 * ExtensionDistributor
 * ExternalGuidance
 * FeaturedFeeds
 * FileExporter
 * FileImporter
 * FundraiserLandingPage
 * FundraisingTranslateWorkflow
 * GWToolset
 * GeoData
 * GlobalCssJs
 * GlobalPreferences
 * GlobalUsage
 * GlobalUserPage
 * GlobalWatchlist
 * GoogleNewsSitemap
 * Graph
 * GuidedTour
 * ImageSuggestions
 * InputBox
 * Insider
 * Interwiki
 * InterwikiSorting
 * Josa
 * JsonConfig
 * LabeledSectionTransclusion
 * LandingCheck
 * LdapAuthentication
 * Linter
 * LiquidThreads
 * Listings
 * LoginNotify
 * MachineVision
 * MapSources
 * MassMessage
 * MediaModeration
 * MediaSearch
 * MobileApp
 * Modern
 * MultimediaViewer
 * NavigationTiming
 * NewUserMessage
 * Newsletter
 * Nostalgia
 * OATHAuth
 * OAuth
 * OAuthRateLimiter
 * ORES
 * OpenStackManager
 * PageAssessments
 * PageImages
 * PageNotice
 * PageTriage
 * PagedTiffHandler
 * ParserFunctions
 * PdfHandler
 * PoolCounter
 * Popups
 * PropertySuggester
 * QuickSurveys
 * Quiz
 * RSS
 * ReadingLists
 * RelatedArticles
 * Renameuser
 * RevisionSlider
 * Score
 * SearchExtraNS
 * ShortUrl
 * SiteMatrix
 * SpamBlacklist
 * StopForumSpam
 * SubPageList3
 * SubpageSortkey
 * SyntaxHighlight_GeSHi
 * TemplateData
 * TemplateSandbox
 * TemplateStyles
 * TemplateWizard
 * TextExtracts
 * TheWikipediaLibrary
 * TitleBlacklist
 * TocTree
 * TorBlock
 * TranslationNotifications
 * TrustedXFF
 * TwoColConflict
 * UploadsLink
 * VipsScaler
 * WebAuthn
 * WikiLove
 * WikibaseCirrusSearch
 * WikibaseLexemeCirrusSearch
 * WikibaseMediaInfo
 * Wikidata.org
 * WikidataPageBanner
 * WikimediaApiPortal
 * WikimediaApiPortalOAuth
 * WikimediaEditorTasks
 * WikimediaIncubator
 * Wikisource
 * Wikistories
 * XAnalytics
 * intersection
 * timeline
 * wikihiero

Total changes
249 Changes in 57 repos by 79 authors