Software Quality: Difference between revisions

From Freephile Wiki
Add categories
Code Health - project: dig in and figure it out + add commentary
Line 15: Line 15:


==Code Health - project==
==Code Health - project==
MediaWiki [[mediawikiwiki:Code_Health|Code_Health]]
MediaWiki [[mediawikiwiki:Code_Health|Code Health]] ('''inactive''' as of 2024 - was active from 2017-2019 and is still part of the CI process and tools.)


The [[mw:Continuous integration/Codehealth Pipeline|Codehealth Pipeline]] is part of the [[Continuous Integration|continuous integration]] process, and invokes SonarScanner which send results to '''SonarCloud''' (by [https://www.sonarsource.com/products/sonarqube/ "SonarQube" a product of SonarSource] [https://github.com/SonarSource/sonarqube github]).  
The [[mw:Continuous integration/Codehealth Pipeline|Codehealth Pipeline]] is part of the [[Continuous Integration|continuous integration]] process, and invokes SonarScanner which send results to '''SonarCloud''' (by [https://www.sonarsource.com/products/sonarqube/ "SonarQube" a product of SonarSource] [https://github.com/SonarSource/sonarqube github]).  


A list of the extensions / repos that are currently scanned: https://phabricator.wikimedia.org/T321837
SonarCloud is pretty cool because it gives a browseable UI to [[Static analysis]] (so code coverage and more). You can browse / search for Gerrit-hosted extensions at https://sonarcloud.io/organizations/wmftest/projects


===Dashboards===
Although useful, it is unclear to the outside observer how much the tool is actively configured to align with best practices or matches up with the other internal / free software tools utilized by WMF (e.g. https://doc.wikimedia.org/#testing). Some background info is at [[mw:Continuous integration/SonarQube Scanner]]. According to [https://phabricator.wikimedia.org/T379181 T379181] there is ongoing work to update WMF repos to use the tool, and also to configure the tool to generate the warnings or gating criteria during [[Continuous Integration]] According to [https://phabricator.wikimedia.org/T373098 T373098], as of late 2024 SonarQube only analyzes Unit Tests, while '''https://doc.wikimedia.org/cover-extensions/''' is used to report on both Unit Tests '''and''' Integration Tests.
 
A list of the extensions / repos that are currently scanned: [https://phabricator.wikimedia.org/T321837 T321837]
 
===SonarCloud Dashboards===
The WMF organization account on SonarCloud is at https://sonarcloud.io/organizations/wmftest/projects
The WMF organization account on SonarCloud is at https://sonarcloud.io/organizations/wmftest/projects
Individual repos are like https://sonarcloud.io/project/overview?id=mediawiki-extensions-DiscussionTools
Individual repos are like https://sonarcloud.io/project/overview?id=mediawiki-extensions-DiscussionTools


[[mediawikiwiki:Code_Health_Group|Code Health Group]] - paused, planned to restart in 2024
[[mediawikiwiki:Code_Health_Group/Quality_Big_Picture|Code_Health_Group/Quality_Big_Picture]]


[[phab:project/view/3621/|Workboard in Phabricator]]
[[phab:project/view/3621/|Workboard in Phabricator]]

Revision as of 09:51, 7 January 2025

Charles Fishman wrote a terrific article They write the right stuff. [1] for Fast Company magazine in 1996 about the "on-board shuttle group" that works at the Johnson Space Center in Houston, TX producing some of the most sophisticated and error-free software in the world.

We'll try to focus on some best practices and quality metrics - especially as it relates to MediaWiki.


Cliff notes for process at WMF edit

Code Health - project edit

MediaWiki Code Health (inactive as of 2024 - was active from 2017-2019 and is still part of the CI process and tools.)

The Codehealth Pipeline is part of the continuous integration process, and invokes SonarScanner which send results to SonarCloud (by "SonarQube" a product of SonarSource github).

SonarCloud is pretty cool because it gives a browseable UI to Static analysis (so code coverage and more). You can browse / search for Gerrit-hosted extensions at https://sonarcloud.io/organizations/wmftest/projects

Although useful, it is unclear to the outside observer how much the tool is actively configured to align with best practices or matches up with the other internal / free software tools utilized by WMF (e.g. https://doc.wikimedia.org/#testing). Some background info is at mw:Continuous integration/SonarQube Scanner. According to T379181 there is ongoing work to update WMF repos to use the tool, and also to configure the tool to generate the warnings or gating criteria during Continuous Integration According to T373098, as of late 2024 SonarQube only analyzes Unit Tests, while https://doc.wikimedia.org/cover-extensions/ is used to report on both Unit Tests and Integration Tests.

A list of the extensions / repos that are currently scanned: T321837

SonarCloud Dashboards edit

The WMF organization account on SonarCloud is at https://sonarcloud.io/organizations/wmftest/projects Individual repos are like https://sonarcloud.io/project/overview?id=mediawiki-extensions-DiscussionTools


Workboard in Phabricator

  1. Fishman, C. (2017, September 8). They write the right stuff. Fast Company. https://www.fastcompany.com/28121/they-write-right-stuff