MediaWiki 1.39/wmf.18/Changelog

Core changes

 * - Branch commit for wmf/1.39.0-wmf.18 by trainbranchbot
 * - mediawiki.action.view.redirect: Remove obsolete browser support code by tacsipacsi
 * - SpecialWhatLinksHere: Uncollapse the OOUI form by Saint Johann
 * - Tablesorter: Ignore style elements by Derk-Jan Hartman
 * - ParserCache: ensure we know a revision ID by daniel
 * - Update "guzzlehttp/guzzle" to version 7.4.5 by rvogel
 * - ResourceLoader: Remove support for UserModule "excludepage" parameter by Derick Alangi
 * - libs/objectcache: Minor code cleanup by Reedy
 * - Storage: Get wikiId from RevisionStore by Derick Alangi
 * - tests: Use WikiPageFactory to create WikiPage object by Umherirrender
 * - Hard deprecate Title::getNotificationTimestamp by Matěj Suchánek
 * - Remove wfCanIPUseHTTPS by Matěj Suchánek
 * - Change "Delete account data" to "Reset settings" in preferences by Bartosz Dziewoński
 * - file: Use WikiPageFactory to create WikiFilePage object by Umherirrender
 * - Use WikiPageFactory to instance WikiPage in namespaceDupes.php by Umherirrender
 * - Ensure core compatibility with Parsoid external link attributes support by Isabelle Hurbain-Palatin
 * - mediawiki.ui: DRY up `transition` properties by Volker E
 * - specialpage: Replace deprecated wfReadOnly by Umherirrender
 * - MessageCache: Replace deprecated WikiPage::factory by Umherirrender
 * - api: Replace deprecated WikiPage::factory/newFromID by Umherirrender
 * - Hard deprecate JobQueueGroup::singleton/destroySingletons by Umherirrender
 * - SpecialNewpages: Stop using messages from elsewhere by Func
 * - MediaWiki: Don't eagerly initialize action name by Máté Szabó
 * - Do minor code cleanup by Matěj Suchánek
 * - resourceloader: remove outdated jsdoc comments from mediawiki.js by DannyS712
 * - resourceloader: simplify mw.Message.params using apply by DannyS712
 * - Update Codex from v0.1.0-alpha.7 to v0.1.0-alpha.8 by Anne Tomasevich
 * - Call parent constructor of AddSite maintenance script first by Moritz Schubotz (physikerwelt)
 * - Skin: Drop unnecessary pixel suffix by Jon Robson
 * - Hard deprecate access to some public properties on User by Matěj Suchánek
 * - Add optional help message for signup form username field by Gergő Tisza
 * - Hard deprecate access to public properties on AbstractBlock/DatabaseBlock by Matěj Suchánek
 * - Fix MemcachedPhpBagOStuff::merge on a non-existent key by Tim Starling
 * - ResourceLoader: improve readability and simplify in StartUpModule by DannyS712
 * - ResourceLoader: replace FileModule::collateFilePathListByOption with private helper by DannyS712
 * - Skin: Change viewport based on feedback by Jon Robson
 * - Merge `mediawiki.special.version` into `mediawiki.special` module by DannyS712
 * - Start `catch` blocks on the same line as the preceding } by DannyS712
 * - Register watchstar icon in menu definition by Jon Robson
 * - ResourceLoader: readability cleanup and simplifications by DannyS712
 * - Sync up with Parsoid parserTests.txt by Subramanya Sastry
 * - SpecialMyLanguage: Add method for finding a Title for transclusion by Thalia
 * - Remove DatabaseBlock::$mFromPrimary by Matěj Suchánek
 * - SkinTemplate: Document more nstab- message keys by Ed Sanders
 * - ResourcesTest: fix typo $ilegalDeps by DannyS712
 * - WikiModule::getStyles - simplify foreach loop by DannyS712
 * - Remove deprecated and unused FileModule::compileLessFile by DannyS712
 * - FileModule: replace 'master' with 'primary' in comments by DannyS712
 * - ResourceLoader: Let Image throw RuntimeException instead of MWException by Timo Tijhof
 * - ResourceLoader: Remove unchecked exception annotations by Adam Wight
 * - deferred: Remove unused $mode and jobify from internal doUpdates by Timo Tijhof
 * - SECURITY: Escape contributions-title msg for use within page title by sbassett
 * - Don't render icon attribute on skins that do not support icons by Jon Robson
 * - Hard deprecate User::blockedFor by Matěj Suchánek
 * - WikiPage: Make `WikiPage::$mTitle` protected by Derick Alangi
 * - jobqueue: Hard-deprecate JobRunner constructor without service options by Derick Alangi
 * - resourceloader: Resolve SkinModule wordmark/tagline tech debt  by Timo Tijhof
 * - Remove SqlBlobStore::getLegacyEncodingConversionLang by Matěj Suchánek
 * - PHPUnit: introduce overrideConfigValues. by daniel
 * - Rest: Fix stats logging for parsoid stash & caching by Derick Alangi
 * - MediaWiki.php: Replace deprecated wfReadOnly by Umherirrender
 * - Replace deprecated wfReadOnly/wfReadOnlyReason by Umherirrender
 * - Add linkTrail for Ewe by Amir E. Aharoni
 * - Remove trailing whitespace from messages by Niklas Laxström
 * - tests: Move assertHTMLEquals to the test case trait by mainframe98
 * - specialpage: Use upsert when updating querycache_info timestamp by Kunal Mehta
 * - Use the same tooltip for transcluded sections as normal ones by Bartosz Dziewoński

Vendor

 * - Update guzzlehttp/* by Reedy
 * - Bump parsoid to 0.16.0-a14     by Arlo Breault

AbuseFilter

 * - Use UserIdentity in FilterStore::doSaveFilter by Umherirrender
 * - Use UserIdentity in ConsequencesExecutor by Umherirrender
 * - Set the 'timestamp' var in addGenericVars by Daimona Eaytoy
 * - Pass RecentChange to addGenericVars by Matěj Suchánek
 * - tests: Mock WikiPage in unit test by Umherirrender
 * - Remove $info argument from ReversibleConsequence::revert by Matěj Suchánek

ActiveAbstract

 * - Fix MediaWiki.WhiteSpace.SpaceBeforeSingleLineComment.NewLineComment by Reedy

Babel

 * - Use WikiPageFactory to create WikiPage object by Umherirrender

CentralAuth

 * - Update more GlobalRename classes to only require UserIdentity by Alexander Vorwerk
 * - Support for temporary user creation by Tim Starling
 * - Update GlobalRenameUser to only require UserIdentity by Alexander Vorwerk

CentralNotice

 * - Replace deprecated WikiPage::factory by Umherirrender
 * - Deprecate SkinTemplateNavigation::SpecialPage and SkinTemplateNavigation hooks in favor of SkinTemplateNavigation::Universal by Moh'd Khier Abualruz
 * - Remove unnecessary vendor prefix by Ed Sanders
 * - selenium: Use @wdio/spec-reporter by Željko Filipin
 * - Use new ResourceLoader namespace by Tim Starling
 * - tests: Remove use of QUnit 1.x setup/teardown by Timo Tijhof
 * - Move images into resources/images folder by Umherirrender

CheckUser

 * - Remove Traceroute and RBLs as broken and fix WHOIS link for tool links   by dreamyjazz
 * - Add All/None/Invert checkbox options for 'Get users' in CheckUser by dreamyjazz
 * - Ensure the input for replacing the userpage has the 'blocktag' ID by dreamyjazz
 * - Add test from the CentralAuth extension that tests the ServiceWiring by dreamyjazz

CirrusSearch

 * - Use WikiPageFactory to create WikiPage object by Umherirrender
 * - Use WikiPageFactory to create WikiPage object by Umherirrender
 * - Show warning when user does not provide a regular expression to insource by joseph emmanuel kayode (iemarjay)
 * - Log a debug message when an index job is skipped... by David Causse
 * - Fix numBulk sometimes not set in DataSender by joseph emmanuel kayode (iemarjay)
 * - Start `catch` blocks on the same line as the preceding } by DannyS712
 * - first stab at development documentation by Erik Bernhardson

cldr

 * - Add Campidanese Sardinian - sro by Raymond

CommonsMetadata

 * - Use WikiPageFactory to create WikiFilePage object by Umherirrender

ContentTranslation

 * - ULS entrypoint: Clicking the ellipsis button is not working as expected by Santhosh Thottingal

DiscussionTools

 * - Use $.html to refresh page after save by Ed Sanders
 * - Pass useskin/mobileformat when previewing/refreshing page contents by Ed Sanders
 * - Api: Make type/title required args of previewMessage by Ed Sanders
 * - Topic containers: Design iterations by Ed Sanders
 * - Thread containers: Link latest comment timestamp to corresponding comment by Ed Sanders
 * - Only enable visual enhancements in specific namespaces by Ed Sanders
 * - Truncate timestamps in comment IDs / names by Bartosz Dziewoński
 * - Update wording of visual enhancements preferences  by Bartosz Dziewoński
 * - Show thread metadata in section headers by Ed Sanders
 * - Fix race condition causing highlights to not be cleared by Bartosz Dziewoński
 * - Tweak positioning of highlights to make them prettier by Bartosz Dziewoński
 * - Set rootNode for items from in ThreadItemSet#newFromAnnotatedNodes by Bartosz Dziewoński
 * - topicsubscription: Reduce code duplication by Bartosz Dziewoński

DonationInterface

 * - Update smashpig to v0.8 by jgleeson
 * - Remove city as required field for gpay by wfan

Echo

 * - Do minor code cleanup by Matěj Suchánek
 * - Drop SkinMinervaReplaceNotificationsBadge hook by Jon Robson

EntitySchema

 * - Replace deprecated WikiPage::factory/Use WikiPageFactory by Umherirrender

EventBus

 * - Start `catch` blocks on the same line as the preceding } by DannyS712

EventLogging

 * - MediaWikiMetricsClientIntegration: Do not read state from DOM by Sam Smith
 * - MediaWikiMetricsClientIntegration: Cache ::getContextAttributes result by Sam Smith
 * - lib: Update lib/metrics-platform to f8693e71807 by Sam Smith

FileExporter

 * - Use WikiPageFactory to create WikiFilePage object by Umherirrender

FlaggedRevs

 * - Replace deprecated WikiPage::factory by Umherirrender

Flow

 * - Replace deprecated WikiPage::factory/newFromID by Umherirrender

GlobalPreferences

 * - Avoid unnecessary calls to fetching global preferences by Func

GrowthExperiments

 * - Suggested edits: remove queuePosition argument from SuggestedEditsModule.logCardData by MewOphaswongse
 * - Gruntfile: eslint more files, and stylelint to include Vue by Kosta Harlan
 * - Use WikiPageFactory to create WikiPage object by Umherirrender
 * - Mentorship: add gender support to mentee-facing messages by MewOphaswongse
 * - tests: Add another regression test for missing found_on property by Martin Urbanec
 * - tests: Add regression test for missing found_on property by Kosta Harlan
 * - MentorMessageChangeDialog: Inform users about the maximum message length by Martin Urbanec
 * - Mentor dashboard: Add link to Special:ManageMentors to resources module by Martin Urbanec
 * - ProductionImageRecommendationApiHandler: Don't assume found_on exists by Kosta Harlan
 * - extension.json: Add contributors by Kosta Harlan
 * - Add an image: Support new image suggestions API via ProductionImageRecommendationApiHandler by MewOphaswongse
 * - ApiQueryGrowthTasks: Use ProtectionFilter by Kosta Harlan
 * - ProtectionFilter: Use single SQL query per task set by Kosta Harlan
 * - Mentorship: add gender support to mentor-facing messages by MewOphaswongse
 * - ApiManageMentorList: Empty message should mean default by Martin Urbanec
 * - Deprecate SkinTemplateNavigation::SpecialPage and SkinTemplateNavigation hooks in favor of SkinTemplateNavigation::Universal by Moh'd Khier Abualruz
 * - Add image: create ImageRecommendationApiHandler by MewOphaswongse
 * - MentorTools: Make it possible for mentors to change their intro message by Martin Urbanec
 * - Add ApiManageMentorList by Martin Urbanec
 * - WikiPageConfigWriter: Support tagging edits by Martin Urbanec
 * - LinkRecommendation: Pass language code to the link recommendation service by Kosta Harlan
 * - [tests] Add unit test for WikiPageConfigWriter by Martin Urbanec
 * - Structured task: Support free text for "other" rejection reason by MewOphaswongse
 * - Add maintenance/migrateWikitextMentorList.php by Martin Urbanec
 * - Add introduction text to the homepage mentorship module by Martin Urbanec
 * - Make EllipsisMenu a singleton by Martin Urbanec

GuidedTour

 * - Remove EventLoggingSchemas entries by Sam Smith

GWToolset

 * - Replace deprecated WikiPage::factory by Umherirrender

ImageSuggestions

 * - Echo tables can live in a different db by Matthias Mullie

IPInfo

 * - Add help icon to infobox ASN by AnaïsGueyte
 * - i18n: action/right messages consistency by Yuki Shira
 * - Show different labels when access is restricted to MaxMind data by Thalia
 * - Allow filtering the IPInfo log by type of actions by MarcoAurelio
 * - Fixing interface messages in IP Info by diesel kapasule
 * - IP Info: Add IP version information in box remove capitalisation by tsepothoabala
 * - Improve test coverage of Rest/Presenter/DefaultPresenter.php by tsepothoabala
 * - Improve test coverage of Jobs/LogIPInfoAccessJob.php by tsepothoabala
 * - Update coverage docs for BlockInfoRetrieverTest, ContributionInfoRetrieverTest by STran
 * - Add tests for Info classes by STran
 * - Add SchemaHandler test by STran
 * - IP Info: Add IP version information in box by tsepothoabala

Kartographer

 * - Allow return value of ApiQueryMapData::getParserOutput to be a boolean by Alexander Vorwerk
 * - Fix "uninitialized string offset" error on empty strings by Thiemo Kreuz
 * - MapLink: move shared logic to trait by msantos

LabeledSectionTransclusion

 * - Fixes parser tests after edit link title update by Tpt

Linter

 * - Start `catch` blocks on the same line as the preceding } by DannyS712

LiquidThreads

 * - Replace deprecated WikiPage::factory/Use WikiPageFactory by Umherirrender
 * - Deprecate SkinTemplateNavigation::SpecialPage and SkinTemplateNavigation hooks in favor of SkinTemplateNavigation::Universal by Moh'd Khier Abualruz

MachineVision

 * - Wait for replication after committing suggestions by Matthias Mullie

MassMessage

 * - Move shared data out of loop by wctaiwan

Math

 * - Remove some unused methods. by Stegmujo
 * - Start `catch` blocks on the same line as the preceding } by DannyS712
 * - schema: Move all sql files to sql folder by Umherirrender
 * - Bump minimum required version for upgrade to 1.31 by Umherirrender

MediaSearch

 * - MediaSearch: "Load more" and "No more results found" displayed at the top of search resutls by Mark Shenouda

MobileFrontend

 * - Replace bugzilla bug numbers with Phabricator task IDs by Ed Sanders
 * - Add return type to UserModes::getIterator by Reedy
 * - Attach Search token from autocomplete to clickthrough referer by Erik Bernhardson

MultimediaViewer

 * - Remove EventLoggingSchemas entries by Sam Smith

Newsletter

 * - Use WikiPageFactory to create WikiPage object by Umherirrender

PageTriage

 * - Replace deprecated WikiPage::factory/newFromID by Umherirrender
 * - Allow disabling the noindex age threshold by Taavi Väänänen
 * - Article model: remove unused user_talk_title_url by DannyS712

ProofreadPage

 * - Start `catch` blocks on the same line as the preceding } by DannyS712

RevisionSlider

 * - Modernize and simplify smaller pieces of code in API module by Thiemo Kreuz

Scribunto

 * - Update parser test by Bartosz Dziewoński

SecurePoll

 * - Run phan for cli folder and auth-api.php by Umherirrender

SimilarEditors

 * - URL encode usernames in Interaction Timeline links by Thalia
 * - Don't show table if no result by AnaïsGueyte
 * - Add timeline link to user cell in results table by STran

SpamBlacklist

 * - Use WikiPageFactory to create WikiPage object by Umherirrender

TemplateData

 * - Remove $wgTemplateDataSuggestedValues feature flag  by WMDE-Fisch
 * - Use WikiPageFactory to create WikiPage object by Umherirrender

TimedMediaHandler

 * - Fix for ogv.js enabling on iOS with MPEG source videos by Brion Vibber

Translate

 * - Update WikiPage group description to display link to translation page by Wangombe
 * - Allow CSV export for WikiPageMessageGroup by Abijeet
 * - ElasticSearch update: Handle case where MessageHandle group is null by Abijeet
 * - Replace deprecated WikiPage::factory/newFromID/Use WikiPageFactory by Umherirrender
 * - Add check to verify that the MessageBundle metadata is an array by Abijeet
 * - Rebuild MessageIndex and clear MessageGroup cache on bundle deletion by Abijeet
 * - Add an indicator that email reminder was sent by Wangombe

UniversalLanguageSelector

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

UploadWizard

 * - Replace deprecated WikiPage::factory by Umherirrender

VisualEditor

 * - Update VE core submodule to master (c5804af0a) by Bartosz Dziewoński
 * - Use $.html to refresh page after save by Ed Sanders
 * - Remove unused resetScroll function by Adam Wight
 * - Fork OutlineControlsWidget by Adam Wight
 * - Simplify focusing a parameter by Adam Wight
 * - Remove findClosestPage logic by Adam Wight
 * - Add initial tests for ve.ui.MWTwoPaneTransclusionDialogLayout by Andrew Kostka
 * - Replace deprecated WikiPage::factory by Umherirrender
 * - Order transclusion CSS/LESS files alphabetically by WMDE-Fisch
 * - Merge `set` handler into two-pane class by Adam Wight
 * - Reduce barely used "autoFocus" code in template dialog by Thiemo Kreuz
 * - Merge some CSS rules into the layout less file by WMDE-Fisch
 * - Update VE core submodule to master (2a341d152) by Bartosz Dziewoński
 * - Do not grey out page title while loading on Vector 2022 by Bartosz Dziewoński
 * - Remove newSidbar CSS and merge CSS rules by WMDE-Fisch
 * - Rename `data-ve-target-container` attribute to `data-mw-ve-target-container` by Jan Drewniak
 * - Drop unused "continuous" configuration by Adam Wight
 * - Remove unused return value from addPromptedParameters method by Thiemo Kreuz
 * - Push ownership of the sidebar down into the two-pane layout by Adam Wight
 * - Remove unused events from forked BookletLayout by Thiemo Kreuz
 * - Never attach outlineSelectWidget to the DOM  by Adam Wight
 * - Inline template parameter id to page name connection by Thiemo Kreuz
 * - Remove duplicate "add parameters" method from template dialog by Thiemo Kreuz
 * - Switch to forked BookletLayout by Adam Wight
 * - Introduce `data-ve-target-container` as a skin-customizable VE target by Jan Drewniak
 * - Update VE core submodule to master (7170a0139) by Bartosz Dziewoński
 * - selenium: Disable flaky test by Kosta Harlan
 * - Avoid preloading base translation page in editor by Thalia
 * - Revert workaround for oojs when removing selected item by Adam Wight
 * - Remove inaccessible ARIA annotation from old sidebar by Adam Wight
 * - Inline private helper functions in MWTransclusionNode by Thiemo Kreuz
 * - Remove CSS applied to .ve-ui-mwTransclusionDialog by WMDE-Fisch
 * - Remove unused media info messages by Thiemo Kreuz
 * - Remove dead code in MWTemplatePage by WMDE-Fisch
 * - Use SkinTemplateNavigation::Universal by Jon Robson
 * - Remove some "pocSidebar" related pieces from template dialog by Thiemo Kreuz
 * - Remove dead code in MWTemplateDialog by WMDE-Fisch
 * - Remove dead code in MWTransclusionDialog by WMDE-Fisch
 * - Remove two unused placeholder messages from gallery dialog by Thiemo Kreuz
 * - Remove unused media position messages by Thiemo Kreuz
 * - Copy BookletLayout implementation from ooui-js 0.44.0 by Adam Wight
 * - Fix broken error message 'visualeditor-saveerror' by Bartosz Dziewoński

Wikibase

 * - SECURITY: Validate term length in Special:NewProperty by Lucas Werkmeister
 * - Add debug logging for item term storage by Lucas Werkmeister
 * - REST: Use user provided comment as edit summary by Jakob Warkotsch
 * - REST: Create SnakSerializer that adds "datatype" by Ollie Shotton
 * - Use WikiPageFactory to create WikiPage object by Umherirrender
 * - REST: Keep references in OpenAPI schema by Ollie Shotton
 * - REST: Add "Qualifier" to OpenAPI Schemas section by Ollie Shotton
 * - REST: Add "datatype" description to Snak in OpenAPI by Ollie Shotton
 * - REST: Consolidate required properties in OpenAPI by Ollie Shotton
 * - REST: Restructure OpenAPI schema with "readOnly" by Ollie Shotton
 * - Don’t log any errors when SSR URL is not configured by Lucas Werkmeister
 * - REST: Add authorization prerequisites by Jakob Warkotsch
 * - REST: Check request content type in validate by Jakob Warkotsch
 * - REST: Send stringified body for form POST content by Jakob Warkotsch
 * - REST: Catch Throwable in UnexpectedErrorHandler by Jakob Warkotsch
 * - REST: Add TypeValidatingJsonBodyValidator by Jakob Warkotsch

WikibaseCirrusSearch

 * - Use LanguageSelectorStatementBoost instead of its plurar form by David Causse
 * - Use WBCS config when registering language selector profile by David Causse
 * - Do not re-use "wikibase_config" for registering the language selector... by David Causse

WikibaseLexeme

 * - SECURITY: Validate lemma length in Special:NewLexeme(Alpha) by Lucas Werkmeister
 * - Bump Special:NewLexemeAlpha by Michael Große
 * - Add url for documentation about spelling variant as message by Michael Große

WikibaseMediaInfo

 * - Replace deprecated WikiPage::factory by Umherirrender

WikiEditor

 * - Use 100ms opacity transition for revealing "Reload" button on hover by Ed Sanders
 * - RealtimePreview: Don't update when wikitext is unmodified by Ed Sanders

WikiLambda

 * - Replace deprecated WikiPage::factory by Umherirrender
 * - Remove ZList leftovers in WikiLambda Vue  by gengh
 * - Migrate tester pipeline into MW by James D. Forrester
 * - ZTypedList::buildType: Correct documentation of type input by James D. Forrester
 * - ZTypeRegistry: Add and use constants for Z40K1, Z41, and Z42 by James D. Forrester
 * - ZObject: Allow values to be set programmatically by James D. Forrester
 * - ZString: If we've been given null, don't error over it by James D. Forrester
 * - ZString::getSerialized: Never pass null to ZObjectUtils::isValidZObjectReference by James D. Forrester
 * - Remove ZList/Z10 builtin and update function-schemata   by gengh
 * - Remove Z10 leftovers from WikiLambda by gengh
 * - WikiLambda Toast component with Codex Message component by adesoji
 * - Update function-schemata sub-module to HEAD (7285f40)  by James D. Forrester

WikiLove

 * - build: Update eslint, stylelint by Ed Sanders
 * - Use Wikimedia standard icon for Wikilove by Jon Robson
 * - Deprecate SkinTemplateNavigation::SpecialPage and SkinTemplateNavigation hooks in favor of SkinTemplateNavigation::Universal by Moh'd Khier Abualruz

WikimediaMaintenance

 * - renameInvalidUsernames: add missing \n to output call by Alexander Vorwerk

WikimediaMessages

 * - Update 'en' external link on research incentive survey by Daniel Souza
 * - Update 'en' on Research Incentive survey by Daniel Souza
 * - Add extra messages for Research Incentive survey by Daniel Souza
 * - Add messages for Research Incentive QuickSurvey by Daniel Souza

Wikistories

 * - Viewer textbox touch up: by Eduardo
 * - Show stories only on minerva by Stephane Bisson
 * - Publishing progress state by Eduardo
 * - Beta feature to show stories on article pages by Stephane Bisson
 * - Fix Log Story Viewer in navigation case by hueitan
 * - Update contributionEvents.js to fix log event error by Eduardo
 * - Load discover section progressively by Stephane Bisson
 * - Navigating to a previous and next story frame by hueitan
 * - Special:StoryBuilder: validate subpage by Stephane Bisson
 * - Validate that the fromArticle field contains a valid article title by Stephane Bisson
 * - Invalidate stories cache when related aticle changes by Stephane Bisson
 * - Use FormatMetadata to get metadata regardless of File subclass by Stephane Bisson

MinervaNeue

 * - Add sortability to sortable tables for mobile web by EllenR

Timeless

 * - Use correct namespace for ResourceLoader\Context by Perry Fraser
 * - Add style exception for OOUI buttons' margin by Perry Fraser

Vector

 * - Remove hover and focus states on article toolbar links by Jon Robson
 * - Fix table of contents when sidebar is open by Jon Robson
 * - Attach VE to `#content` while title-above-tabs feature is disabled. by Jan Drewniak
 * - Technical: Use unambigious menu template by Jon Robson
 * - Layout: Don't hide footer < 1000px when sidebar closed by Jon Robson
 * - TOC: Ensure TOC spacing is correct when grid is enabled by bwang
 * - Revise margin collapsing rules with new layout by Jon Robson
 * - Rename `data-ve-target-container` attribute to `data-mw-ve-target-container` by Jan Drewniak
 * - Use the data-ve-target-container attribute to position VE  by Jan Drewniak
 * - [Fix] Adjustment to legacy menu templates by Jon Robson
 * - Restore sticky header class and update TOC styles by Clare Ming
 * - Table of contents: Cached HTML is no longer a problem by Jon Robson
 * - Fix sticky header edit icons during A/B test init by Jon Robson
 * - Add support for floating TOC lower down the page by bwang

VisualEditor/VisualEditor

 * - Handle Shift+Enter at the start/end of pre nodes too by Bartosz Dziewoński
 * - DummyPlatform: Mock system Storage object as well as SafeStorage wrapper by Ed Sanders
 * - Add unit tests for ve.init.ListStorage by Ed Sanders
 * - build: Update language lists to add 'ks-arab' by Bartosz Dziewoński
 * - Swap out an existing toolbar $overlay when changing a surface by Ed Sanders

No changes

 * 3D
 * AdvancedSearch
 * AntiSpoof
 * ApiFeatureUsage
 * ArticleCreationWorkflow
 * ArticlePlaceholder
 * BetaFeatures
 * BounceHandler
 * Calendar
 * Campaigns
 * Capiunto
 * CategoryTree
 * CharInsert
 * ChessBrowser
 * Cite
 * CiteThisPage
 * Citoid
 * CodeEditor
 * CodeMirror
 * Cognate
 * Collection
 * CologneBlue
 * ConfirmEdit
 * CongressLookup
 * ContactPage
 * CreditsSource
 * Dashiki
 * Disambiguator
 * DismissableSiteNotice
 * DoubleWiki
 * Elastica
 * ElectronPdfService
 * EventStreamConfig
 * ExtensionDistributor
 * ExternalGuidance
 * FeaturedFeeds
 * FileImporter
 * FundraiserLandingPage
 * FundraisingTranslateWorkflow
 * Gadgets
 * GeoCrumbs
 * GeoData
 * GlobalBlocking
 * GlobalCssJs
 * GlobalUsage
 * GlobalUserPage
 * GlobalWatchlist
 * GoogleNewsSitemap
 * Graph
 * ImageMap
 * InputBox
 * Insider
 * Interwiki
 * InterwikiSorting
 * Josa
 * JsonConfig
 * LandingCheck
 * LdapAuthentication
 * Listings
 * LoginNotify
 * MapSources
 * MediaModeration
 * MobileApp
 * Modern
 * MonoBook
 * NavigationTiming
 * NearbyPages
 * NewUserMessage
 * Nostalgia
 * Nuke
 * OATHAuth
 * OAuth
 * OAuthRateLimiter
 * ORES
 * OpenStackManager
 * PageAssessments
 * PageImages
 * PageNotice
 * PageViewInfo
 * PagedTiffHandler
 * ParserFunctions
 * PdfHandler
 * Poem
 * PoolCounter
 * Popups
 * PropertySuggester
 * QuickSurveys
 * Quiz
 * RSS
 * ReadingLists
 * RelatedArticles
 * Renameuser
 * SandboxLink
 * Score
 * SearchExtraNS
 * SecureLinkFixer
 * ShortUrl
 * SiteMatrix
 * StopForumSpam
 * SubPageList3
 * SubpageSortkey
 * SyntaxHighlight_GeSHi
 * TemplateSandbox
 * TemplateStyles
 * TemplateWizard
 * TextExtracts
 * Thanks
 * TheWikipediaLibrary
 * TitleBlacklist
 * TocTree
 * TorBlock
 * TranslationNotifications
 * TrustedXFF
 * TwoColConflict
 * UploadsLink
 * UrlShortener
 * VipsScaler
 * WebAuthn
 * WikibaseLexemeCirrusSearch
 * WikibaseQualityConstraints
 * Wikidata.org
 * WikidataPageBanner
 * WikimediaApiPortal
 * WikimediaApiPortalOAuth
 * WikimediaBadges
 * WikimediaEditorTasks
 * WikimediaEvents
 * WikimediaIncubator
 * Wikisource
 * XAnalytics
 * intersection
 * timeline
 * wikihiero

Total changes
331 Changes in 65 repos by 83 authors