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| | *[[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: | [[Category:QA]] | ||
[[Category:Testing]] | [[Category:Testing]] | ||
[[Category:QA]] | [[Category:QA]] | ||