Page MenuHomePhabricator

Repositories integrated into Codehealth Pipeline (Production)
Open, In Progress, LowPublic

Description

The QTE Team is currently responsible for maintaining the Codehealth pipeline, a project of the Code Health Group and Code Health Metrics.

At the moment, it is enabled for a handful of MediaWiki extensions. Our goal is to integrate the Codehealth pipeline in as many repositories as we can.

Here is a list of the repositories that have already been incorporated into the Codehealth pipeline and those that we plan to do soon. The list below focuses solely on production-only repositories.

Documentation: mw:SonarQube Scanner

( Repositories marked with ?? are not in Gerrit hence ignored for now )

Total Integrated Percentage12%
:Base
:Core
repositoryintegrated - 13%
mediawiki/extensions/3D
mediawiki/extensions/AbuseFilter
mediawiki/extensions/ActiveAbstract
mediawiki/extensions/AdvancedSearch
mediawiki/extensions/AntiSpoof
mediawiki/extensions/ApiFeatureUsage
mediawiki/extensions/ArticleCreationWorkflow
mediawiki/extensions/ArticlePlaceholder
mediawiki/extensions/Babel
mediawiki/extensions/BetaFeatures
mediawiki/extensions/BounceHandler
mediawiki/extensions/Calendar
mediawiki/extensions/Campaigns
mediawiki/extensions/CampaignEvents
mediawiki/extensions/Capiunto
mediawiki/extensions/CategoryTree
mediawiki/extensions/CentralAuth
mediawiki/extensions/CentralNotice
mediawiki/extensions/CharInsert
mediawiki/extensions/CheckUser
mediawiki/extensions/ChessBrowser
mediawiki/extensions/CirrusSearch
mediawiki/extensions/Cite
mediawiki/extensions/CiteThisPage
mediawiki/extensions/Citoid
mediawiki/extensions/cldr
mediawiki/extensions/CodeEditor
mediawiki/extensions/CodeMirror
mediawiki/extensions/Cognate
mediawiki/extensions/Collection
mediawiki/extensions/CommonsMetadata
mediawiki/extensions/ConfirmEdit
mediawiki/extensions/ContactPage
mediawiki/extensions/ContentTranslation
mediawiki/extensions/CreditsSource
mediawiki/extensions/Dashiki
mediawiki/extensions/Disambiguator
mediawiki/extensions/DiscussionTools
mediawiki/extensions/DismissableSiteNotice
mediawiki/extensions/DonationInterface
mediawiki/extensions/DoubleWiki
mediawiki/extensions/Echo
mediawiki/extensions/Elastica
mediawiki/extensions/ElectronPdfService
mediawiki/extensions/EntitySchema
mediawiki/extensions/EventBus
mediawiki/extensions/EventLogging
mediawiki/extensions/EventStreamConfig
mediawiki/extensions/ExtensionDistributor
mediawiki/extensions/ExternalGuidance
mediawiki/extensions/FeaturedFeeds
mediawiki/extensions/FileExporter
mediawiki/extensions/FileImporter
mediawiki/extensions/FlaggedRevs
mediawiki/extensions/Flow
mediawiki/extensions/FundraiserLandingPage
mediawiki/extensions/FundraisingTranslateWorkflow
mediawiki/extensions/Gadgets
mediawiki/extensions/GeoCrumbs
mediawiki/extensions/GeoData
mediawiki/extensions/GlobalBlocking
mediawiki/extensions/GlobalCssJs
mediawiki/extensions/GlobalPreferences
mediawiki/extensions/GlobalUsage
mediawiki/extensions/GlobalUserPage
mediawiki/extensions/GlobalWatchlist
mediawiki/extensions/GoogleNewsSitemap
mediawiki/extensions/Graph
mediawiki/extensions/GrowthExperiments
mediawiki/extensions/GuidedTour
mediawiki/extensions/GWToolset
mediawiki/extensions/ImageMap
mediawiki/extensions/ImageSuggestions
mediawiki/extensions/InputBox
mediawiki/extensions/Insider
mediawiki/extensions/intersection
mediawiki/extensions/Interwiki
mediawiki/extensions/InterwikiSorting
mediawiki/extensions/IPInfo
mediawiki/extensions/Josa
mediawiki/extensions/JsonConfig
mediawiki/extensions/Kartographer
mediawiki/extensions/LabeledSectionTransclusion
mediawiki/extensions/LandingCheck
mediawiki/extensions/LdapAuthentication
mediawiki/extensions/Linter
mediawiki/extensions/LiquidThreads
mediawiki/extensions/Listings
mediawiki/extensions/LoginNotify
mediawiki/extensions/MachineVision
mediawiki/extensions/MapSources
mediawiki/extensions/MassMessage
mediawiki/extensions/Math
mediawiki/extensions/MediaModeration
mediawiki/extensions/MediaSearch
mediawiki/extensions/MobileApp
mediawiki/extensions/MobileFrontend
mediawiki/extensions/MultimediaViewer
mediawiki/extensions/NavigationTiming
mediawiki/extensions/NearbyPages
mediawiki/extensions/Newsletter
mediawiki/extensions/NewUserMessage
mediawiki/extensions/Nuke
mediawiki/extensions/OATHAuth
mediawiki/extensions/OAuth
mediawiki/extensions/OAuthRateLimiter
mediawiki/extensions/OpenStackManager
mediawiki/extensions/ORES
mediawiki/extensions/PageAssessments
mediawiki/extensions/PagedTiffHandler
mediawiki/extensions/PageImages
mediawiki/extensions/PageNotice
mediawiki/extensions/PageTriage
mediawiki/extensions/PageViewInfo
mediawiki/extensions/ParserFunctions
mediawiki/extensions/PdfHandler
mediawiki/extensions/Phonos
mediawiki/extensions/Poem
mediawiki/extensions/PoolCounter
mediawiki/extensions/Popups
mediawiki/extensions/ProofreadPage
mediawiki/extensions/PropertySuggester
mediawiki/extensions/QuickSurveys
mediawiki/extensions/Quiz
mediawiki/extensions/ReadingLists
mediawiki/extensions/RelatedArticles
mediawiki/extensions/Renameuser
mediawiki/extensions/RevisionSlider
mediawiki/extensions/RSS
mediawiki/extensions/SandboxLink
mediawiki/extensions/Score
mediawiki/extensions/Scribunto
mediawiki/extensions/SearchExtraNS
mediawiki/extensions/SearchVue
mediawiki/extensions/SecureLinkFixer
mediawiki/extensions/SecurePoll
mediawiki/extensions/ShortUrl
mediawiki/extensions/SimilarEditors
mediawiki/extensions/SiteMatrix
mediawiki/extensions/SpamBlacklist
mediawiki/extensions/StopForumSpam
mediawiki/extensions/SubPageList3
mediawiki/extensions/SubpageSortkey
mediawiki/extensions/SyntaxHighlight_GeSHi
mediawiki/extensions/TemplateData
mediawiki/extensions/TemplateSandbox
mediawiki/extensions/TemplateStyles
mediawiki/extensions/TemplateWizard
mediawiki/extensions/TextExtracts
mediawiki/extensions/Thanks
mediawiki/extensions/TheWikipediaLibrary
mediawiki/extensions/TimedMediaHandler
mediawiki/extensions/timeline
mediawiki/extensions/TitleBlacklist
mediawiki/extensions/TocTree
mediawiki/extensions/TorBlock
mediawiki/extensions/Translate
mediawiki/extensions/TranslationNotifications
mediawiki/extensions/TrustedXFF
mediawiki/extensions/TwoColConflict
mediawiki/extensions/UniversalLanguageSelector
mediawiki/extensions/UploadsLink
mediawiki/extensions/UploadWizard
mediawiki/extensions/UrlShortener
mediawiki/extensions/VipsScaler
mediawiki/extensions/VisualEditor
mediawiki/extensions/WebAuthn
mediawiki/extensions/Wikibase
mediawiki/extensions/WikibaseCirrusSearch
mediawiki/extensions/WikibaseLexeme
mediawiki/extensions/WikibaseLexemeCirrusSearch
mediawiki/extensions/WikibaseManifest
mediawiki/extensions/WikibaseMediaInfo
mediawiki/extensions/WikibaseQualityConstraints
mediawiki/extensions/Wikidata.org
mediawiki/extensions/WikidataPageBanner
mediawiki/extensions/WikiEditor
mediawiki/extensions/wikihiero
mediawiki/extensions/WikiLambda
mediawiki/extensions/WikiLove
mediawiki/extensions/WikimediaApiPortalOAuth
mediawiki/extensions/WikimediaBadges
mediawiki/extensions/WikimediaEditorTasks
mediawiki/extensions/WikimediaEvents
mediawiki/extensions/WikimediaIncubator
mediawiki/extensions/WikimediaMaintenance
mediawiki/extensions/WikimediaMessages
mediawiki/extensions/Wikisource
mediawiki/extensions/Wikispeech
mediawiki/extensions/WikispeechSpeechDataCollector
mediawiki/extensions/Wikistories
mediawiki/extensions/XAnalytics
mediawiki/skins/CologneBlue
mediawiki/skins/MinervaNeue
mediawiki/skins/Modern
mediawiki/skins/MonoBook
mediawiki/skins/Nostalgia
mediawiki/skins/Timeless
mediawiki/skins/Vector
mediawiki/skins/WikimediaApiPortal
mediawiki/vendor
VisualEditor/VisualEditor
:Services

Event Timeline

pwangai changed the task status from Open to In Progress.Oct 27 2022, 6:35 PM
pwangai updated the task description. (Show Details)
pwangai removed a subscriber: Aklapper.
pwangai triaged this task as Medium priority.Oct 27 2022, 6:40 PM
pwangai updated the task description. (Show Details)
pwangai lowered the priority of this task from Medium to Low.Dec 14 2022, 12:06 PM

Change 880503 had a related patch set uploaded (by Pwangai; author: Pwangai):

[integration/config@master] Zuul: [mediawiki/services/parsoid] Add service to codehealth pipeline

https://gerrit.wikimedia.org/r/880503

If I remember properly we first need a manual run to create the project and or branch on sonarcloud.io else the scanner will constantly fail on patches. But maybe I misremember.

Change 880503 merged by jenkins-bot:

[integration/config@master] Zuul: [mediawiki/services/parsoid] Add service to codehealth pipeline

https://gerrit.wikimedia.org/r/880503

You are correct. I already created the project manually on sonarcloud.io

Change 880885 had a related patch set uploaded (by Hashar; author: Hashar):

[integration/config@master] Add support for Parsoid service to codehealth jobs

https://gerrit.wikimedia.org/r/880885

Change 880892 had a related patch set uploaded (by Hashar; author: Hashar):

[integration/config@master] dockerfiles: sonar-scanner support Parsoid service and skins

https://gerrit.wikimedia.org/r/880892

Change 880893 had a related patch set uploaded (by Hashar; author: Hashar):

[integration/config@master] jjb: update jobs for sonar-scanner

https://gerrit.wikimedia.org/r/880893

Change 880892 merged by jenkins-bot:

[integration/config@master] dockerfiles: sonar-scanner support Parsoid service and skins

https://gerrit.wikimedia.org/r/880892

Change 880893 merged by jenkins-bot:

[integration/config@master] jjb: update jobs for sonar-scanner

https://gerrit.wikimedia.org/r/880893

Change 880885 merged by jenkins-bot:

[integration/config@master] Add support for Parsoid service to codehealth jobs

https://gerrit.wikimedia.org/r/880885

@pwangai I have made some adjustments to the Docker image and the jobs in order to support mediawiki/services/parsoid. Scripts were assuming to run against an extension (mediawiki/extensions/Foobar and environment variable EXT_NAME=Foobar), I have made adjustments so they can be run against mediawiki/services/parsoid and theoretically against MediaWiki skins as well.

I have tested on a dummy Gerrit change https://gerrit.wikimedia.org/r/c/mediawiki/services/parsoid/+/444173 , the job reported Quality gate passed and published a report at https://sonarcloud.io/dashboard?id=mediawiki-services-parsoid&branch=444173-2 . It looks rather empty, so I am not sure whether the analysis ran properly.

@hashar It is empty since there are no metrics to compare to. As I understand, once the master branch is scanned in the next commit the metrics should be available because there will be a comparison between the two branches. I will be observing on the next patch. Thank you on the adjustments you did.

I went to manually add the latest merged change to the CI postmerge using:

ssh contint2001.wikimedia.org \
  zuul enqueue --trigger gerrit --pipeline postmerge --project mediawiki/services/parsoid --change 879921,1

It created the base report which now shows up at https://sonarcloud.io/project/overview?id=mediawiki-services-parsoid

Previously that page gave: "master" branch has not been analyzed yet.

;)

Perfect! I have seen it is okay now. Adding the rest of the repos into the pipeline should be easier now :)

Change 882585 had a related patch set uploaded (by Pwangai; author: Pwangai):

[integration/config@master] Zuul: [mediawiki/services/parsoid] Enable code coverage

https://gerrit.wikimedia.org/r/882585

Change 884835 had a related patch set uploaded (by Hashar; author: Hashar):

[integration/config@master] dockerfiles: add services to Quibble coverage

https://gerrit.wikimedia.org/r/884835

Change 884843 had a related patch set uploaded (by Hashar; author: Hashar):

[integration/config@master] jjb: add coverage jobs for MediaWiki services

https://gerrit.wikimedia.org/r/884843

Change 884835 merged by jenkins-bot:

[integration/config@master] dockerfiles: add services to Quibble coverage

https://gerrit.wikimedia.org/r/884835

Change 884904 had a related patch set uploaded (by Hashar; author: Hashar):

[integration/config@master] dockerfiles: fix coverage path for MediaWiki services

https://gerrit.wikimedia.org/r/884904

Change 884904 merged by jenkins-bot:

[integration/config@master] dockerfiles: fix coverage path for MediaWiki services

https://gerrit.wikimedia.org/r/884904

Change 885037 had a related patch set uploaded (by Hashar; author: Hashar):

[integration/config@master] dockerfiles: use service phpunit rather than phpunit.php

https://gerrit.wikimedia.org/r/885037

Change 885037 merged by jenkins-bot:

[integration/config@master] dockerfiles: use service phpunit rather than phpunit.php

https://gerrit.wikimedia.org/r/885037