MediaWiki 1.40/wmf.18/Changelog

Core changes

 * - Branch commit for wmf/1.40.0-wmf.18 by trainbranchbot
 * - Upgrading wikimedia/object-factory (v4.0.0 => v5.0.1) by Reedy
 * - Upgrading wikimedia/less.php (v3.1.0 => v3.2.0) by Reedy
 * - Make runScript.php an alias for run.php by daniel
 * - jquery.tablesorter: Consistently trim spaces when building the sort keys by Hank Hulet
 * - Reorder "Languages added" by task number by Amir E. Aharoni
 * - Change search preference message by Amir E. Aharoni
 * - Add support for the Igala language (igl) by Amir E. Aharoni
 * - maintenance: Do not output run.php warning when not in TTY mode by Gergő Tisza
 * - Make ChangeTag::modifyDisplayQuery more reliable if multiple joins to changetags by Brian Wolff
 * - Deprecate creating HTMLFormFields without reference to parent form by Brian Wolff
 * - Add Toki Pona (tok) to Names.php  by Robin van der Vliet
 * - ForeignResourceManager: Add import for SplFileInfo by Reedy
 * - tests: Replace dynamic property MWCallableUpdate::$_name by Umherirrender
 * - Normalize consecutive spaces when building the sort values by Hank Hulet
 * - Replace with space rather than empty string when building the sort key by Hank Hulet
 * - parser: Optimize regex patterns used in LinkHolderArray by thiemowmde
 * - ChangeTags: Move space inside .mw-tag-other-edits by AntiCompositeNumber
 * - rdbms: add CONN_UNTRACKED_GAUGE LoadBalancer flag for LoadMonitor gauging by Aaron Schulz
 * - UserOptionsManager: Avoid DB delete queries for unchanged default values by Umherirrender
 * - docs: Move together Rdbms-related lines in RELEASE-NOTES-1.40 by Timo Tijhof
 * - rdbms: Remove setBigSelects without deprecation by Aaron Schulz
 * - Galleries: Set anchor height as well as img height by Jon Robson
 * - parser: Improvements to Preprocessor::buildDomTreeArrayFromText by Umherirrender
 * - parser: Small improvements to Preprocessor::buildDomTreeArrayFromText by Umherirrender
 * - Sync up core repo with Parsoid by Subramanya Sastry
 * - tests: Change assertion in AbstractSecondaryAuthenticationProviderTest by Umherirrender
 * - tests: Remove assertion of spec in ParamValidatorTest::testGetTypeDef by Umherirrender
 * - tests: Declare GIFMetadataExtractorTest::$mediaPath by Umherirrender
 * - stream wrapper: Declare $context class property by Umherirrender
 * - libs\jsminplus: Declare JSNode::$expression by Umherirrender
 * - tests: Allow dynamic properties on PHP 8.2 for GhostFieldTestClass by Umherirrender
 * - Galleries: Make gallery code more resilient to HTML transformations by Jon Robson
 * - Code style cleanup by Derk-Jan Hartman
 * - profiler: Restore lost --profiler feature for Maintenance scripts by Timo Tijhof
 * - actions: Actually store CommentFormatter in McrUndoAction by Alexander Vorwerk
 * - tests: Use MW_VERSION instead of deprecated $wgVersion by Kevin Israel
 * - Fix phan error when Excimer is enabled by Tim Starling
 * - Use CommentStore service instead of deprecated method by Derick Alangi
 * - specials: Add LinkBatch to Special:DeletedContributions by Umherirrender
 * - actions: Pass CommentFormatter to McrRestoreAction by Alexander Vorwerk
 * - rdbms: Drop getChronologyProtectorClientId in LBF and ILBF by Amir Sarabadani
 * - Drop an ancient script by Alexander Vorwerk
 * - Make permalink available in raw form by Jon Robson
 * - Maintenance scripts: show a warning when run directly. by daniel
 * - Galleries on mobile  by Jon Robson
 * - Make phpunit:coverage-edit script independent of phpunit by Moritz Schubotz (physikerwelt)
 * - specials: Special:Whatlinkshere should not act on special pages by Umherirrender
 * - Fix phpunit:coverage-edit script by Moritz Schubotz (physikerwelt)
 * - Include missing message parameter in message by wangombe
 * - Add namespace translations in Wayuu by Stang
 * - rdbms: remove redundant "found writes pending" log entries by Aaron Schulz
 * - Documentation: Document the FIXME task by Jon Robson
 * - benchmarks: Add --setup to benchmarkEval.php by Timo Tijhof
 * - rdbms: Consolidate logger channels into one by Timo Tijhof
 * - Use explicit ->parse instead of implicit __toString. by Fomafix
 * - Do not show the useless edit section links on Special:ExpandTemplates by Fomafix
 * - Remove 'verify' option of Linker::generateRollback by Gergő Tisza
 * - ParserOutput: point to documentation for serialization compatibility. by daniel
 * - Use SlotRecord::MAIN instead of hard coded value by Umherirrender
 * - Update namespaces and special page aliases for Karakalpak by Amir E. Aharoni
 * - refreshlinks: skip replica wait checks for single-batch link updates by Aaron Schulz
 * - Update wikimedia/remex-html to 3.0.3 by C. Scott Ananian
 * - Prepare migration from revision_comment_temp to rev_comment_id by Alexander Vorwerk
 * - ReservedUsernames config: Add reserved names from maintenance scripts by Umherirrender
 * - extension schema: Remove broken option to use null in OOUIThemePaths by Bartosz Dziewoński
 * - rcfilters: Tweak formatting of inverted filters by Bartosz Dziewoński
 * - SpecialWhatLinksHere: Use trySubmit for input validation by Func
 * - HTMLForm: Skip submission when got nothing from the user on GET forms by Func
 * - Remove .pipeline directory by Ahmon Dancy
 * - page: Show revision-deleted comment on oldid= view with unhide=1 by Umherirrender
 * - actions: Optimize handling of notification timestamp on action=history by Umherirrender
 * - installer: Improve message handling for cli installer/install.php by Umherirrender
 * - build: Add phan stub for ReturnTypeWillChange by Umherirrender
 * - Chinese Conversion Table Update 2022-2 by Chiefwei
 * - Message::rawParam: Add novel 'exec_html' annotation by SBassett
 * - Avoid widowing headers on category pages (in supporting browsers) by Bartosz Dziewoński
 * - search: Set file_text to null when not available by Erik Bernhardson
 * - Disable php in .htaccess of images directory as a hardening measure. by Brian Wolff
 * - Remove /images .htaccess rules that are no longer relevent by Brian Wolff
 * - UploadBase.php: added namespace for w3c-test-suite by JoKalliauer

Vendor

 * - Upgrading wikimedia/object-factory (v4.0.0 => v5.0.1) by Reedy
 * - Upgrading wikimedia/less.php (v3.1.0 => v3.2.0) by Reedy
 * - Bump parsoid to 0.17.0-a10       by C. Scott Ananian
 * - Rebuild vendor on composer 2.5.1 by Reedy

AbuseFilter

 * - Hook on privateEvent and logEvent insert hooks like CuChangesInsert  by Dreamy Jazz
 * - Add RecentChange as a optional parameter for CheckUser hook by Dreamy Jazz
 * - Replace VariableHolder::$forFilter by Matěj Suchánek
 * - Ensure IP, XFF and UA are valid for abuse filter user actions in CheckUser by dreamyjazz

Babel

 * - Bump required version to MW 1.38 by Umherirrender

CampaignEvents

 * - Fix participant search for >20 participants by Daimona Eaytoy
 * - Remove workaround for resolved OOUI bug by Daimona Eaytoy

CentralAuth

 * - Revert "GlobalRename: Convert DB selects to use SelectQueryBuilder"  by Urbanecm
 * - phan: Suppress unlikely XSS warning from phan in LogFormatter by Umherirrender

CentralNotice

 * - Replace deprecated Language::getParentLanguage by Umherirrender
 * - Replace deprecated Language::isValidCode by Umherirrender
 * - Replace deprecated Language::fetchLanguageName(s) by Umherirrender
 * - Replace deprecated Language::getConverter by Umherirrender
 * - Replace deprecated CommentStore::getStore by Umherirrender
 * - specials: Avoid passing null to Xml::input/Xml::openElement by Umherirrender
 * - pager: Avoid unneeded database connection by Umherirrender
 * - build: Remove unneeded stylelint suppressions by Umherirrender
 * - Move test ESI injection to BeforePageDisplay hook by Andrew Green
 * - schema: Convert Unique Index to Primary Key on cn_notice_regions by Umherirrender
 * - schema: Convert Unique Index to Primary Key on cn_notice_countries by Umherirrender
 * - schema: Convert Unique Index to Primary Key on cn_notice_projects by Umherirrender
 * - schema: Convert Unique Index to Primary Key on cn_notice_languages by Umherirrender
 * - Build: Use new unit-disallowed-list rule by Umherirrender
 * - Convert configuration into class const by Adam Wight

CharInsert

 * - Add CharInsert modules to editor on mobile domain  by Jon Robson

CheckUser

 * - SECURITY: api: Only add actor table to table list when querying from it  by Alexander Vorwerk
 * - Investigate: Add read new support for cuc_actor by Alexander Vorwerk
 * - Add methods to insert into cu_private_event and cu_log_event by Dreamy Jazz
 * - Pager: clarify which table the 'use index' option is for by Alexander Vorwerk
 * - Reduce code duplication, test, and assign class to each results type  by dreamyjazz
 * - Pager: Add read new support for cuc_actor by Alexander Vorwerk
 * - Hooks: Add read new support for cuc_actor by Alexander Vorwerk
 * - ApiQueryCheckUser: Add read new support for cuc_actor by Alexander Vorwerk
 * - Remove is blocked check as this is done when calling placeBlock by dreamyjazz
 * - Provide the username for password reset and email actions for GENDER support by dreamyjazz
 * - Add write new support for cul_actor by Alexander Vorwerk
 * - Use correct migration variable by Alexander Vorwerk
 * - Add population script for cuc_comment_id by Alexander Vorwerk
 * - Change cu_changes comment migration to write both by Alexander Vorwerk

CirrusSearch

 * - Add index_name in the metadata of the cirrus build doc API by David Causse
 * - Remove support for elasticsearch 6 by Erik Bernhardson
 * - Test ServiceWiring.php by Dreamy Jazz

Cite

 * - Parsoid CSS counters: Use child selectors instead of descendent selectors by Subramanya Sastry
 * - Ensure Parsoid's linkback ref CSS counters are properly incremented by Subramanya Sastry
 * - Remove lower-alpha hack by eranroz
 * - Remove 'origTitle' in tests by Bartosz Dziewoński

cldr

 * - Fix German translation for gor/Gorontalo by Raymond

CodeEditor

 * - Enable CodeEditor modules on mobile by Jon Robson

Cognate

 * - Replace deprecated ConnectionManager functions by Umherirrender

ConfirmEdit

 * - Fix Autoload definition for ReCaptchaNoCaptcha by Florian

ContentTranslation

 * - CX: Fix usage of categories translation unit as array by NikG
 * - CX: Allow composer/installers plugin by NikG
 * - SX App.vue: Import "computed" before using it by NikG
 * - Use Codex design tokens for breakpoints by Santhosh Thottingal
 * - Fix publishing target for sandbox section translations on desktop by NikG
 * - Test ServiceWiring.php and other fixes to tests by Dreamy Jazz

CreditsSource

 * - schema: Convert Unique Index to Primary Key on revsrc by Umherirrender
 * - schema: Convert Unique Index to Primary Key on swsource_links by Umherirrender
 * - schema: Convert Unique Index to Primary Key on swauthor_links by Umherirrender

DiscussionTools

 * - Delay API requests for preloading metadata until user interaction by Bartosz Dziewoński
 * - Clean up ApiDiscussionToolsPageInfo hack  by Tim Starling

DonationInterface

 * - Initialise transaction response in the process donor return if not present. by Damilare Adedoyin

Echo

 * - Remove MWEchoDBFactory::waitForReplicas by Aaron Schulz

EntitySchema

 * - Recreate browser tests for detecting edit conflicts by Michael Große
 * - Use SlotRecord::MAIN instead of hard coded value by Umherirrender

EventBus

 * - Set explicit revision timestamp in testCreatePageChangeVisibilityEvent by Ottomata
 * - Use SlotRecord::MAIN instead of hard coded value by Umherirrender
 * - Replace deprecated ContentHandler::getForModelID by Umherirrender

EventLogging

 * - Remove deprecated EventLoggingRegisterSchemas hook by Umherirrender

FileImporter

 * - Replace deprecated ContentHandler functions by Umherirrender

Flow

 * - Drop ContributionsRow::$revactor_timestamp by Alexander Vorwerk

GeoCrumbs

 * - Replace deprecated Parser::getTitle by Umherirrender

GrowthExperiments

 * - NewImpact: Remove d3 feature-flag by Kosta Harlan
 * - User impact: always display the streak graph LTR by Sergio Gimeno
 * - phan: Suppress unlikely XSS warning from phan in LogFormatter  by Umherirrender
 * - User impact: add circle to the articles pageviews chart and quantize views by Sergio Gimeno
 * - Add test for UnderlinkedFunctionScoreBuilder by Gergő Tisza
 * - Fix underlinkedness rescore logic by Gergő Tisza
 * - User impact: correct date format for Arabic in recent activity chart labels by Sergio Gimeno
 * - Use the ThanksQueryHelper service by Jon Robson

GWToolset

 * - Replace getNativeData to getText for GWToolset by russ-rogovetz

InterwikiSorting

 * - Allow composer/installers plugin by Lucas Werkmeister

Kartographer

 * - Style focused map markers on Firefox by Adam Wight
 * - Breaking upgrade: mapdata by Adam Wight
 * - Fix focus rectangle visibility on keyboard/mouse by thiemowmde
 * - Nearby: Fix marker icon styles on focus and active by thiemowmde
 * - Streamline jQuery usage in staticframe.js by thiemowmde
 * - Respect and increment expensive function count by Adam Wight
 * - Feature flag for Nearby on mobile by Adam Wight
 * - Revert "Preserve the focus box state when using the zoom buttons" by Svantje Lilienthal
 * - Skip invalid ExternalData without a url by thiemowmde

LiquidThreads

 * - Update LqtDiscussionPager code by Bartosz Dziewoński

MassMessage

 * - Add a hook to override how a message is sent to a specific page by Brian Wolff

Math

 * - Improve security of MathML output by Moritz Schubotz (physikerwelt)
 * - Fix significant typo in grammar by Moritz Schubotz (physikerwelt)

MediaModeration

 * - ModerateExistingFilesHelper: Complete output message with PHP_EOL by Maggie Epps

MobileFrontend

 * - Stop hiding section heading toggling indicators in editor preview by Bartosz Dziewoński
 * - Revert "Images in galleries should be loaded automatically" by Jdlrobson
 * - Images in galleries should be loaded automatically by Jon Robson
 * - Fix section toggling styles for print mode by Bartosz Dziewoński

MultimediaViewer

 * - Allow WebP to be previewed in viewer by alistair3149

OATHAuth

 * - Add separate OATHAuthModuleRegistry service by Taavi Väänänen

OAuth

 * - Lib: Minor cleanup by Reedy
 * - Stop dynamic creation of DBConnRef::$daoReadOnly by Reedy
 * - Clarify message for granting access to all projects by EpicPupper

PageImages

 * - Use PageReference on ParserFileProcessingHookHandlers::processThisTitle by Umherirrender

PageTriage

 * - CurationToolbar: Adding quickFilter ability to the screens which have many tags by MPGuy2824
 * - Special:NewPagesFeed should not highlight AFC drafts red by NovemLinguae
 * - NewPagesFeed - Fixing UI issue for the AFC dialog by MPGuy2824
 * - CurationToolbar: Don't allow sending note to yourself by MPGuy2824

Phonos

 * - Use TimedMediaHandler to find MP3 derivatives for non-MP3 files by MusikAnimal
 * - Revert "Rename `PhonosIPARenderingEnabled` to `PhonosAudioGenerationEnabled`" by Samtar
 * - Use parent click handlers for button click by Sam Wilson
 * - Rename `PhonosIPARenderingEnabled` to `PhonosAudioGenerationEnabled` by TheresNoTime
 * - Clean up frontend events by Nardog
 * - Phonos: Increment statsd metric on job creation by TheresNoTime

PoolCounter

 * - Replace with a stub that extends the MediaWiki core class by Timo Tijhof

ProofreadPage

 * - Replace deprecated ContentHandler::getForModelID by Umherirrender
 * - Replace wfGetLangObj by Fomafix

QuickSurveys

 * - Dramatically simplify uniqueness check by Thiemo Kreuz

SearchVue

 * - Fix URL construction by Matthias Mullie
 * - Also get central description by Matthias Mullie
 * - FIx SearchVue commons widget wording by Simone Cuomo
 * - Wikidata: enabled search quick view produces error - cannot read properties of undefined by Vadim Kovalenko
 * - Mobile - Search preview section titles are misaligned by Vadim Kovalenko

SecureLinkFixer

 * - Updating domains.php from Mozilla by SecureLinkFixer updater bot
 * - Update domains.php from Mozilla by Alexander Vorwerk

SecurePoll

 * - wm-scripts: Get Flow DB_REPLICA in a different way by Reedy
 * - ucoc2023: Update populateEditCount to count Flow edits by Reedy
 * - schema: Convert Unique Index to Primary Key on securepoll_properties by Umherirrender

TemplateData

 * - Fix broken maps panel in TemplateData editor by thiemowmde
 * - Reduce code duplication when switching dialog panels by thiemowmde
 * - Use type info instead of repeating individual field names by Thiemo Kreuz
 * - Set focus to first input field on all panels by Thiemo Kreuz

TemplateStyles

 * - Replace getNativeData to getText for TemplateStyles by russ-rogovetz

Thanks

 * - Replace deprecated hook handler with user locator by Matěj Suchánek
 * - Some smaller general code cleanups by Thiemo Kreuz

Translate

 * - processMessageChanges: Rename and move to namespace by Abijeet
 * - editor.js: remove accesskey while hiding editor by Pols12
 * - Qualify conditions in RC filter for change tags by Brian Wolff
 * - Right-align RTL language in ManageTranslatorSandbox by wangombe
 * - TranslateLogFormatter: Suppress unlikely XSS warning from phan by Abijeet
 * - Use SlotRecord::MAIN instead of hard coded value by Umherirrender

TwoColConflict

 * - Minimize JSCheck.js code a little by thiemowmde

UniversalLanguageSelector

 * - Revert "Add language settings button inside dropdown for non-content pages" by Jdlrobson
 * - Add language settings button inside dropdown for non-content pages by NikG

UploadWizard

 * - Replace getNativeData to getText for UploadWizard by russ-rogovetz

VisualEditor

 * - Show "Continue" instead of "Try again" on button to save as another user by Nardog
 * - Add more test cases for mw.libs.ve.getTargetDataFromHref by Bartosz Dziewoński
 * - Fix encoding to roundtrip links without 'rawTitle'/'origTitle' by Bartosz Dziewoński
 * - Update VE core submodule to master (cb9c5fadc) by Bartosz Dziewoński
 * - Replace mediawiki.Uri with native URL (easy cases) by Bartosz Dziewoński
 * - Allow using native URL (or polyfill) by Bartosz Dziewoński
 * - Fix post-edit notification after switching from old wikitext editor by Bartosz Dziewoński

WebAuthn

 * - Reflect OATHAuthModuleRegistry changes by Taavi Väänänen

Wikibase

 * - Search results: show label match in different language by Michael Große
 * - DM Serialization lib: Update IRC Support to libera.chat by Leszek Manicki
 * - Include "parent" parameter to HTMLFormField for upcoming core change by Brian Wolff
 * - Replace deprecated Language::factory by Umherirrender
 * - Explicitly set modules as desktop targeted  by Jon Robson
 * - LanguageNameLookup: Replace deprecated Language::fetchLanguageName by Umherirrender
 * - Include the invalid language code in API error message by Matěj Suchánek
 * - Remove compat code from MediaWikiLanguageDirectionalityLookup by Umherirrender
 * - repo/Specials: Replace deprecated Language::fetchLanguageName by Umherirrender
 * - Replace deprecated ConnectionManager functions by Umherirrender
 * - Use SelectQueryBuilder for wb_id_counters queries by Lucas Werkmeister
 * - Use SelectQueryBuilder in WikiPageEntityRedirectLookup by Lucas Werkmeister
 * - REST: Mark labels endpoint as [WIP] in OAS by Muhammad Jaziraly
 * - Enable the new Codex-based search with the Vector-2022 skin on Wikidata by Michael Große
 * - REST: Remove duplicated await by Muhammad Jaziraly
 * - REST: Add OAS validation tests for GetItemLabels by sihe
 * - tests: Call new GuidGenerator outside of foreach by Umherirrender
 * - Add LanguageDirectionalityLookup service by Lucas Werkmeister
 * - Always use LanguageNameLookupFactory for LanguageNameLookup by Umherirrender
 * - Inject language services into MediaWikiLanguageDirectionalityLookup by Umherirrender
 * - REST: Mark PATCH endpoints as [WIP] in OAS by sihe
 * - Make DispatchingValueFormatter lazy by Lucas Werkmeister
 * - REST: Modify README.md to add dev routes by Muhammad Jaziraly
 * - REST: Move WIP routes to a routes.dev.json file  by Ollie Shotton
 * - REST: Validate itemId in GetItemLabels request by Muhammad Jaziraly
 * - tests: Use Title::makeTitle instead of Title::newFromText by Umherirrender
 * - Use SlotRecord::MAIN instead of hard coded value by Umherirrender
 * - REST: Handle item redirect in GetItemLabels by Muhammad Jaziraly
 * - REST: Handle item not found in GetItemLabels by Jakob Warkotsch
 * - Inject service into EntityIdLabelFormatterFactory by Lucas Werkmeister

WikibaseCirrusSearch

 * - tests: Replace deprecated Language::factory by Umherirrender
 * - Allow composer/installers plugin by Lucas Werkmeister
 * - Index stemmed labels in supported languages by Erik Bernhardson
 * - Use LanguageNameLookupFactory in SpecialEntitiesWithoutPageFactory by Umherirrender

WikibaseLexeme

 * - Use LanguageDirectionalityLookup service by Umherirrender
 * - Add lexeme language to formatted sense ID by Lucas Werkmeister
 * - Use SlotRecord::MAIN instead of hard coded value by Umherirrender

WikibaseLexemeCirrusSearch

 * - Allow composer/installers plugin by Lucas Werkmeister
 * - tests: Replace deprecated Language::factory by Umherirrender

WikibaseMediaInfo

 * - Use LanguageDirectionalityLookup service by Umherirrender
 * - Use LanguageNameLookupFactory in service wiring by Umherirrender
 * - Use SlotRecord::MAIN instead of hard coded value by Umherirrender

WikibaseQualityConstraints

 * - tests: Use SlotRecord::MAIN instead of hard coded value by Umherirrender
 * - Add config to change value showing constraint violation indicator by gtzatchkova

WikiEditor

 * - Add config var to disable Beta Feature by Sam Wilson
 * - Load WikiEditor modules on mobile. by Jon Robson

WikiLambda

 * - ApiFunctionCall: Add example function call that times out by apine
 * - Update function-schemata sub-module to HEAD (75b2462)  by James D. Forrester
 * - Vue: Instrument main app load time by James D. Forrester
 * - Show the implementation and tester tables below the function definition by ddw
 * - Hide the tester examples table while it is currently not working as by ddw
 * - Fix ZObjectEditor link to go to the function creation page by gengh
 * - Update function-schemata sub-module to HEAD (f19bc13)   by James D. Forrester
 * - move legal text below buttons in publish dialog by Julia Kieserman
 * - In TesterTable by ddw
 * - Remove "Create a type" and "Create a function" buttons. by ddw
 * - Styling and tests for ZMonolingualString default component. by ddw
 * - Add styling and tests for ZObjectType. by ddw
 * - Add tests for ZObjectKeyValue. by ddw
 * - Fix deleting then re-adding alias labels. by ddw
 * - Remove alias labels from ZObjectLabels search. by ddw

WikimediaEvents

 * - Distinguish between pinned/unpinned elements in desktopWebUIActions by Jan Drewniak

WikimediaMaintenance

 * - createExtensionTables: Add extension CheckUser by Dreamy Jazz

WikimediaMessages

 * - Add messages for Wayuu Wikipedia (gucwiki) by gerritbot
 * - Add messages for Gorontalo Wiktionary (gorwiktionary) by gerritbot

Wikistories

 * - Update Design 22 Dec by Huei Tan

MinervaNeue

 * - Fixes issue with height in slideshow by Jon Robson
 * - Fix various problems with print styles by Bartosz Dziewoński

Vector

 * - build: Upgrade test versions of Codex things from 0.2.2 to 0.4.2 by James D. Forrester
 * - Update language dropdown for pages not supported in other languages by NikG
 * - Fix language button fallback  by Jon Robson
 * - Refactor SkinVector22::getTemplateData and add test coverage by Jon Robson
 * - Log events for pinnable header button by Jon Robson
 * - Update TOC spacing to match spec by bwang
 * - Add label and title attribute/tooltip to full-screen toggle button by Jon Robson
 * - Replace .sidebar-toc class with .vector-toc and use PinnableElement in TOC by bwang
 * - Factor out TableOfContentsPinned.less and rename TableOfContentsCollapsed for better CSS organization by bwang
 * - Update dropdown and pinnable element styles to match spec by bwang
 * - Document the importance of vector-menu class by Jon Robson
 * - Test ServiceWiring.php by Dreamy Jazz

VisualEditor/VisualEditor

 * - tests: Remove unused test data by Bartosz Dziewoński
 * - Ignore 'origTitle' in tests by Bartosz Dziewoński
 * - Rebuild demos with newly added language 'se' by Bartosz Dziewoński

No changes

 * 3D
 * ActiveAbstract
 * AdvancedSearch
 * AntiSpoof
 * ApiFeatureUsage
 * ArticleCreationWorkflow
 * ArticlePlaceholder
 * BetaFeatures
 * BounceHandler
 * Calendar
 * Campaigns
 * Capiunto
 * CategoryTree
 * ChessBrowser
 * CiteThisPage
 * Citoid
 * CodeMirror
 * Collection
 * CologneBlue
 * CommonsMetadata
 * ContactPage
 * Dashiki
 * Disambiguator
 * DismissableSiteNotice
 * DoubleWiki
 * Elastica
 * ElectronPdfService
 * EventStreamConfig
 * ExtensionDistributor
 * ExternalGuidance
 * FeaturedFeeds
 * FileExporter
 * FlaggedRevs
 * FundraiserLandingPage
 * FundraisingTranslateWorkflow
 * Gadgets
 * GeoData
 * GlobalBlocking
 * GlobalCssJs
 * GlobalPreferences
 * GlobalUsage
 * GlobalUserPage
 * GlobalWatchlist
 * GoogleNewsSitemap
 * Graph
 * GuidedTour
 * IPInfo
 * ImageMap
 * ImageSuggestions
 * InputBox
 * Insider
 * Interwiki
 * Josa
 * JsonConfig
 * LabeledSectionTransclusion
 * LandingCheck
 * LdapAuthentication
 * Linter
 * Listings
 * LoginNotify
 * MachineVision
 * MapSources
 * MediaSearch
 * MobileApp
 * Modern
 * MonoBook
 * NavigationTiming
 * NearbyPages
 * NewUserMessage
 * Newsletter
 * Nostalgia
 * Nuke
 * OAuthRateLimiter
 * ORES
 * OpenStackManager
 * PageAssessments
 * PageNotice
 * PageViewInfo
 * PagedTiffHandler
 * ParserFunctions
 * PdfHandler
 * Poem
 * Popups
 * PropertySuggester
 * Quiz
 * RSS
 * ReadingLists
 * RelatedArticles
 * Renameuser
 * RevisionSlider
 * SandboxLink
 * Score
 * Scribunto
 * SearchExtraNS
 * ShortUrl
 * SimilarEditors
 * SiteMatrix
 * SpamBlacklist
 * StopForumSpam
 * SubPageList3
 * SubpageSortkey
 * SyntaxHighlight_GeSHi
 * TemplateSandbox
 * TemplateWizard
 * TextExtracts
 * TheWikipediaLibrary
 * TimedMediaHandler
 * Timeless
 * TitleBlacklist
 * TocTree
 * TorBlock
 * TranslationNotifications
 * TrustedXFF
 * UploadsLink
 * UrlShortener
 * VipsScaler
 * WikiLove
 * Wikidata.org
 * WikidataPageBanner
 * WikimediaApiPortal
 * WikimediaApiPortalOAuth
 * WikimediaBadges
 * WikimediaEditorTasks
 * WikimediaIncubator
 * Wikisource
 * XAnalytics
 * intersection
 * timeline
 * wikihiero

Total changes
323 Changes in 71 repos by 88 authors