aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorMichael Große <mic.grosse@googlemail.com>2020-01-21 22:02:40 +0100
committerMichael Große <mic.grosse@googlemail.com>2020-02-19 10:55:56 +0100
commit36faf6960da95d20701a18669dffb86c9d8fc6b5 (patch)
tree82ab3d1f6ddb89baba84829396a8cb5781709c4d
parentb5f2c105ff6ecada10545075c7cdf998194639fa (diff)
downloaddokuwiki-36faf6960da95d20701a18669dffb86c9d8fc6b5.tar.gz
dokuwiki-36faf6960da95d20701a18669dffb86c9d8fc6b5.zip
Split out temporary code style excludes
Splitting them out allows for plugins to use _test/phpcs.xml as the basis for their own linting without having an overly permissive coding standard. Also, this makes it more obvious and painful that these are just intended as temporary exceptions and should be actually fixed. The rule `Generic.ControlStructures.InlineControlStructure.NotAllowed` has its comment adjust to make it clear that this is an intended deviation from the PSR-2/PSR-12 coding standard. The rule `PSR1.Classes.ClassDeclaration.MissingNamespace` has to remain in the DokuWiki coding standard as the plugin base classes can currently not reasonably be in namespaces.
-rw-r--r--.github/workflows/phpCS.yml2
-rw-r--r--_test/phpcs.xml100
-rw-r--r--_test/phpcs_MigrationAdjustments.xml103
3 files changed, 106 insertions, 99 deletions
diff --git a/.github/workflows/phpCS.yml b/.github/workflows/phpCS.yml
index bf1d6b259..fd46c4682 100644
--- a/.github/workflows/phpCS.yml
+++ b/.github/workflows/phpCS.yml
@@ -19,4 +19,4 @@ jobs:
run: wget https://squizlabs.github.io/PHP_CodeSniffer/phpcs.phar
- name: run PHP codesniffer
- run: php phpcs.phar -v --standard=_test/phpcs.xml
+ run: php phpcs.phar -v --standard=_test/phpcs_MigrationAdjustments.xml
diff --git a/_test/phpcs.xml b/_test/phpcs.xml
index 6e78784c8..8f0d4dd24 100644
--- a/_test/phpcs.xml
+++ b/_test/phpcs.xml
@@ -34,88 +34,13 @@
<exclude-pattern>*/inc/cli.php</exclude-pattern>
<exclude-pattern>*/inc/parser/*</exclude-pattern>
- <!-- rules on top of PSR-2 -->
+ <!-- rules on top of PSR-12 -->
<rule ref="PSR12">
- <!-- the following rule is not in PSR-2 and breaks the guardian pattern -->
+ <!-- This rule breaks the single line guard pattern that we prefer to keep using -->
<exclude name="Generic.ControlStructures.InlineControlStructure.NotAllowed"/>
<!-- we have lots of legacy classes without name spaces -->
<exclude name="PSR1.Classes.ClassDeclaration.MissingNamespace"/>
-
- <!-- Rules with automatic fixes that we want to adhere to, but currently don't -->
- <exclude name="Generic.Formatting.DisallowMultipleStatements.SameLine"/>
- <exclude name="Generic.Functions.FunctionCallArgumentSpacing.NoSpaceAfterComma"/>
- <exclude name="Generic.Functions.FunctionCallArgumentSpacing.SpaceBeforeComma"/>
- <exclude name="Generic.Functions.FunctionCallArgumentSpacing.TooMuchSpaceAfterComma"/>
- <exclude name="Generic.PHP.LowerCaseKeyword.Found"/>
- <exclude name="Generic.PHP.LowerCaseConstant.Found"/>
- <exclude name="Generic.WhiteSpace.ScopeIndent.IncorrectExact"/>
- <exclude name="Generic.WhiteSpace.ScopeIndent.Incorrect"/>
- <exclude name="Generic.WhiteSpace.IncrementDecrementSpacing.SpaceAfterDecrement"/>
- <exclude name="Generic.WhiteSpace.IncrementDecrementSpacing.SpaceAfterIncrement"/>
-
- <exclude name="Squiz.ControlStructures.ControlSignature.SpaceAfterCloseParenthesis"/>
- <exclude name="Squiz.ControlStructures.ControlSignature.SpaceAfterKeyword"/>
- <exclude name="Squiz.ControlStructures.ControlSignature.SpaceAfterCloseBrace"/>
- <exclude name="Squiz.ControlStructures.ControlSignature.NewlineAfterOpenBrace"/>
- <exclude name="Squiz.ControlStructures.ForEachLoopDeclaration.NoSpaceBeforeArrow"/>
- <exclude name="Squiz.ControlStructures.ForEachLoopDeclaration.NoSpaceAfterArrow"/>
- <exclude name="Squiz.ControlStructures.ForEachLoopDeclaration.SpacingBeforeAs"/>
- <exclude name="Squiz.ControlStructures.ForLoopDeclaration.SpacingAfterSecond"/>
- <exclude name="Squiz.ControlStructures.ForLoopDeclaration.NoSpaceAfterSecond"/>
- <exclude name="Squiz.ControlStructures.ForLoopDeclaration.NoSpaceAfterFirst"/>
- <exclude name="Squiz.Functions.FunctionDeclarationArgumentSpacing.NoSpaceBeforeArg"/>
- <exclude name="Squiz.Functions.FunctionDeclarationArgumentSpacing.SpaceAfterEquals"/>
- <exclude name="Squiz.Functions.FunctionDeclarationArgumentSpacing.SpacingAfterReference"/>
- <exclude name="Squiz.Functions.FunctionDeclarationArgumentSpacing.SpacingBeforeClose"/>
- <exclude name="Squiz.Functions.FunctionDeclarationArgumentSpacing.SpaceBeforeEquals"/>
- <exclude name="Squiz.Functions.MultiLineFunctionDeclaration.BraceOnSameLine"/>
- <exclude name="Squiz.Functions.MultiLineFunctionDeclaration.NewlineBeforeOpenBrace"/>
- <exclude name="Squiz.Functions.MultiLineFunctionDeclaration.CloseBracketLine"/>
- <exclude name="Squiz.WhiteSpace.ControlStructureSpacing.SpacingAfterOpen"/>
- <exclude name="Squiz.WhiteSpace.ControlStructureSpacing.SpacingBeforeClose"/>
- <exclude name="Squiz.WhiteSpace.ScopeClosingBrace.ContentBefore"/>
- <exclude name="Squiz.WhiteSpace.ScopeClosingBrace.Indent"/>
- <exclude name="Squiz.WhiteSpace.SuperfluousWhitespace.EndLine"/>
-
- <exclude name="PSR2.Classes.ClassDeclaration.CloseBraceAfterBody"/>
- <exclude name="PSR2.Classes.ClassDeclaration.OpenBraceNewLine"/>
- <exclude name="PSR2.Classes.PropertyDeclaration.StaticBeforeVisibility"/>
- <exclude name="PSR2.ControlStructures.ControlStructureSpacing.SpacingAfterOpenBrace"/>
- <exclude name="PSR2.ControlStructures.ControlStructureSpacing.SpaceBeforeCloseBrace"/>
- <exclude name="PSR2.ControlStructures.ElseIfDeclaration.NotAllowed"/>
- <exclude name="PSR2.ControlStructures.SwitchDeclaration.BreakIndent"/>
- <exclude name="PSR2.ControlStructures.SwitchDeclaration.BreakNotNewLine"/>
- <exclude name="PSR2.ControlStructures.SwitchDeclaration.BodyOnNextLineCASE"/>
- <exclude name="PSR2.ControlStructures.SwitchDeclaration.SpaceBeforeColonDEFAULT"/>
- <exclude name="PSR2.ControlStructures.SwitchDeclaration.SpaceBeforeColonCASE"/>
- <exclude name="PSR2.Files.EndFileNewline.TooMany"/>
- <exclude name="PSR2.Files.EndFileNewline.NoneFound"/>
- <exclude name="PSR2.Methods.FunctionCallSignature.Indent"/>
- <exclude name="PSR2.Methods.FunctionCallSignature.EmptyLine"/>
- <exclude name="PSR2.Methods.FunctionCallSignature.ContentAfterOpenBracket"/>
- <exclude name="PSR2.Methods.FunctionCallSignature.SpaceBeforeOpenBracket"/>
- <exclude name="PSR2.Methods.FunctionCallSignature.CloseBracketLine"/>
- <exclude name="PSR2.Methods.FunctionCallSignature.SpaceBeforeCloseBracket"/>
- <exclude name="PSR2.Methods.FunctionCallSignature.SpaceAfterOpenBracket"/>
- <exclude name="PSR2.Methods.FunctionCallSignature.MultipleArguments"/>
- <exclude name="PSR2.Methods.FunctionClosingBrace.SpacingBeforeClose"/>
- <exclude name="PSR2.Methods.MethodDeclaration.StaticBeforeVisibility"/>
- <exclude name="PSR2.Namespaces.NamespaceDeclaration.BlankLineAfter"/>
- <exclude name="PSR2.Namespaces.UseDeclaration.SpaceAfterLastUse"/>
-
- <exclude name="PSR12.Classes.ClassInstantiation.MissingParentheses"/>
- <exclude name="PSR12.ControlStructures.BooleanOperatorPlacement.FoundMixed"/>
- <exclude name="PSR12.ControlStructures.ControlStructureSpacing.FirstExpressionLine"/>
- <exclude name="PSR12.ControlStructures.ControlStructureSpacing.CloseParenthesisLine"/>
- <exclude name="PSR12.ControlStructures.ControlStructureSpacing.LineIndent"/>
- <exclude name="PSR12.ControlStructures.ControlStructureSpacing.SpacingAfterOpenBrace"/>
- <exclude name="PSR12.ControlStructures.ControlStructureSpacing.SpaceBeforeCloseBrace"/>
- <exclude name="PSR12.Files.FileHeader.SpacingAfterBlock"/>
- <exclude name="PSR12.Operators.OperatorSpacing.NoSpaceBefore"/>
- <exclude name="PSR12.Operators.OperatorSpacing.NoSpaceAfter"/>
-
- <exclude name="PSR12.Properties.ConstantVisibility.NotFound"/>
</rule>
<!-- disable some rules for certain paths, for legacy support -->
@@ -152,25 +77,4 @@
<exclude-pattern>*/inc/Extension/PluginInterface.php</exclude-pattern>
<exclude-pattern>*/inc/Extension/PluginTrait.php</exclude-pattern>
</rule>
-
- <!-- for now we mix declarations and execution here (mostly for defines) -->
- <rule ref="PSR1.Files.SideEffects">
- <exclude-pattern>*/index.php</exclude-pattern>
- <exclude-pattern>*/inc/parserutils.php</exclude-pattern>
- <exclude-pattern>*/inc/mail.php</exclude-pattern>
- <exclude-pattern>*/inc/init.php</exclude-pattern>
- <exclude-pattern>*/inc/farm.php</exclude-pattern>
- <exclude-pattern>*/inc/fulltext.php</exclude-pattern>
- <exclude-pattern>*/inc/pluginutils.php</exclude-pattern>
- <exclude-pattern>*/inc/indexer.php</exclude-pattern>
- <exclude-pattern>*/inc/Mailer.class.php</exclude-pattern>
- <exclude-pattern>*/doku.php</exclude-pattern>
- <exclude-pattern>*/install.php</exclude-pattern>
- <exclude-pattern>*/inc/utf8.php</exclude-pattern>
- <exclude-pattern>*/feed.php</exclude-pattern>
- <exclude-pattern>*/inc/load.php</exclude-pattern>
- <exclude-pattern>*/bin/*.php</exclude-pattern>
- <exclude-pattern>*/lib/exe/*.php</exclude-pattern>
- </rule>
-
</ruleset>
diff --git a/_test/phpcs_MigrationAdjustments.xml b/_test/phpcs_MigrationAdjustments.xml
new file mode 100644
index 000000000..d9d11832b
--- /dev/null
+++ b/_test/phpcs_MigrationAdjustments.xml
@@ -0,0 +1,103 @@
+<?xml version="1.0"?>
+<ruleset name="Migration Adjustments for the DokuWiki Coding Standard Standard" namespace="DokuWiki\CS\Standard">
+ <description>These are exceptions to the Coding Standard used for DokuWiki that are intended to be removed over time.</description>
+
+ <!-- rules on top of PSR-12 -->
+ <rule ref="./phpcs.xml">
+ <!-- Rules with automatic fixes that we want to adhere to, but currently don't -->
+ <exclude name="Generic.Formatting.DisallowMultipleStatements.SameLine"/>
+ <exclude name="Generic.Functions.FunctionCallArgumentSpacing.NoSpaceAfterComma"/>
+ <exclude name="Generic.Functions.FunctionCallArgumentSpacing.SpaceBeforeComma"/>
+ <exclude name="Generic.Functions.FunctionCallArgumentSpacing.TooMuchSpaceAfterComma"/>
+ <exclude name="Generic.PHP.LowerCaseKeyword.Found"/>
+ <exclude name="Generic.PHP.LowerCaseConstant.Found"/>
+ <exclude name="Generic.WhiteSpace.ScopeIndent.IncorrectExact"/>
+ <exclude name="Generic.WhiteSpace.ScopeIndent.Incorrect"/>
+ <exclude name="Generic.WhiteSpace.IncrementDecrementSpacing.SpaceAfterDecrement"/>
+ <exclude name="Generic.WhiteSpace.IncrementDecrementSpacing.SpaceAfterIncrement"/>
+
+ <exclude name="Squiz.ControlStructures.ControlSignature.SpaceAfterCloseParenthesis"/>
+ <exclude name="Squiz.ControlStructures.ControlSignature.SpaceAfterKeyword"/>
+ <exclude name="Squiz.ControlStructures.ControlSignature.SpaceAfterCloseBrace"/>
+ <exclude name="Squiz.ControlStructures.ControlSignature.NewlineAfterOpenBrace"/>
+ <exclude name="Squiz.ControlStructures.ForEachLoopDeclaration.NoSpaceBeforeArrow"/>
+ <exclude name="Squiz.ControlStructures.ForEachLoopDeclaration.NoSpaceAfterArrow"/>
+ <exclude name="Squiz.ControlStructures.ForEachLoopDeclaration.SpacingBeforeAs"/>
+ <exclude name="Squiz.ControlStructures.ForLoopDeclaration.SpacingAfterSecond"/>
+ <exclude name="Squiz.ControlStructures.ForLoopDeclaration.NoSpaceAfterSecond"/>
+ <exclude name="Squiz.ControlStructures.ForLoopDeclaration.NoSpaceAfterFirst"/>
+ <exclude name="Squiz.Functions.FunctionDeclarationArgumentSpacing.NoSpaceBeforeArg"/>
+ <exclude name="Squiz.Functions.FunctionDeclarationArgumentSpacing.SpaceAfterEquals"/>
+ <exclude name="Squiz.Functions.FunctionDeclarationArgumentSpacing.SpacingAfterReference"/>
+ <exclude name="Squiz.Functions.FunctionDeclarationArgumentSpacing.SpacingBeforeClose"/>
+ <exclude name="Squiz.Functions.FunctionDeclarationArgumentSpacing.SpaceBeforeEquals"/>
+ <exclude name="Squiz.Functions.MultiLineFunctionDeclaration.BraceOnSameLine"/>
+ <exclude name="Squiz.Functions.MultiLineFunctionDeclaration.NewlineBeforeOpenBrace"/>
+ <exclude name="Squiz.Functions.MultiLineFunctionDeclaration.CloseBracketLine"/>
+ <exclude name="Squiz.WhiteSpace.ControlStructureSpacing.SpacingAfterOpen"/>
+ <exclude name="Squiz.WhiteSpace.ControlStructureSpacing.SpacingBeforeClose"/>
+ <exclude name="Squiz.WhiteSpace.ScopeClosingBrace.ContentBefore"/>
+ <exclude name="Squiz.WhiteSpace.ScopeClosingBrace.Indent"/>
+ <exclude name="Squiz.WhiteSpace.SuperfluousWhitespace.EndLine"/>
+
+ <exclude name="PSR2.Classes.ClassDeclaration.CloseBraceAfterBody"/>
+ <exclude name="PSR2.Classes.ClassDeclaration.OpenBraceNewLine"/>
+ <exclude name="PSR2.Classes.PropertyDeclaration.StaticBeforeVisibility"/>
+ <exclude name="PSR2.ControlStructures.ControlStructureSpacing.SpacingAfterOpenBrace"/>
+ <exclude name="PSR2.ControlStructures.ControlStructureSpacing.SpaceBeforeCloseBrace"/>
+ <exclude name="PSR2.ControlStructures.ElseIfDeclaration.NotAllowed"/>
+ <exclude name="PSR2.ControlStructures.SwitchDeclaration.BreakIndent"/>
+ <exclude name="PSR2.ControlStructures.SwitchDeclaration.BreakNotNewLine"/>
+ <exclude name="PSR2.ControlStructures.SwitchDeclaration.BodyOnNextLineCASE"/>
+ <exclude name="PSR2.ControlStructures.SwitchDeclaration.SpaceBeforeColonDEFAULT"/>
+ <exclude name="PSR2.ControlStructures.SwitchDeclaration.SpaceBeforeColonCASE"/>
+ <exclude name="PSR2.Files.EndFileNewline.TooMany"/>
+ <exclude name="PSR2.Files.EndFileNewline.NoneFound"/>
+ <exclude name="PSR2.Methods.FunctionCallSignature.Indent"/>
+ <exclude name="PSR2.Methods.FunctionCallSignature.EmptyLine"/>
+ <exclude name="PSR2.Methods.FunctionCallSignature.ContentAfterOpenBracket"/>
+ <exclude name="PSR2.Methods.FunctionCallSignature.SpaceBeforeOpenBracket"/>
+ <exclude name="PSR2.Methods.FunctionCallSignature.CloseBracketLine"/>
+ <exclude name="PSR2.Methods.FunctionCallSignature.SpaceBeforeCloseBracket"/>
+ <exclude name="PSR2.Methods.FunctionCallSignature.SpaceAfterOpenBracket"/>
+ <exclude name="PSR2.Methods.FunctionCallSignature.MultipleArguments"/>
+ <exclude name="PSR2.Methods.FunctionClosingBrace.SpacingBeforeClose"/>
+ <exclude name="PSR2.Methods.MethodDeclaration.StaticBeforeVisibility"/>
+ <exclude name="PSR2.Namespaces.NamespaceDeclaration.BlankLineAfter"/>
+ <exclude name="PSR2.Namespaces.UseDeclaration.SpaceAfterLastUse"/>
+
+ <exclude name="PSR12.Classes.ClassInstantiation.MissingParentheses"/>
+ <exclude name="PSR12.ControlStructures.BooleanOperatorPlacement.FoundMixed"/>
+ <exclude name="PSR12.ControlStructures.ControlStructureSpacing.FirstExpressionLine"/>
+ <exclude name="PSR12.ControlStructures.ControlStructureSpacing.CloseParenthesisLine"/>
+ <exclude name="PSR12.ControlStructures.ControlStructureSpacing.LineIndent"/>
+ <exclude name="PSR12.ControlStructures.ControlStructureSpacing.SpacingAfterOpenBrace"/>
+ <exclude name="PSR12.ControlStructures.ControlStructureSpacing.SpaceBeforeCloseBrace"/>
+ <exclude name="PSR12.Files.FileHeader.SpacingAfterBlock"/>
+ <exclude name="PSR12.Operators.OperatorSpacing.NoSpaceBefore"/>
+ <exclude name="PSR12.Operators.OperatorSpacing.NoSpaceAfter"/>
+
+ <exclude name="PSR12.Properties.ConstantVisibility.NotFound"/>
+ </rule>
+
+ <!-- for now we mix declarations and execution here (mostly for defines) -->
+ <rule ref="PSR1.Files.SideEffects">
+ <exclude-pattern>*/index.php</exclude-pattern>
+ <exclude-pattern>*/inc/parserutils.php</exclude-pattern>
+ <exclude-pattern>*/inc/mail.php</exclude-pattern>
+ <exclude-pattern>*/inc/init.php</exclude-pattern>
+ <exclude-pattern>*/inc/farm.php</exclude-pattern>
+ <exclude-pattern>*/inc/fulltext.php</exclude-pattern>
+ <exclude-pattern>*/inc/pluginutils.php</exclude-pattern>
+ <exclude-pattern>*/inc/indexer.php</exclude-pattern>
+ <exclude-pattern>*/inc/Mailer.class.php</exclude-pattern>
+ <exclude-pattern>*/doku.php</exclude-pattern>
+ <exclude-pattern>*/install.php</exclude-pattern>
+ <exclude-pattern>*/inc/utf8.php</exclude-pattern>
+ <exclude-pattern>*/feed.php</exclude-pattern>
+ <exclude-pattern>*/inc/load.php</exclude-pattern>
+ <exclude-pattern>*/bin/*.php</exclude-pattern>
+ <exclude-pattern>*/lib/exe/*.php</exclude-pattern>
+ </rule>
+
+</ruleset>