MediaWiki 1.40/wmf.5/Changelog

Core changes

 * - Branch commit for wmf/1.40.0-wmf.5 by trainbranchbot
 * - Revert "Skins: Config flag controls contributions link" by Kosta Harlan
 * - jquery.tablesorter: Remove custom 'isoDate' parser for text sorting by Timo Tijhof
 * - Fix Bengali namespaceAliases translation of NS_MEDIAWIKI_TALK by MdsShakil
 * - preferences: Show errors about invalid timezone instead of silently correcting by Bartosz Dziewoński
 * - Fix MediaWiki.WhiteSpace.EmptyLinesBetweenUse.Found by Reedy
 * - Upgrading wikimedia/xmp-reader (0.8.3 => 0.8.4) by Reedy
 * - build: Update mediawiki/mediawiki-phan-config to 0.12.0 by Daimona Eaytoy
 * - Fixes for the phan upgrade, part 2 by Daimona Eaytoy
 * - Fixes for the phan upgrade, part 1 by Daimona Eaytoy
 * - chmod 644 some files that are 755 by Reedy
 * - tests: Upgrade PHPUnit from 8.5+ to 9.5+  by Daimona Eaytoy
 * - Update specialPageAliases for Arabic (ar) and Egyptian Arabic (arz) by Meno25
 * - Follow-up b70581e4ca: Mention upgraded devLibs in RELEASE-NOTES by James D. Forrester
 * - tests: Replace assertRegExp with assertMatchesRegularExpression by Daimona Eaytoy
 * - Fix passing the wikiId into ParsoidOutputAccess. by daniel
 * - LanguageVariantConverter: Use content language code from HTTP header by Abijeet
 * - tests: Add forward-compat assertDoesNotMatchRegularExpression too by Daimona Eaytoy
 * - tests: Add temporary forward-compat method for assertMatchesRegularExpression by Daimona Eaytoy
 * - preferences: Use 'timezone' type for the 'timecorrection' field by Func
 * - Add @coversNothing to all structure tests by Daimona Eaytoy
 * - phpunit: Avoid deprecated at matcher by Daimona Eaytoy
 * - Check whether title actually exists by Matthias Mullie
 * - ParsoidOutputAccess: Add support for `fragment` flavor by Derick Alangi
 * - Installer: Disable logo dropper for now by Jon Robson
 * - Remove unused property in ConditionalHeaderUtil by Jakob Warkotsch
 * - Reduce the max width for the basic namespace filter on Special:Search by Simone Cuomo
 * - Skins: Config flag controls contributions link by Moh'd Khier Abualruz
 * - Fix typo in class name in @covers annotation by Daimona Eaytoy
 * - filerepo: Replace deprecated wfExpandUrl by Umherirrender
 * - Skin: Map namespaces to associated pages inside runOnSkinTemplateNavigationHooks by Jon Robson
 * - Special:Contribute should not show permission error by Moh'd Khier Abualruz
 * - In the event of preg failure in MagicWordArray throw exception by Brian Wolff
 * - Escape link markers before replacement when building comments. by Welp
 * - Redesign Special:Preferences for mobile by suecarmol
 * - html2wt: fall back to re-rendering if needed. by daniel
 * - Allow large image previews by adding max image preview tag by Moh'd Khier Abualruz
 * - ServiceWiring: Remove backcompat code and kill $wgShellboxUrl by Derick Alangi
 * - ApiSandbox: Replace obsolete IntegerParamWidget class by thiemowmde
 * - Use OpenSSL if available for PBKDF2 password hashing by Kevin Israel
 * - WebInstaller::infoBox: Remove extra indenting by Reedy
 * - WebInstaller: Don't try and run trim on null by Reedy
 * - The Special:Contributions page should show tabs to Special:Contribute by Moh'd Khier Abualruz
 * - specials: Replace deprecated wfExpandUrl/wfParseUrl by Umherirrender
 * - utils: Fix return doc about false/null for UrlUtils::expand by Umherirrender
 * - fixDoubleRedirects.php: Work only with proper titles by Umherirrender
 * - Re-apply: Introduce LanguageVariantConverter by daniel
 * - ParsoidHandler: use metrics from SiteConfig by daniel
 * - Revert "Introduce LanguageVariantConverter" by Daniel Kinzler
 * - jquery.tablesorter: Remove 'url' parser for transforming sorted text by Timo Tijhof
 * - WIP Special:Search dyk messaging and padding tweaks. by Joseph Seddon
 * - Remove Collation::singleton/factory by Umherirrender
 * - SpecialMyLanguage: Preserve the fragment from the redirect target by Func
 * - SpecialMyLanguage: Take content language of the base page into account by Func
 * - Replace various `array` type hints with more specific `string[]` by thiemowmde
 * - Fix logic for formatting negative timezone offsets by Daimona Eaytoy
 * - Import Toki Pona translation work from mediawiki-tokipona by Theodore Dubois

Vendor

 * - Bump parsoid to 0.17.0-a3  by Isabelle Hurbain-Palatin
 * - Upgrading wikimedia/xmp-reader (0.8.3 => 0.8.4) by Reedy
 * - Update diff/diff from 3.2.0 to 3.3.1 by Marius Hoch

AbuseFilter

 * - Avoid phan suppression by Daimona Eaytoy
 * - tests: Replace assertNotRegExp with assertDoesNotMatchRegularExpression by Daimona Eaytoy
 * - build: Upgrade eslint-config-wikimedia from 0.22.1 to 0.23.0 by James D. Forrester
 * - build: Drop PHP dependency, irrelevant given MediaWiki version by James D. Forrester

AdvancedSearch

 * - Replace a jQuery.each with native for loop by Thiemo Kreuz

ArticlePlaceholder

 * - Update SpecialAboutTopicTest for robot policy changes by Lucas Werkmeister

BetaFeatures

 * - tests: Replace assertRegExp with assertMatchesRegularExpression by Daimona Eaytoy
 * - Add a description for new Special:Preferences layout by suecarmol

CampaignEvents

 * - Add initial wiring code and configuration for the P&E dashboard by Daimona Eaytoy
 * - Ensure that seconds are set to 0 when enabling/editing a registration by Daimona Eaytoy
 * - build: Update node dependencies by Daimona Eaytoy
 * - Add timezone parameter to the edit registration endpoints by Daimona Eaytoy
 * - Remove seconds from time selectors when editing a registration by Daimona Eaytoy
 * - Make time inputs work correctly with non-UTC timezones by Daimona Eaytoy
 * - build: Drop PHP dependency, irrelevant given MediaWiki version by James D. Forrester
 * - selenium: Delete sample test by Vaughn Walters
 * - Rewrite FrontendModules to use proper DI by Daimona Eaytoy
 * - Show organizers on Special:EventDetails by Daimona Eaytoy
 * - Refactor logic for showing a user link with fallbacks   by Daimona Eaytoy
 * - Simplify CSS and JS of Special:EventDetails by Daimona Eaytoy
 * - Minor escaping fix following security review by Daimona Eaytoy
 * - Add timezone selector to Special:(Enable|Edit)EventRegistration by Daimona Eaytoy
 * - Add tests to document UTC conversion of ambiguous times by Daimona Eaytoy
 * - Make the timezone a parameter to EventFactory::newEvent by Daimona Eaytoy
 * - Implement basic logic for tracking tools by Daimona Eaytoy

CentralAuth

 * - Fix type of Pbkdf2Password following core change by Kunal Mehta

CheckUser

 * - Start on selenium tests for browser side testing of CheckUser by dreamyjazz
 * - Use PagerNavigationBuilder over overriding IndexPager::makeLink by dreamyjazz
 * - eventLogger: Use $revId of -1 for SpecialInvestigate by Sam Smith

CirrusSearch

 * - Unpack Arabic and Thai analyzers by tjones

cldr

 * - Add Sylheti (syl) by Raymond

CodeMirror

 * - Add tags from CodeMirrorPluginModules to extension tags list by AntiCompositeNumber

ConfirmEdit

 * - Replace assertNotRegExp -> assertDoesNotMatchRegularExpression by Daimona Eaytoy
 * - tests: Replace assertRegExp with assertMatchesRegularExpression by Daimona Eaytoy

ContentTranslation

 * - Hooks: Use isMobileView and isSXEnabled methods by Santhosh Thottingal
 * - Special:Contribute entrypoint: auto betafeature and hide in non-SX wikis by Santhosh Thottingal
 * - Add Translation entrypoint in Special:Contribute by Santhosh Thottingal
 * - RecentSignificantEditStore: Force section titles to be an index array by NikG
 * - SX Publishing: Fix translation target url to be stored properly in db by NikG
 * - SX Publishing: Fix target title to use sandbox only when required by NikG
 * - CX3 Build 0.2.0+20221003       by Santhosh Thottingal

DiscussionTools

 * - CommentItem.js: Ensure timestamps are UTC by Ed Sanders
 * - Fix call to wfMessage by Daimona Eaytoy
 * - ImmutableRange: Add surroundContents method by Ed Sanders

DonationInterface

 * - Stop sending unrectifiable orphans to damaged by Elliott Eggleston
 * - Add payment_submethod for Apple Pay by Elliott Eggleston

EntitySchema

 * - For consistency, don't set the nstab text for "EntitySchema talk" by Marius Hoch
 * - Try waiting for input elements instead of pausing by Lucas Werkmeister
 * - Wait for inputs existing before trying to set a value in test by Lucas Werkmeister
 * - Add translatable nstab-* messages  by Amir E. Aharoni

EventLogging

 * - tests: Replace assertRegExp with assertMatchesRegularExpression by Daimona Eaytoy
 * - Update database property, foreign resources, schema number. by Clare Ming

FileExporter

 * - Simplify what a @dataProvider needs to know by Thiemo Kreuz
 * - Use dedicated inNamespace method by Thiemo Kreuz

FileImporter

 * - Stop using deprecated TempFSFile::factory by Thiemo Kreuz
 * - Use assertStringContainsString instead of assertContains by Daimona Eaytoy
 * - Remove deprecated less var by WMDE-Fisch
 * - Consistent terminology and slightly more helpful error messages by thiemowmde
 * - Add strict types to most PHP method signatures by Thiemo Kreuz
 * - Stop using deprecated WikiRevision::getFormat by Thiemo Kreuz
 * - Replace almost all Status with more narrow StatusValue interface by Thiemo Kreuz

Flow

 * - Fix for PHPUnit 9 compatibility by Daimona Eaytoy

FundraiserLandingPage

 * - Try reloading once if no GeoIP cookie found by Andrew Green
 * - Only pass on params from URL query string by Andrew Green

GeoCrumbs

 * - Add tags around links by Jon Harald Søby

GeoData

 * - Searcher: Suppress PhanTypeMismatchArgumentNullable by Reedy

GlobalBlocking

 * - sqlite: Remove patch set for sqlite from updater by Umherirrender

GlobalWatchlist

 * - build: Allow eslint warnings by Kunal Mehta

GrowthExperiments

 * - User impact: display 60 days in the recent activity panel by Sergio Gimeno
 * - Mentee filters: Localise recent edit options in mentee filters by Sergio Gimeno
 * - Mentee overview: update to correct values by Sergio Gimeno
 * - tests: Replace assertRegExp with assertMatchesRegularExpression by Daimona Eaytoy
 * - selenium: Initial tests for MentorDashboard by Kosta Harlan
 * - MentorStore: Rename makeCacheKey to makeLoadMentorCacheKey by Martin Urbanec
 * - Mentee table: fix wrong less import by Sergio Gimeno
 * - Do not fetch any results in SuggestionsInfo by Gergő Tisza
 * - CacheDecorator: Fix missing truncation on cache miss by Gergő Tisza

GWToolset

 * - Fix deprecated filter_var option by Tim Starling

ImageMap

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

IPInfo

 * - SECURITY: ignore autoblocks in the count of active ip blocks by DannyS712

Kartographer

 * - lib: Update mapbox to upstream's changed version of v3.3.1 by James D. Forrester
 * - Bring focussed nearby marker to the front by thiemowmde
 * - Fix ….map file name validation errors not being reported by thiemowmde
 * - Fix error reporting mistaken array of GeoJSON as array of errors  by thiemowmde
 * - Use isset instead of array_key_exists/property_exists by thiemowmde
 * - Make State::newFromJson private by thiemowmde
 * - Visualize :focus state on nearby markers by thiemowmde
 * - Add missing configuration error check for missing map server by thiemowmde
 * - Log basic nearby and fullscreen events  by Adam Wight

LdapAuthentication

 * - Fail loudly on LDAP connection failure by Taavi Väänänen

MachineVision

 * - maintenance: Use standard Maintenance.php boilerplate by Timo Tijhof
 * - build: Upgrade jQuery test install to 3.6.1 to align with MediaWiki by James D. Forrester

MediaModeration

 * - maintenance: Use standard Maintenance.php boilerplate by Timo Tijhof

MediaSearch

 * - Add comments to Icon component about WVUI and Codex by Anne Tomasevich
 * - maintenance: Reduce use of DBConnRef and global MediaWikiServices by Timo Tijhof
 * - maintenance: Use standard Maintenance.php boilerplate by Timo Tijhof

MobileFrontend

 * - build: Allow eslint warnings by Kunal Mehta
 * - Follow-up 68c6ff23a1: Don't have special CSS for the stopHand icon, unused by James D. Forrester

NavigationTiming

 * - docs: Update README and remove old snippet by Timo Tijhof

OATHAuth

 * - Move UpdateTables to HookHandler by Reedy

OAuth

 * - tests: Replace assertRegExp with assertMatchesRegularExpression by Reedy
 * - Add missing @covers by Reedy
 * - Replace deprecated Skin::footerLink for privacy link by Umherirrender
 * - Remove usage of deprecated openssl_free_key with ext:OAuth tests by sbassett
 * - SECURITY: redact oauth_token_secret within log data by sbassett
 * - SECURITY: Prevent open redirect in Special:OAuth/rest_redirect by Gergő Tisza

OAuthRateLimiter

 * - maintenance: Use standard Maintenance.php boilerplate by Timo Tijhof

PageTriage

 * - PageCurationToolbar: Don't send "I have unreviewed a page you curated" message, if text area is empty by MPGuy2824
 * - Unfloat Special:NewPagesFeed top bar by Novem Linguae
 * - Remove usage of ArraySubset in tests by Chlod Alejandro
 * - Replace promise handling when AfD'ing pages by ChlodAlejandro
 * - PageCurationToolbar: Display a purple check mark if the article was autopatrolled by MPGuy2824
 * - PageCurationToolbar: Colored the "Mark as unreviewed" button red by MPGuy2824
 * - NewPagesFeed: Filter screen UI redesign to use the space more by MPGuy2824
 * - SECURITY: check for autopatrol when marking own articles as reviewed by Alexander Vorwerk
 * - NewPagesFeed: Counting "patrolled" pages along with "reviewed" pages by MPGuy2824
 * - Resolving difference between List API and Stats API  by MPGuy2824
 * - Toolbar: Adding an edit message while adding an AfD to the daily log page by MPGuy2824
 * - PageCurationToolbar: Fixing the issue where text flows out of the widget by MPGuy2824

Phonos

 * - Add missing unit test covering Phonos class by Dayllan Maza
 * - Parse label string before passing to the button by Sam Wilson
 * - Fix background-color of error popup anchor by Sam Wilson
 * - Create a Job when phonos tag is rendered from another job by Dayllan Maza
 * - Update logic that check if `PhonosWikibaseProperties` exist by hmonroy
 * - Create Job to handle mass file generation by Dayllan Maza
 * - wgPhonosStoreFilesAsMp3: Add option to not convert to MP3 via LAME by TheresNoTime
 * - Use outline instead of border for focus highlighting by Sam Wilson
 * - LarynxEngine: Return MP3 data in getAudioData by TheresNoTime
 * - Phonos: Throw PhonosException if IPA > 300 bytes by TheresNoTime
 * - PHP: Drop support for PHP 7.2 by TheresNoTime
 * - Allow only 'wikibase' attribute by Sam Wilson
 * - Fix style for buttons without labels by Sam Wilson

Popups

 * - Lowercase {jQuery…} type hints everywhere by Thiemo Kreuz
 * - Use PHPUnit's convenience shortcuts where possible by Thiemo Kreuz

QuickSurveys

 * - Fix broken "survey name must be unique" check by Thiemo Kreuz
 * - Simplify SurveyFactory::parseSurveyConfig implementation by Thiemo Kreuz
 * - Update strict types and related PHPDoc type hints by Thiemo Kreuz
 * - Use PHPUnit convenience shortcuts where possible by Thiemo Kreuz
 * - Drop meaningless description from tests that don't need it by Thiemo Kreuz
 * - Improve test coverage for SurveyFactory by Thiemo Kreuz

ReadingLists

 * - Add basic import/export functionality by Jon Robson

Score

 * - build: Update mediawiki/mediawiki-phan-config to 0.12.0 by Daimona Eaytoy

Scribunto

 * - Hide mw.hash.setupInterface from users by Kunal Mehta
 * - build: Update mediawiki/mediawiki-phan-config to 0.12.0 by Reedy
 * - Restore padding on #mw-scribunto-input to make cursor visible by Kunal Mehta
 * - Use OOUI instead of jquery.ui for error popup by Kunal Mehta
 * - Add more @covers by Reedy
 * - Make sure that lua stack trace is valid UTF-8. by Brian Wolff
 * - Require CSRF token for action=scribunto-console by Kunal Mehta
 * - LuaError: Use ?: in more traditional way by Reedy

SearchVue

 * - SearchVue: Update verbiage for 'search preview' config by Vadim Kovalenko
 * - Search Preview does not close when the same title is clicked by Simone Cuomo
 * - Update config subheading by Simone Cuomo
 * - Search preview is rendered at the bottom of the page on refreshed by Simone Cuomo
 * - Increase hover space on special:search by Simone Cuomo
 * - SearchVue: Update verbiage for 'search preview' config by Vadim Kovalenko
 * - Changed hardcoded text to I18n text string in the QuickViewSections.vue file by Vadim Kovalenko
 * - Add the article title and wikidata description to quick view for extra context by Simone Cuomo
 * - Add links to Commons & file pages by Matthias Mullie
 * - Always autoscroll the page to the first result by Simone Cuomo

SecureLinkFixer

 * - tests: Replace assertRegExp with assertMatchesRegularExpression by Reedy

ShortUrl

 * - Ignore non-valid short url hashes by Umherirrender

SimilarEditors

 * - tests: Replace assertRegExp with assertMatchesRegularExpression by Reedy

SpamBlacklist

 * - Inject services into hook handler by Umherirrender
 * - Make various generic "array" type hints more specific by Thiemo Kreuz

TemplateStyles

 * - Suppress PhanUndeclaredProperty phan errors by Kunal Mehta

TorBlock

 * - Benchmark: Compare in_array and IPSet  by Reedy

Translate

 * - GenericTranslateJob: modernize by Niklas Laxström
 * - GenericTranslateJob: parametrize job title by Niklas Laxström
 * - ValidatorFactory: Support ObjectFactory specs by Niklas Laxström
 * - MediaWikiPluralValidator: Remove call to Parser::fistCallInit by Niklas Laxström
 * - Add @covers tags to all tests by Daimona Eaytoy
 * - Adds missing block checks to various pages and API by Abijeet
 * - ValidatorFactory: Remove WikiLink and WikiParameter aliases by Niklas Laxström
 * - TranslationStashSpecialPage: Inject LanguageFactory by Niklas Laxström
 * - PageTranslationSpecialPage: Inject DBLoadBalancer and MessageIndex by Niklas Laxström
 * - ServiceWiring: Replace MessageIndex::singleton with service by Niklas Laxström
 * - MessageGroupStatsSpecialPage: Inject DBLoadBalancer by Niklas Laxström
 * - ManageGroupsSpecialPage: Inject MessageIndex by Niklas Laxström
 * - LanguageStatsSpecialPage: Inject DBLoadBalancer by Niklas Laxström
 * - ParsingPlaceholderFactoryTest: Use assertMatchesRegularExpression not assertRegExp by James D. Forrester
 * - tests: Add covers annotations so PHPUnit 9.x can pass by James D. Forrester
 * - Add CodeMirror configuration by AntiCompositeNumber
 * - Hooks: Check permission before deleting translation pages via API by Func
 * - Remove RevTag class by Abijeet

UploadWizard

 * - Add description for Special:Preferences by suecarmol

VisualEditor

 * - build: Update mediawiki/mediawiki-phan-config to 0.12.0 by Daimona Eaytoy
 * - Update VE core submodule to master (5dcc0f107) by Bartosz Dziewoński
 * - api-testing: Add assertions to e2e tests by daniel

Wikibase

 * - More fixes for PHPUnit 9 compatibility by Daimona Eaytoy
 * - Add @covers tags to all tests by Daimona Eaytoy
 * - tests: Replace assertRegExp with assertMatchesRegularExpression by Daimona Eaytoy
 * - phpcs: Disable NoMatchBetweenTypeNameAndFileName rule by Daimona Eaytoy
 * - REST: Improve ConditionalRequestsTest by Jakob Warkotsch
 * - REST: Add 'If-Match' e2e tests for GET requests by sihe
 * - Add MusicalNotation to ontology file  by Hasan Akgün
 * - Use "unexpectedUnconnectedPage" page prop unconditionally by Lucas Werkmeister
 * - Write "unexpectedUnconnectedPage" page prop unconditionally by Lucas Werkmeister
 * - Always use new "unexpectedUnconnectedPage" page prop format by Lucas Werkmeister
 * - DataModel\Entity: Add __serialize/__unserialize for EntityIds  by Marius Hoch
 * - REST: Add "missing" EDIT conditional req e2e-tests by Ollie Shotton
 * - Reenable ReferenceListTest::testSerializationStability by Lucas Werkmeister
 * - REST: Fix typo in ConditionalRequestsTest.js by sihe
 * - REST: Expand 412 response assertions by Jakob Warkotsch
 * - Default to '' for dataRightsUrl and dataRightsText by Jakob Warkotsch
 * - REST: Add "missing" GET conditional req tests by Jakob Warkotsch
 * - DOC: Fix examples in the JSON "topic" docs by Ollie Shotton
 * - DOC: Adjusted links in the JSON "topic" docs by Leszek Manicki
 * - REST: Add If-Unmodified-Since header to GET requests by Ollie Shotton
 * - REST: Handle conditional request in AddItemStatementRouteHandler by Jakob Warkotsch
 * - REST: Add missing specs for conditional GET reqs by Jakob Warkotsch
 * - REST: Respond 412 for `If-None-Match: *` edit reqs by Jakob Warkotsch
 * - Fix incomplete Kartographer integration test setup by thiemowmde
 * - data-model: Fix covers tags, make covers-validator happy by Marius Hoch
 * - DOC: Permanent fix for broken doxygen links by Ollie Shotton
 * - Client: Bump schema update key for unconnected pages by Marius Hoch
 * - Send user preferred content languages to client-side by Lucas Werkmeister
 * - Make profile search parameter available unconditionally by Lucas Werkmeister
 * - Default unexpectedUnconnectedPage migration to MIGRATION_NEW by Lucas Werkmeister

WikibaseCirrusSearch

 * - tests: Add workaround for PHPUnit 9 migration by Daimona Eaytoy
 * - Don't execute hook if disabled by Matthias Mullie

WikibaseLexeme

 * - Make Lexeme namespace page tab easily translatable  by Amir E. Aharoni
 * - tests: Swap assertRegExp for assertMatchesRegularExpression by Reedy
 * - Add __serialize/__unserialize to diff (op) classes by Lucas Werkmeister
 * - Add __serialize/__unserialize to entity ID classes by Lucas Werkmeister
 * - Only allow *-x-Qid language code with uppercase item ID by Lucas Werkmeister
 * - Only send edited lemmas when editing lexeme header by Lucas Werkmeister
 * - Allow removing terms with invalid language codes by Lucas Werkmeister
 * - Inherit skin font family on Special:NewLexemeAlpha by Lucas Werkmeister

WikibaseMediaInfo

 * - tests: Replace assertRegExp with assertMatchesRegularExpression by Daimona Eaytoy
 * - Fix Phan after getGuid return type change by Lucas Werkmeister

WikibaseQualityConstraints

 * - Bump eslint-config-wikimedia from 0.22.1 to 0.23.0 by Addbot
 * - Bump jasmine from 4.3.0 to 4.4.0 by Addbot
 * - Bump sinon from 14.0.0 to 14.0.1 by Addbot
 * - Add strict types to Context classes by Lucas Werkmeister
 * - Fix Phan after getGuid return type change by Lucas Werkmeister

WikiEditor

 * - [Realtime Preview] Only clone part of the #wikiPreview element by Sam Wilson

WikiLambda

 * - Fix SyntaxError in setTimeout by gengh
 * - remove hardcoded uris by Julia Kieserman
 * - Refactor the matchers to be functions so in the future they have the by ddw
 * - Refactor mock API data setup for integration tests. by ddw
 * - Make evaluateFunctionCall case explicit in data passed from PHP layer. by EWright
 * - Create FE integration test for editing a function. by EWright
 * - Fix label-dependent data model behind the function page. Part A. by ddw
 * - do not require a user be logged in to create a function by Julia Kieserman
 * - Prevent a redundant set of empty English argument labels being sent to API when creating new ZObject. by ddw
 * - Implement functionality of "remove input field" using the Mobile view button by temitope adesoji

WikimediaEvents

 * - Remove A/B test: Allow large image previews by Moh'd Khier Abualruz
 * - Apply a few minor code style cleanups by Thiemo Kreuz
 * - tests: Avoid ArraySubset, removed in PHPUnit 9 by Daimona Eaytoy
 * - Provide a quick view turn on/off preference setting. by Simone Cuomo
 * - sessionTick: Log localStorage support  by Sam Smith

WikimediaMessages

 * - Update policy notification when registering by MHorsey

Wikistories

 * - Make discovery mode config default to 'off' by Stephane Bisson
 * - Menu items to give feedback in Builder and viewer by Stephane Bisson
 * - Fix background glitch when opening Story Viewer by Huei Tan

MinervaNeue

 * - Disable headless puppeteer for a11y testing by bwang
 * - Mark menus as supported in Minerva by Jon Robson
 * - Improve Special:Preferences mobile styles by suecarmol
 * - Switch to MW core hooks to HookHandlers by Reedy
 * - Add automated a11y test coverage to Minerva by bwang

Vector

 * - link.prepend is not a function in older browsers by Jon Robson
 * - Remove $wgVectorSearchHost, replace with $wgVectorSearchApiUrl by Roan Kattouw
 * - phan: Suppress error on Vector master blocking commits by Jon Robson
 * - Restrict margin between arrow and icon to feature flag by Jon Robson
 * - Regression: Restore tab styles to legacy icons by Jon Robson
 * - Move horizontal padding from .mw-body to .mw-page-container, improve .mw-page-container styles by bwang
 * - Visual enhancements next: Fix alignments of icons by Jdlrobson
 * - Technical: Cached HTML cleanup by bwang
 * - Adjust watchstar animation by Jon Robson
 * - Remove $isDropdownItem param from SkinVector::getCreateAccountHTML by Nicholas Ray
 * - search: Reduce skins.vector.search module size by Lucas Werkmeister
 * - search: Add some tests for instrumentation.js by Lucas Werkmeister

WikimediaApiPortal

 * - build: Allow eslint warnings by Kunal Mehta

VisualEditor/VisualEditor

 * - Fix typo in unit tests by Bartosz Dziewoński
 * - build: Upgrade various devDependencies to latest and make pass by James D. Forrester
 * - Fix transformStyleAttributes tests on Firefox on Windows by Bartosz Dziewoński

No changes

 * 3D
 * ActiveAbstract
 * AntiSpoof
 * ApiFeatureUsage
 * ArticleCreationWorkflow
 * Babel
 * BounceHandler
 * Calendar
 * Campaigns
 * Capiunto
 * CategoryTree
 * CentralNotice
 * CharInsert
 * ChessBrowser
 * Cite
 * CiteThisPage
 * Citoid
 * CodeEditor
 * Cognate
 * Collection
 * CologneBlue
 * CommonsMetadata
 * ContactPage
 * CreditsSource
 * Dashiki
 * Disambiguator
 * DismissableSiteNotice
 * DoubleWiki
 * Echo
 * Elastica
 * ElectronPdfService
 * EventBus
 * EventStreamConfig
 * ExtensionDistributor
 * ExternalGuidance
 * FeaturedFeeds
 * FlaggedRevs
 * FundraisingTranslateWorkflow
 * Gadgets
 * GlobalCssJs
 * GlobalPreferences
 * GlobalUsage
 * GlobalUserPage
 * GoogleNewsSitemap
 * Graph
 * GuidedTour
 * ImageSuggestions
 * InputBox
 * Insider
 * Interwiki
 * InterwikiSorting
 * Josa
 * JsonConfig
 * LabeledSectionTransclusion
 * LandingCheck
 * Linter
 * LiquidThreads
 * Listings
 * LoginNotify
 * MapSources
 * MassMessage
 * Math
 * MobileApp
 * Modern
 * MonoBook
 * MultimediaViewer
 * NearbyPages
 * NewUserMessage
 * Newsletter
 * Nostalgia
 * Nuke
 * ORES
 * OpenStackManager
 * PageAssessments
 * PageImages
 * PageNotice
 * PageViewInfo
 * PagedTiffHandler
 * ParserFunctions
 * PdfHandler
 * Poem
 * PoolCounter
 * ProofreadPage
 * PropertySuggester
 * Quiz
 * RSS
 * RelatedArticles
 * Renameuser
 * RevisionSlider
 * SandboxLink
 * SearchExtraNS
 * SecurePoll
 * SiteMatrix
 * StopForumSpam
 * SubPageList3
 * SubpageSortkey
 * SyntaxHighlight_GeSHi
 * TemplateData
 * TemplateSandbox
 * TemplateWizard
 * TextExtracts
 * Thanks
 * TheWikipediaLibrary
 * TimedMediaHandler
 * Timeless
 * TitleBlacklist
 * TocTree
 * TranslationNotifications
 * TrustedXFF
 * TwoColConflict
 * UniversalLanguageSelector
 * UploadsLink
 * UrlShortener
 * VipsScaler
 * WebAuthn
 * WikiLove
 * WikibaseLexemeCirrusSearch
 * Wikidata.org
 * WikidataPageBanner
 * WikimediaApiPortalOAuth
 * WikimediaBadges
 * WikimediaEditorTasks
 * WikimediaIncubator
 * WikimediaMaintenance
 * Wikisource
 * XAnalytics
 * intersection
 * timeline
 * wikihiero

Total changes
337 Changes in 71 repos by 84 authors