firefly-iii/.ci/phpmd/phpmd.xml
2023-11-26 16:20:24 +01:00

95 lines
3.8 KiB
XML

<?xml version="1.0" encoding="UTF-8"?>
<!--
~ phpmd.xml
~ Copyright (c) 2023 james@firefly-iii.org
~
~ This file is part of Firefly III (https://github.com/firefly-iii).
~
~ This program is free software: you can redistribute it and/or modify
~ it under the terms of the GNU Affero General Public License as
~ published by the Free Software Foundation, either version 3 of the
~ License, or (at your option) any later version.
~
~ This program is distributed in the hope that it will be useful,
~ but WITHOUT ANY WARRANTY; without even the implied warranty of
~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
~ GNU Affero General Public License for more details.
~
~ You should have received a copy of the GNU Affero General Public License
~ along with this program. If not, see <https://www.gnu.org/licenses/>.
-->
<ruleset name="pcsg-generated-ruleset"
xmlns="http://pmd.sf.net/ruleset/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://pmd.sf.net/ruleset/1.0.0 http://pmd.sf.net/ruleset_xml_schema.xsd"
xsi:noNamespaceSchemaLocation="http://pmd.sf.net/ruleset_xml_schema.xsd">
<description>Firefly III ruleset.</description>
<!-- Import the entire controversial code rule set -->
<rule ref="rulesets/controversial.xml">
<exclude name="CamelCasePropertyName" />
</rule>
<!-- clean code -->
<!-- <rule ref="rulesets/codesize.xml" /> -->
<rule ref="rulesets/unusedcode.xml" />
<rule ref="rulesets/design.xml/NumberOfChildren">
<properties>
<!-- TODO we want to be at minimum 15. But we start high, and drop the bar slowly. -->
<property name="minimum" value="256"/>
</properties>
</rule>
<rule ref="rulesets/design.xml/CouplingBetweenObjects">
<properties>
<!-- TODO we want to be at maximum 13. But we start high, and drop the bar slowly. -->
<property name="maximum" value="256"/>
</properties>
</rule>
<rule ref="rulesets/naming.xml/ShortMethodName">
<properties>
<!-- TODO we want to be at minimum 3. But we start low, and raise the bar slowly. -->
<property name="minimum" value="1"/>
</properties>
</rule>
<!-- code size -->
<rule ref="rulesets/codesize.xml/CyclomaticComplexity">
<properties>
<!-- TODO we want to be at report level 5. But we start high, and drop the bar slowly. -->
<property name="reportLevel" value="500"/>
</properties>
</rule>
<rule ref="rulesets/codesize.xml/NPathComplexity">
<properties>
<!-- TODO we want to be at a value of 128. But we start high, and drop the bar slowly. -->
<property name="minimum" value="24062500"/>
</properties>
</rule>
<rule ref="rulesets/codesize.xml/ExcessiveMethodLength">
<properties>
<!-- TODO we want to be at a value of 40. But we start high, and drop the bar slowly. -->
<property name="minimum" value="2000"/>
</properties>
</rule>
<rule ref="rulesets/codesize.xml/ExcessiveParameterList">
<properties>
<!-- TODO we want to be at a value of 4. But we start high, and drop the bar slowly. -->
<property name="minimum" value="12"/>
</properties>
</rule>
<!-- include clean code manually -->
<rule ref="rulesets/cleancode.xml/BooleanArgumentFlag" />
<rule ref="rulesets/cleancode.xml/ElseExpression" />
<rule ref="rulesets/cleancode.xml/MissingImport" />
<rule ref="rulesets/cleancode.xml/UndefinedVariable" />
<rule ref="rulesets/cleancode.xml/IfStatementAssignment" />
<rule ref="rulesets/cleancode.xml/DuplicatedArrayKey" />
<rule ref="rulesets/cleancode.xml/ErrorControlOperator" />
</ruleset>