Software Quality: Difference between revisions

add sonarqube info
m Text replacement - "Category:QA" to "Category:QA"
 
(6 intermediate revisions by 2 users not shown)
Line 5: Line 5:
<br />
<br />


== Cliff notes for process at WMF ==
==Cliff notes for process and tools at WMF==


* [[mediawikiwiki:Development_guidelines|Development_guidelines]] provides the big picture of policies (MUST) and guidelines (SHOULD).
*[[mediawikiwiki:Development_guidelines|Development guidelines]] provides the big picture of policies (MUST) and guidelines (SHOULD).
* [[mediawikiwiki:Manual:Coding_conventions/PHP|Manual:Coding_conventions/PHP]] covers aspects of how PHP for MediaWiki is coded.
*[[mediawikiwiki:Manual:Coding_conventions/PHP|Manual:Coding_conventions/PHP]] covers aspects of how PHP for MediaWiki is coded.
* [[mediawikiwiki:Code_Stewardship|Code Stewardship]] is a model adopted in 2018 by WMF as a layer on top of  [[mediawikiwiki:Developers/Maintainers|Developers/Maintainers]]
*[[mediawikiwiki:Code_Stewardship|Code Stewardship]] is a model adopted in 2018 by WMF as a layer on top of  [[mediawikiwiki:Developers/Maintainers|Developers/Maintainers]]
* [[mediawikiwiki:Manual:Mwdocgen.php|Manual:Mwdocgen.php]] generates the Doxygen output, but the [[mediawikiwiki:Manual:Coding_conventions/PHP#Comments_and_documentation|Manual:Coding_conventions/PHP#Comments_and_documentation]] doesn't mention anything about comments for [[static analysis]]  
*[[mediawikiwiki:Manual:Mwdocgen.php|Manual:Mwdocgen.php]] generates the Doxygen output, but the [[mediawikiwiki:Manual:Coding_conventions/PHP#Comments_and_documentation|Manual:Coding_conventions/PHP#Comments_and_documentation]] doesn't mention anything about comments for [[static analysis]]
* '''[[phab:T240307|Hook container with strong types and DI]]''' (solved) is part of a series of architecture shifts, and is an example of diving into the details of the codebase.
*The [https://doc.wikimedia.org/cover/mediawiki-core/includes/index.html '''Coverage Dashboard for MediaWiki Core'''] can be found at [https://doc.wikimedia.org doc.wikimedia.org] This is generated by Sebastian Bergmann's [https://github.com/sebastianbergmann/php-code-coverage PHP Code Coverage]
* [[mediawikiwiki:API:Client_code/Gold_standard|API:Client_code/Gold_standard]] is somewhat interesting - a series of metrics and principles applied to the API Clients listed at [[mediawikiwiki:API:Client_code|API:Client_code]]
*'''doc.wikimedia.org''' is home to most other generated docs and analysis like '''Doxygen output''' and [https://doc.wikimedia.org/mediawiki-core/master/phpmetrics/ Static Analysis reports by PhpMetrics]
*'''[[phab:T240307|Hook container with strong types and DI]]''' (solved) is part of a series of architecture shifts, and is an example of diving into the details of the codebase.
*[[mediawikiwiki:API:Client_code/Gold_standard|API:Client_code/Gold_standard]] is somewhat interesting - a series of metrics and principles applied to the API Clients listed at [[mediawikiwiki:API:Client_code|API:Client_code]]


== 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 [[wp:Continuous integration/Codehealth Pipeline|Codehealth Pipeline]] is part of the [[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]).  
 
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 [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]]
<br />
<br />
<references />
[[Category:QA]]
[[Category:Testing]]
[[Category:QA]]
[[Category:Development]]
[[Category:Programming]]
[[Category:MediaWiki]]