{"action":"created","comment":{"url":"https://api.github.com/repos/checkstyle/checkstyle/pulls/comments/176939113","pull_request_review_id":106728656,"id":176939113,"diff_hunk":"@@ -10,139 +10,111 @@\n     <exclude-pattern>.*/src/main/.*</exclude-pattern>\n \n     <rule ref=\"config/pmd.xml\">\n-        <!--We do throws Exception, as any exception that in not caught in test should fail a test that is expected behavior and we like it as it follow fail-fast and helps to avoid extra catch blocks-->\n-        <exclude name=\"SignatureDeclareThrowsException\"/>\n-        <!--it madness to move all string values to common variables, it will be hard to read test code-->\n+        <!-- Test should be named as their main class -->\n+        <exclude name=\"AbstractNaming\"/>\n+        <!-- We want to avoid wide throws signature, it is just test -->\n+        <exclude name=\"AvoidCatchingGenericException\"/>\n+        <!-- It madness to move all string values to common variables, it will be hard to read\n+             test code-->\n         <exclude name=\"AvoidDuplicateLiterals\"/>\n-        <!--we do not need javadoc on test code-->\n+        <!-- We do not need javadoc on test code -->\n         <exclude name=\"CommentRequired\"/>\n-        <!--we like static imports in UTs as them minimize the code and we know that most of such methods are from UT+moks frameworks-->\n-        <exclude name=\"TooManyStaticImports\"/>\n-        <!--we try to keep all testing for class in one place/class/file to ease navigation between target class and it's test-->\n-        <exclude name=\"TooManyMethods\"/>\n-        <!--we have too much UTs for each main class, it is better to keep all tests in one file to ease navigation and search for tes-->\n+        <!-- We have too much UTs for each main class, it is better to keep all tests in one file\n+             to ease navigation and search for test -->\n         <exclude name=\"CouplingBetweenObjects\"/>\n-        <!--we have too much UTs for each main class, it is better to keep all tests in one file to ease navigation and search for test-->\n+        <!-- We have too much UTs for each main class, it is better to keep all tests in one file\n+             to ease navigation and search for test -->\n         <exclude name=\"ExcessiveImports\"/>\n-        <!--test should be named as their main class-->\n-        <exclude name=\"AbstractNaming\"/>\n-        <!--checkstyle do not use IP in configuration, so all values in tests are ok to use, they just another test string data-->\n-        <exclude name=\"AvoidUsingHardCodedIP\"/>\n-        <!--UTests are required to be public by design-->\n-        <exclude name=\"ExcessivePublicCount\"/>\n-        <!--we have too much UTs for each main class, it is better to keep all tests in one file to ease navigation and search for test-->\n+        <!-- We have too much UTs for each main class, it is better to keep all tests in one file\n+             to ease navigation and search for test -->\n         <exclude name=\"ExcessiveClassLength\"/>\n-        <!--we want to keep it all in one place-->\n-        <exclude name=\"NcssTypeCount\"/>\n-        <!--we want to avoid wide throws signature, it is just test-->\n-        <exclude name=\"AvoidCatchingGenericException\"/>\n-        <!--we do not want invest extra time to make logic ideal in test method, may be later...-->\n-        <exclude name=\"NPathComplexity\"/>\n-        <!--conflicts with checkstyle rule-->\n+        <!-- UTests methods are required to be public by design -->\n+        <exclude name=\"ExcessivePublicCount\"/>\n+        <!-- This rule does the same as EmptyCatchBlock, and has a confusing message -->\n         <exclude name=\"JUnitUseExpected\"/>\n-        <!--will be addressed in https://github.com/checkstyle/checkstyle/projects/5-->\n-        <exclude name=\"NonThreadSafeSingleton\"/>\n-    </rule>\n-\n-    <rule ref=\"rulesets/java/codesize.xml/NcssMethodCount\">\n-        <properties>\n-            <!-- 'testTokenNumbering' method is simple but long as it recheck each token one by one -->\n-            <!-- 'testNospaceWithComplexInput' it is intended to keep all in one method. -->\n-            <!--Method `testTokenValues` in JavadocTokenTypes contains several asserts as it checks each token explicitly-->\n-            <!-- XdocsPagesTest is a complicated list of different checks -->\n-            <property name=\"violationSuppressXPath\" value=\"\n-            //ClassOrInterfaceDeclaration[@Image='GeneratedJavaTokenTypesTest']//MethodDeclarator[@Image='testTokenNumbering']\n-            | //ClassOrInterfaceDeclaration[@Image='ParenPadCheckTest']//MethodDeclarator[@Image='testNospaceWithComplexInput']\n-            | //MethodDeclaration[@Name='testTokenValues' and ../../..[@Image='JavadocTokenTypesTest']]\n-            | //MethodDeclaration[@Name='getModulePropertyExpectedValue' and ../../..[@Image='XdocsPagesTest']]\"/>\n-        </properties>\n-    </rule>\n-\n-    <rule ref=\"rulesets/java/codesize.xml/ExcessiveMethodLength\">\n-        <properties>\n-            <!-- 'testTokenNumbering' method is simple but long as it recheck each token one by one -->\n-            <!-- 'testNospaceWithComplexInput' it is intended to keep all in one method. -->\n-            <!--Method `testTokenValues` in JavadocTokenTypes contains several asserts as it checks each token explicitly-->\n-            <!-- XdocsPagesTest is a complicated list of different checks -->\n-            <property name=\"violationSuppressXPath\" value=\"\n-            //ClassOrInterfaceDeclaration[@Image='GeneratedJavaTokenTypesTest']//MethodDeclarator[@Image='testTokenNumbering']\n-            | //ClassOrInterfaceDeclaration[@Image='ParenPadCheckTest']//MethodDeclarator[@Image='testNospaceWithComplexInput']\n-            | //ClassOrInterfaceDeclaration[@Image='ParenPadTest']//MethodDeclarator[@Image='testMethodParen']\n-            | //MethodDeclaration[@Name='testTokenValues' and ../../..[@Image='JavadocTokenTypesTest']]\n-            | //MethodDeclaration[@Name='getModulePropertyExpectedTypeName' and ../../..[@Image='XdocsPagesTest']]\"/>\n-        </properties>\n+        <!-- We do not want invest extra time to make logic ideal in test method, may be later -->\n+        <exclude name=\"NPathComplexity\"/>\n+        <!-- We do throws Exception, as any exception that in not caught in test should fail a test\n+            that is expected behavior and we like it as it follow fail-fast and helps to avoid extra\n+            catch blocks -->\n+        <exclude name=\"SignatureDeclareThrowsException\"/>","path":"config/pmd-test.xml","position":86,"original_position":86,"commit_id":"b0791c15d15ac8a7a026548a525ebf1278c07c68","original_commit_id":"b4bcfd36a631346c0f59d850b98464eeb0119218","user":{"login":"romani","id":812984,"avatar_url":"https://avatars3.githubusercontent.com/u/812984?v=4","gravatar_id":"","url":"https://api.github.com/users/romani","html_url":"https://github.com/romani","followers_url":"https://api.github.com/users/romani/followers","following_url":"https://api.github.com/users/romani/following{/other_user}","gists_url":"https://api.github.com/users/romani/gists{/gist_id}","starred_url":"https://api.github.com/users/romani/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/romani/subscriptions","organizations_url":"https://api.github.com/users/romani/orgs","repos_url":"https://api.github.com/users/romani/repos","events_url":"https://api.github.com/users/romani/events{/privacy}","received_events_url":"https://api.github.com/users/romani/received_events","type":"User","site_admin":false},"body":"> Believe me, \r\n\r\nwhole process in checkstyle, whole this madness with numerous CIs/tools/.... is based on  \"I do not trust contributors, they always cheat, ....\". I had a lot of stories on how I trusted contributors and in result they left incomplete/damaged functionality. Most contributions are done to start use new functionality after release. Non of contributor should be able to block others to upgrade to new version after release.\r\nMy time on laptop is very limited, so process is designed to make me do most of work from phone and on the go, or when I have only 5 min of free time, ... .\r\n\r\nBut I do appreciate your help in project.","created_at":"2018-03-25T12:48:07Z","updated_at":"2018-03-25T12:48:07Z","html_url":"https://github.com/checkstyle/checkstyle/pull/5637#discussion_r176939113","pull_request_url":"https://api.github.com/repos/checkstyle/checkstyle/pulls/5637","author_association":"OWNER","_links":{"self":{"href":"https://api.github.com/repos/checkstyle/checkstyle/pulls/comments/176939113"},"html":{"href":"https://github.com/checkstyle/checkstyle/pull/5637#discussion_r176939113"},"pull_request":{"href":"https://api.github.com/repos/checkstyle/checkstyle/pulls/5637"}},"in_reply_to_id":176909795},"pull_request":{"url":"https://api.github.com/repos/checkstyle/checkstyle/pulls/5637","id":176928217,"html_url":"https://github.com/checkstyle/checkstyle/pull/5637","diff_url":"https://github.com/checkstyle/checkstyle/pull/5637.diff","patch_url":"https://github.com/checkstyle/checkstyle/pull/5637.patch","issue_url":"https://api.github.com/repos/checkstyle/checkstyle/issues/5637","number":5637,"state":"open","locked":false,"title":"Issue #5603: Migrate to PMD6","user":{"login":"pbludov","id":900805,"avatar_url":"https://avatars2.githubusercontent.com/u/900805?v=4","gravatar_id":"","url":"https://api.github.com/users/pbludov","html_url":"https://github.com/pbludov","followers_url":"https://api.github.com/users/pbludov/followers","following_url":"https://api.github.com/users/pbludov/following{/other_user}","gists_url":"https://api.github.com/users/pbludov/gists{/gist_id}","starred_url":"https://api.github.com/users/pbludov/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pbludov/subscriptions","organizations_url":"https://api.github.com/users/pbludov/orgs","repos_url":"https://api.github.com/users/pbludov/repos","events_url":"https://api.github.com/users/pbludov/events{/privacy}","received_events_url":"https://api.github.com/users/pbludov/received_events","type":"User","site_admin":false},"body":"Issue #5603\r\n\r\nNote that some suppressions are gone. Mostly, the false positives.","created_at":"2018-03-22T22:35:29Z","updated_at":"2018-03-25T12:48:07Z","closed_at":null,"merged_at":null,"merge_commit_sha":"e68fc4ec39df70a834af170a3d832cbf080a6aae","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/checkstyle/checkstyle/pulls/5637/commits","review_comments_url":"https://api.github.com/repos/checkstyle/checkstyle/pulls/5637/comments","review_comment_url":"https://api.github.com/repos/checkstyle/checkstyle/pulls/comments{/number}","comments_url":"https://api.github.com/repos/checkstyle/checkstyle/issues/5637/comments","statuses_url":"https://api.github.com/repos/checkstyle/checkstyle/statuses/b0791c15d15ac8a7a026548a525ebf1278c07c68","head":{"label":"Softus:issue-5603","ref":"issue-5603","sha":"b0791c15d15ac8a7a026548a525ebf1278c07c68","user":{"login":"Softus","id":20538760,"avatar_url":"https://avatars0.githubusercontent.com/u/20538760?v=4","gravatar_id":"","url":"https://api.github.com/users/Softus","html_url":"https://github.com/Softus","followers_url":"https://api.github.com/users/Softus/followers","following_url":"https://api.github.com/users/Softus/following{/other_user}","gists_url":"https://api.github.com/users/Softus/gists{/gist_id}","starred_url":"https://api.github.com/users/Softus/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Softus/subscriptions","organizations_url":"https://api.github.com/users/Softus/orgs","repos_url":"https://api.github.com/users/Softus/repos","events_url":"https://api.github.com/users/Softus/events{/privacy}","received_events_url":"https://api.github.com/users/Softus/received_events","type":"Organization","site_admin":false},"repo":{"id":107936114,"name":"checkstyle","full_name":"Softus/checkstyle","owner":{"login":"Softus","id":20538760,"avatar_url":"https://avatars0.githubusercontent.com/u/20538760?v=4","gravatar_id":"","url":"https://api.github.com/users/Softus","html_url":"https://github.com/Softus","followers_url":"https://api.github.com/users/Softus/followers","following_url":"https://api.github.com/users/Softus/following{/other_user}","gists_url":"https://api.github.com/users/Softus/gists{/gist_id}","starred_url":"https://api.github.com/users/Softus/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Softus/subscriptions","organizations_url":"https://api.github.com/users/Softus/orgs","repos_url":"https://api.github.com/users/Softus/repos","events_url":"https://api.github.com/users/Softus/events{/privacy}","received_events_url":"https://api.github.com/users/Softus/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/Softus/checkstyle","description":"Checkstyle is a development tool to help programmers write Java code that adheres to a coding standard. By default it supports the Google Java Style Guide and Sun Code Conventions, but is highly configurable. It can be invoked with an ANT task and a command line program.","fork":true,"url":"https://api.github.com/repos/Softus/checkstyle","forks_url":"https://api.github.com/repos/Softus/checkstyle/forks","keys_url":"https://api.github.com/repos/Softus/checkstyle/keys{/key_id}","collaborators_url":"https://api.github.com/repos/Softus/checkstyle/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/Softus/checkstyle/teams","hooks_url":"https://api.github.com/repos/Softus/checkstyle/hooks","issue_events_url":"https://api.github.com/repos/Softus/checkstyle/issues/events{/number}","events_url":"https://api.github.com/repos/Softus/checkstyle/events","assignees_url":"https://api.github.com/repos/Softus/checkstyle/assignees{/user}","branches_url":"https://api.github.com/repos/Softus/checkstyle/branches{/branch}","tags_url":"https://api.github.com/repos/Softus/checkstyle/tags","blobs_url":"https://api.github.com/repos/Softus/checkstyle/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/Softus/checkstyle/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/Softus/checkstyle/git/refs{/sha}","trees_url":"https://api.github.com/repos/Softus/checkstyle/git/trees{/sha}","statuses_url":"https://api.github.com/repos/Softus/checkstyle/statuses/{sha}","languages_url":"https://api.github.com/repos/Softus/checkstyle/languages","stargazers_url":"https://api.github.com/repos/Softus/checkstyle/stargazers","contributors_url":"https://api.github.com/repos/Softus/checkstyle/contributors","subscribers_url":"https://api.github.com/repos/Softus/checkstyle/subscribers","subscription_url":"https://api.github.com/repos/Softus/checkstyle/subscription","commits_url":"https://api.github.com/repos/Softus/checkstyle/commits{/sha}","git_commits_url":"https://api.github.com/repos/Softus/checkstyle/git/commits{/sha}","comments_url":"https://api.github.com/repos/Softus/checkstyle/comments{/number}","issue_comment_url":"https://api.github.com/repos/Softus/checkstyle/issues/comments{/number}","contents_url":"https://api.github.com/repos/Softus/checkstyle/contents/{+path}","compare_url":"https://api.github.com/repos/Softus/checkstyle/compare/{base}...{head}","merges_url":"https://api.github.com/repos/Softus/checkstyle/merges","archive_url":"https://api.github.com/repos/Softus/checkstyle/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/Softus/checkstyle/downloads","issues_url":"https://api.github.com/repos/Softus/checkstyle/issues{/number}","pulls_url":"https://api.github.com/repos/Softus/checkstyle/pulls{/number}","milestones_url":"https://api.github.com/repos/Softus/checkstyle/milestones{/number}","notifications_url":"https://api.github.com/repos/Softus/checkstyle/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/Softus/checkstyle/labels{/name}","releases_url":"https://api.github.com/repos/Softus/checkstyle/releases{/id}","deployments_url":"https://api.github.com/repos/Softus/checkstyle/deployments","created_at":"2017-10-23T05:31:34Z","updated_at":"2018-03-25T01:17:52Z","pushed_at":"2018-03-25T01:56:43Z","git_url":"git://github.com/Softus/checkstyle.git","ssh_url":"git@github.com:Softus/checkstyle.git","clone_url":"https://github.com/Softus/checkstyle.git","svn_url":"https://github.com/Softus/checkstyle","homepage":"http://checkstyle.sourceforge.net/","size":57085,"stargazers_count":0,"watchers_count":0,"language":"Java","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"open_issues_count":0,"license":{"key":"other","name":"Other","spdx_id":null,"url":null},"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"checkstyle:master","ref":"master","sha":"67753cfba00c8d35a056a673e438928bcad30bac","user":{"login":"checkstyle","id":5179750,"avatar_url":"https://avatars0.githubusercontent.com/u/5179750?v=4","gravatar_id":"","url":"https://api.github.com/users/checkstyle","html_url":"https://github.com/checkstyle","followers_url":"https://api.github.com/users/checkstyle/followers","following_url":"https://api.github.com/users/checkstyle/following{/other_user}","gists_url":"https://api.github.com/users/checkstyle/gists{/gist_id}","starred_url":"https://api.github.com/users/checkstyle/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/checkstyle/subscriptions","organizations_url":"https://api.github.com/users/checkstyle/orgs","repos_url":"https://api.github.com/users/checkstyle/repos","events_url":"https://api.github.com/users/checkstyle/events{/privacy}","received_events_url":"https://api.github.com/users/checkstyle/received_events","type":"Organization","site_admin":false},"repo":{"id":12499251,"name":"checkstyle","full_name":"checkstyle/checkstyle","owner":{"login":"checkstyle","id":5179750,"avatar_url":"https://avatars0.githubusercontent.com/u/5179750?v=4","gravatar_id":"","url":"https://api.github.com/users/checkstyle","html_url":"https://github.com/checkstyle","followers_url":"https://api.github.com/users/checkstyle/followers","following_url":"https://api.github.com/users/checkstyle/following{/other_user}","gists_url":"https://api.github.com/users/checkstyle/gists{/gist_id}","starred_url":"https://api.github.com/users/checkstyle/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/checkstyle/subscriptions","organizations_url":"https://api.github.com/users/checkstyle/orgs","repos_url":"https://api.github.com/users/checkstyle/repos","events_url":"https://api.github.com/users/checkstyle/events{/privacy}","received_events_url":"https://api.github.com/users/checkstyle/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/checkstyle/checkstyle","description":"Checkstyle is a development tool to help programmers write Java code that adheres to a coding standard. By default it supports the Google Java Style Guide and Sun Code Conventions, but is highly configurable. It can be invoked with an ANT task and a command line program.","fork":false,"url":"https://api.github.com/repos/checkstyle/checkstyle","forks_url":"https://api.github.com/repos/checkstyle/checkstyle/forks","keys_url":"https://api.github.com/repos/checkstyle/checkstyle/keys{/key_id}","collaborators_url":"https://api.github.com/repos/checkstyle/checkstyle/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/checkstyle/checkstyle/teams","hooks_url":"https://api.github.com/repos/checkstyle/checkstyle/hooks","issue_events_url":"https://api.github.com/repos/checkstyle/checkstyle/issues/events{/number}","events_url":"https://api.github.com/repos/checkstyle/checkstyle/events","assignees_url":"https://api.github.com/repos/checkstyle/checkstyle/assignees{/user}","branches_url":"https://api.github.com/repos/checkstyle/checkstyle/branches{/branch}","tags_url":"https://api.github.com/repos/checkstyle/checkstyle/tags","blobs_url":"https://api.github.com/repos/checkstyle/checkstyle/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/checkstyle/checkstyle/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/checkstyle/checkstyle/git/refs{/sha}","trees_url":"https://api.github.com/repos/checkstyle/checkstyle/git/trees{/sha}","statuses_url":"https://api.github.com/repos/checkstyle/checkstyle/statuses/{sha}","languages_url":"https://api.github.com/repos/checkstyle/checkstyle/languages","stargazers_url":"https://api.github.com/repos/checkstyle/checkstyle/stargazers","contributors_url":"https://api.github.com/repos/checkstyle/checkstyle/contributors","subscribers_url":"https://api.github.com/repos/checkstyle/checkstyle/subscribers","subscription_url":"https://api.github.com/repos/checkstyle/checkstyle/subscription","commits_url":"https://api.github.com/repos/checkstyle/checkstyle/commits{/sha}","git_commits_url":"https://api.github.com/repos/checkstyle/checkstyle/git/commits{/sha}","comments_url":"https://api.github.com/repos/checkstyle/checkstyle/comments{/number}","issue_comment_url":"https://api.github.com/repos/checkstyle/checkstyle/issues/comments{/number}","contents_url":"https://api.github.com/repos/checkstyle/checkstyle/contents/{+path}","compare_url":"https://api.github.com/repos/checkstyle/checkstyle/compare/{base}...{head}","merges_url":"https://api.github.com/repos/checkstyle/checkstyle/merges","archive_url":"https://api.github.com/repos/checkstyle/checkstyle/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/checkstyle/checkstyle/downloads","issues_url":"https://api.github.com/repos/checkstyle/checkstyle/issues{/number}","pulls_url":"https://api.github.com/repos/checkstyle/checkstyle/pulls{/number}","milestones_url":"https://api.github.com/repos/checkstyle/checkstyle/milestones{/number}","notifications_url":"https://api.github.com/repos/checkstyle/checkstyle/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/checkstyle/checkstyle/labels{/name}","releases_url":"https://api.github.com/repos/checkstyle/checkstyle/releases{/id}","deployments_url":"https://api.github.com/repos/checkstyle/checkstyle/deployments","created_at":"2013-08-31T02:05:05Z","updated_at":"2018-03-25T12:15:08Z","pushed_at":"2018-03-25T12:28:42Z","git_url":"git://github.com/checkstyle/checkstyle.git","ssh_url":"git@github.com:checkstyle/checkstyle.git","clone_url":"https://github.com/checkstyle/checkstyle.git","svn_url":"https://github.com/checkstyle/checkstyle","homepage":"http://checkstyle.sourceforge.net/","size":57082,"stargazers_count":3575,"watchers_count":3575,"language":"Java","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":6388,"mirror_url":null,"archived":false,"open_issues_count":456,"license":{"key":"other","name":"Other","spdx_id":null,"url":null},"forks":6388,"open_issues":456,"watchers":3575,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/checkstyle/checkstyle/pulls/5637"},"html":{"href":"https://github.com/checkstyle/checkstyle/pull/5637"},"issue":{"href":"https://api.github.com/repos/checkstyle/checkstyle/issues/5637"},"comments":{"href":"https://api.github.com/repos/checkstyle/checkstyle/issues/5637/comments"},"review_comments":{"href":"https://api.github.com/repos/checkstyle/checkstyle/pulls/5637/comments"},"review_comment":{"href":"https://api.github.com/repos/checkstyle/checkstyle/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/checkstyle/checkstyle/pulls/5637/commits"},"statuses":{"href":"https://api.github.com/repos/checkstyle/checkstyle/statuses/b0791c15d15ac8a7a026548a525ebf1278c07c68"}},"author_association":"CONTRIBUTOR"}}
{"actor":{"display_login":"romani"}}