mirror of
				https://github.com/firefly-iii/firefly-iii.git
				synced 2025-10-31 02:36:28 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			95 lines
		
	
	
		
			3.9 KiB
		
	
	
	
		
			XML
		
	
	
	
	
	
			
		
		
	
	
			95 lines
		
	
	
		
			3.9 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 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 | |
|          name="pcsg-generated-ruleset"
 | |
|          xmlns="http://pmd.sf.net/ruleset/1.0.0"
 | |
|          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>
 | |
|             <!-- This is now at 32, which excludes the controllers but should prevent more monoliths. -->
 | |
|             <property name="minimum" value="32"/>
 | |
|         </properties>
 | |
|     </rule>
 | |
|     <rule ref="rulesets/design.xml/CouplingBetweenObjects">
 | |
|         <properties>
 | |
|             <!-- Leaving this at 28 excuses most current code but it can't get worse than that. -->
 | |
|             <property name="maximum" value="28"/>
 | |
|         </properties>
 | |
|     </rule>
 | |
| 
 | |
| 
 | |
|     <rule ref="rulesets/naming.xml/ShortMethodName">
 | |
|         <properties>
 | |
|             <property name="minimum" value="3"/>
 | |
|         </properties>
 | |
|     </rule>
 | |
| 
 | |
|     <!-- code size -->
 | |
|     <rule ref="rulesets/codesize.xml/CyclomaticComplexity">
 | |
|         <properties>
 | |
|             <!-- Leave at 20. This means methods will be pretty complex before the system starts complaining. -->
 | |
|             <property name="reportLevel" value="20"/>
 | |
|         </properties>
 | |
|     </rule>
 | |
|     <rule ref="rulesets/codesize.xml/NPathComplexity">
 | |
|         <properties>
 | |
|             <!-- 2000 results in some pretty complex methods, but it's OK. -->
 | |
|             <!-- They should not be much more complex than that though -->
 | |
|             <property name="minimum" value="2000"/>
 | |
|         </properties>
 | |
|     </rule>
 | |
|     <rule ref="rulesets/codesize.xml/ExcessiveMethodLength">
 | |
|         <properties>
 | |
|             <!-- 75 seems like a nice number. Shorter isn't always feasible and there are a few exceptions already -->
 | |
|             <property name="minimum" value="75"/>
 | |
|             <property name="ignore-whitespace" value="true"/>
 | |
|         </properties>
 | |
|     </rule>
 | |
|     <rule ref="rulesets/codesize.xml/ExcessiveParameterList">
 | |
|         <properties>
 | |
|             <!-- 5 is fine. 6 is excessive, but I have just one of those. At the end of the day, I still need all params. -->
 | |
|             <property name="minimum" value="5"/>
 | |
|         </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>
 |