Software Quality: Difference between revisions

Code Health - project: dig in and figure it out + add commentary
m Text replacement - "Category:QA" to "Category:QA"
 
(2 intermediate revisions by one other user 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]]
*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]
*'''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.
*'''[[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]]
*[[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]]
Line 21: Line 23:
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  
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.
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]
A list of the extensions / repos that are currently scanned: [https://phabricator.wikimedia.org/T321837 T321837]
Line 33: Line 37:
<br />
<br />
<references />
<references />
[[Category:Quality Assurance]]
[[Category:QA]]
[[Category:Testing]]
[[Category:Testing]]
[[Category:QA]]
[[Category:QA]]