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| | *[[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| | 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 [[ | 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 | ||
[[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]] | |||