pmdtester 1.0.0.pre.beta3 → 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.hoerc +1 -1
- data/.rubocop.yml +7 -0
- data/.rubocop_todo.yml +7 -8
- data/.travis.yml +20 -2
- data/Gemfile +1 -12
- data/History.md +37 -0
- data/Manifest.txt +6 -0
- data/README.rdoc +72 -46
- data/Rakefile +23 -13
- data/lib/pmdtester.rb +8 -1
- data/lib/pmdtester/builders/diff_builder.rb +8 -7
- data/lib/pmdtester/builders/diff_report/configerrors.rb +50 -0
- data/lib/pmdtester/builders/diff_report/errors.rb +71 -0
- data/lib/pmdtester/builders/diff_report/violations.rb +77 -0
- data/lib/pmdtester/builders/diff_report_builder.rb +23 -149
- data/lib/pmdtester/builders/html_report_builder.rb +23 -0
- data/lib/pmdtester/builders/pmd_report_builder.rb +69 -23
- data/lib/pmdtester/builders/rule_set_builder.rb +3 -2
- data/lib/pmdtester/builders/simple_progress_logger.rb +27 -0
- data/lib/pmdtester/builders/summary_report_builder.rb +19 -5
- data/lib/pmdtester/cmd.rb +15 -1
- data/lib/pmdtester/parsers/options.rb +6 -2
- data/lib/pmdtester/parsers/pmd_report_document.rb +11 -5
- data/lib/pmdtester/pmd_branch_detail.rb +17 -3
- data/lib/pmdtester/pmd_configerror.rb +63 -0
- data/lib/pmdtester/pmd_violation.rb +2 -0
- data/lib/pmdtester/project.rb +35 -3
- data/lib/pmdtester/report_diff.rb +67 -21
- data/lib/pmdtester/runner.rb +40 -15
- data/pmdtester.gemspec +73 -0
- metadata +62 -25
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a01837c60abe0048b0e65aaec642e970e3bf2fa6f126f2e33c5429a33dce5aaa
|
4
|
+
data.tar.gz: 776503e819fa70e809de9f2633cb464cf40f4758449679edc967649b08716e31
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f411366e6cfae2693955512010ea9bec3431ff085df45de372526250a044beb82163b8f78be7920551b41e0ae9f543f93a068030429ebbcc846c45969946f65e
|
7
|
+
data.tar.gz: '0569c7bcb84fa271eff1b32b3836db2efb6209a17462c3e39de97f3cf7d0a69455b710fe4e810d32717732ba615c05211f462af0019b2c01190796a8c9861576'
|
data/.hoerc
CHANGED
@@ -1 +1 @@
|
|
1
|
-
exclude: !ruby/regexp /tmp$|\.(git|idea)|target|test\/|Gemfile\.lock/
|
1
|
+
exclude: !ruby/regexp /tmp$|\.(git|idea)|target|test\/|Gemfile\.lock|\.bundle\/|install-jdk.sh|vendor\/cache/
|
data/.rubocop.yml
CHANGED
@@ -2,9 +2,16 @@ inherit_from: .rubocop_todo.yml
|
|
2
2
|
|
3
3
|
AllCops:
|
4
4
|
TargetRubyVersion: 2.4
|
5
|
+
Include:
|
6
|
+
- 'lib/**/*'
|
7
|
+
- 'test/**/*'
|
5
8
|
Exclude:
|
9
|
+
# pmdtester.gemspec and Gemfile are generated
|
10
|
+
- 'pmdtester.gemspec'
|
11
|
+
- 'Gemfile'
|
6
12
|
- 'target/**/*'
|
7
13
|
- 'test/resources/**/*'
|
14
|
+
- 'vendor/**/*'
|
8
15
|
|
9
16
|
Metrics/LineLength:
|
10
17
|
Max: 100
|
data/.rubocop_todo.yml
CHANGED
@@ -1,27 +1,26 @@
|
|
1
1
|
# This configuration was generated by
|
2
2
|
# `rubocop --auto-gen-config`
|
3
|
-
# on 2018-
|
3
|
+
# on 2018-11-25 11:00:37 +0100 using RuboCop version 0.51.0.
|
4
4
|
# The point is for the user to remove these configuration records
|
5
5
|
# one by one as the offenses are removed from the code base.
|
6
6
|
# Note that changes in the inspected code, or installation of new
|
7
7
|
# versions of RuboCop, may require this file to be generated again.
|
8
8
|
|
9
|
-
# Offense count:
|
9
|
+
# Offense count: 30
|
10
10
|
Metrics/AbcSize:
|
11
11
|
Max: 47
|
12
12
|
|
13
|
-
# Offense count:
|
13
|
+
# Offense count: 6
|
14
14
|
# Configuration parameters: CountComments.
|
15
15
|
Metrics/ClassLength:
|
16
|
-
Max:
|
16
|
+
Max: 135
|
17
17
|
|
18
|
-
# Offense count:
|
18
|
+
# Offense count: 38
|
19
19
|
# Configuration parameters: CountComments.
|
20
20
|
Metrics/MethodLength:
|
21
|
-
Max:
|
21
|
+
Max: 22
|
22
22
|
|
23
|
-
# Offense count:
|
23
|
+
# Offense count: 3
|
24
24
|
Naming/AccessorMethodName:
|
25
25
|
Exclude:
|
26
26
|
- 'lib/pmdtester/builders/pmd_report_builder.rb'
|
27
|
-
- 'lib/pmdtester/parsers/projects_parser.rb'
|
data/.travis.yml
CHANGED
@@ -1,6 +1,18 @@
|
|
1
1
|
language: ruby
|
2
|
-
|
2
|
+
before_install:
|
3
|
+
- LOCAL_DIR=${HOME}/.cache/openjdk
|
4
|
+
- TARGET_DIR=${HOME}/openjdk11
|
5
|
+
- mkdir -p ${LOCAL_DIR}
|
6
|
+
- mkdir -p ${TARGET_DIR}
|
7
|
+
- DOWNLOAD_URL="https://pmd-code.org/openjdk/jdk-11.0.7%2B10/OpenJDK11U-jdk_x64_linux_hotspot_11.0.7_10.tar.gz"
|
8
|
+
- OPENJDK_ARCHIVE=$(basename $DOWNLOAD_URL)
|
9
|
+
- if [ ! -e ${LOCAL_DIR}/${OPENJDK_ARCHIVE} ]; then wget --directory-prefix ${LOCAL_DIR} --timestamping --continue ${DOWNLOAD_URL}; fi
|
10
|
+
- tar --extract --file ${LOCAL_DIR}/${OPENJDK_ARCHIVE} -C ${TARGET_DIR} --strip-components=1
|
11
|
+
- export JAVA_HOME="${TARGET_DIR}"
|
12
|
+
- export PATH="${TARGET_DIR}/bin:${PATH}"
|
13
|
+
- java -version
|
3
14
|
script:
|
15
|
+
- rake check_manifest
|
4
16
|
- rake rubocop
|
5
17
|
- rake clean test
|
6
18
|
- rake clean integration-test
|
@@ -14,9 +26,15 @@ before_deploy:
|
|
14
26
|
deploy:
|
15
27
|
provider: rubygems
|
16
28
|
api_key:
|
17
|
-
secure:
|
29
|
+
secure: "PMohVxVpupi3qKmSWjny6ASPKiWpyZxMTluARs15tiRR4Pco3Ko+Z+Nk2F6XNZkY4q4zudS91JGtYeGzuBknI/tFB9S1LjR5RDe9cUbETlhpazBCaRvVFt0K8okb9JAWfVi+mnCG5saBn0Osxv/PKS2sVr/3dK9JFVncaYfRhIZfhB/LcdHMLpnlv94sr60SGPA8ITz3pj1dKe6E2wfqQjgD8RNOOLxtcTFeEZVHDuJn0gsKz+ou2Dyzth+2SksKKboosodWXNbAIx5xg+iVLZgGFluQknZ130G0PA6vJzMLWgLEjUtFDV1QtE80jP7LhuMOKXaXHa6NghHL7h3TiBO9/2SEdHSdIq5NeMm2f8qttLNqI15cgGolyUGd+K43tAdvNuJws+wbQsj53htGFLvSKPfwTxipn1Ppa1s6/bSeUQvtj/kXO6MnVdwTBNjlm791DaG8sC4WbvppLvrKPfpvqGoOfWj9h5PlB8SsaHyDtOB6oCYE354RxLJxaI6b4hcxleyz7mPmoPcKQjcPSM8i004lCCNAmPm0VMW/yTi1Z1iBq6+1OiW7fe6txJi9zCPhMzziz1EA0oQYBgu99Uy9wjHh8CkWXtZDx+WSYRxCZOJ6kFN72dgYQbIsn4kxzrjwCp+NN0woDPR0FXcuePNgAz2hBtAvbKdOC2OCQVw="
|
18
30
|
on:
|
19
31
|
tags: true
|
20
32
|
skip_cleanup: true
|
21
33
|
gem: pmdtester
|
22
34
|
gemspec: pmdtester.gemspec
|
35
|
+
|
36
|
+
cache:
|
37
|
+
directories:
|
38
|
+
- vendor/bundle
|
39
|
+
- "$HOME/.rvm/"
|
40
|
+
- "$HOME/.cache/openjdk"
|
data/Gemfile
CHANGED
@@ -3,17 +3,6 @@
|
|
3
3
|
# DO NOT EDIT THIS FILE. Instead, edit Rakefile, and run `rake bundler:gemfile`.
|
4
4
|
|
5
5
|
source "https://rubygems.org/"
|
6
|
-
|
7
|
-
gem "nokogiri", "~>1.8.2"
|
8
|
-
gem "slop", "~>4.6.2"
|
9
|
-
|
10
|
-
gem "hoe-bundler", "~>1.2", :group => [:development, :test]
|
11
|
-
gem "hoe-git", "~>1.6", :group => [:development, :test]
|
12
|
-
gem "minitest", "~>5.10.1", :group => [:development, :test]
|
13
|
-
gem "mocha", "~>1.5.0", :group => [:development, :test]
|
14
|
-
gem "rubocop", "~>0.56.0", :group => [:development, :test]
|
15
|
-
gem "test-unit", "~>3.2.3", :group => [:development, :test]
|
16
|
-
gem "rdoc", ">=4.0", "<6", :group => [:development, :test]
|
17
|
-
gem "hoe", "~>3.17", :group => [:development, :test]
|
6
|
+
gemspec
|
18
7
|
|
19
8
|
# vim: syntax=ruby
|
data/History.md
CHANGED
@@ -1,3 +1,39 @@
|
|
1
|
+
# 1.0.0 / 2020-04-25
|
2
|
+
|
3
|
+
## New and Noteworthy
|
4
|
+
|
5
|
+
First stable release.
|
6
|
+
|
7
|
+
## Fixed Issues
|
8
|
+
|
9
|
+
* [#35](https://github.com/pmd/pmd-regression-tester/issues/35): exclude-pattern hasn't been implemented
|
10
|
+
* [#37](https://github.com/pmd/pmd-regression-tester/issues/37): Render stack traces properly
|
11
|
+
* [#38](https://github.com/pmd/pmd-regression-tester/issues/38): Improve Danger messages
|
12
|
+
* [#40](https://github.com/pmd/pmd-regression-tester/issues/40): NoMethodError on beta3
|
13
|
+
* [#42](https://github.com/pmd/pmd-regression-tester/issues/42): Installing the snapshot version of pmdtester locally from github
|
14
|
+
* [#46](https://github.com/pmd/pmd-regression-tester/issues/46): Support multithreaded execution of PMD
|
15
|
+
* [#47](https://github.com/pmd/pmd-regression-tester/issues/47): Reuse the already built PMD binary for PR checks
|
16
|
+
* [#49](https://github.com/pmd/pmd-regression-tester/issues/49): Support comparing two error stacktraces
|
17
|
+
* [#50](https://github.com/pmd/pmd-regression-tester/issues/50): Differences due to different locale settings
|
18
|
+
* [#57](https://github.com/pmd/pmd-regression-tester/issues/57): Support configuration errors in the report
|
19
|
+
* [#60](https://github.com/pmd/pmd-regression-tester/issues/60): Display a simple progress report
|
20
|
+
|
21
|
+
## External Contributions
|
22
|
+
|
23
|
+
* [#33](https://github.com/pmd/pmd-regression-tester/pull/33): Ignore changes to test code of PMD when generating dynamic rule sets - [BBG](https://github.com/djydewang)
|
24
|
+
* [#34](https://github.com/pmd/pmd-regression-tester/pull/34): Clear old reports before generating new differences regression reports - [BBG](https://github.com/djydewang)
|
25
|
+
* [#36](https://github.com/pmd/pmd-regression-tester/pull/36): Implements exclude-pattern - [BBG](https://github.com/djydewang)
|
26
|
+
* [#39](https://github.com/pmd/pmd-regression-tester/pull/39): Render stacktraces properly - [BBG](https://github.com/djydewang)
|
27
|
+
* [#41](https://github.com/pmd/pmd-regression-tester/pull/41): Fixes NoMethodError in Project class - [BBG](https://github.com/djydewang)
|
28
|
+
* [#43](https://github.com/pmd/pmd-regression-tester/pull/43): Adds pmdtester.gemspec file - [BBG](https://github.com/djydewang)
|
29
|
+
* [#44](https://github.com/pmd/pmd-regression-tester/pull/44): Improve Danger messages & Increase the readability of the summary report - [BBG](https://github.com/djydewang)
|
30
|
+
* [#45](https://github.com/pmd/pmd-regression-tester/pull/45): Removes the exit statement in RuleSetBuilder Class - [BBG](https://github.com/djydewang)
|
31
|
+
* [#51](https://github.com/pmd/pmd-regression-tester/pull/51): Add the JDK version and locale info to the summary table of the diff report - [BBG](https://github.com/djydewang)
|
32
|
+
* [#52](https://github.com/pmd/pmd-regression-tester/pull/52): Get the result of command 'java -version' from stderr rather than stdout - [BBG](https://github.com/djydewang)
|
33
|
+
* [#53](https://github.com/pmd/pmd-regression-tester/pull/53): Support comparing the two error stacktraces - [BBG](https://github.com/djydewang)
|
34
|
+
* [#54](https://github.com/pmd/pmd-regression-tester/pull/54): Support multithreaded execution of PMD - [BBG](https://github.com/djydewang)
|
35
|
+
* [#61](https://github.com/pmd/pmd-regression-tester/pull/61): Display a simple progress report every 2 minutes - [BBG](https://github.com/djydewang)
|
36
|
+
|
1
37
|
# 1.0.0.beta3 / 2018-08-01
|
2
38
|
|
3
39
|
Note: This is a beta release. The pmdtester is feature complete,
|
@@ -11,6 +47,7 @@ but might contain bugs.
|
|
11
47
|
* [#31](https://github.com/pmd/pmd-regression-tester/pull/31): Fix color scheme for diff report, add default values for various options - [BBG](https://github.com/djydewang)
|
12
48
|
* [#32](https://github.com/pmd/pmd-regression-tester/pull/32): Update Readme.rdoc - [BBG](https://github.com/djydewang)
|
13
49
|
|
50
|
+
|
14
51
|
# 1.0.0.beta2 / 2018-07-17
|
15
52
|
|
16
53
|
* First release of pmdtester
|
data/Manifest.txt
CHANGED
@@ -15,16 +15,21 @@ config/project-list.xml
|
|
15
15
|
config/projectlist_1_0_0.xsd
|
16
16
|
lib/pmdtester.rb
|
17
17
|
lib/pmdtester/builders/diff_builder.rb
|
18
|
+
lib/pmdtester/builders/diff_report/configerrors.rb
|
19
|
+
lib/pmdtester/builders/diff_report/errors.rb
|
20
|
+
lib/pmdtester/builders/diff_report/violations.rb
|
18
21
|
lib/pmdtester/builders/diff_report_builder.rb
|
19
22
|
lib/pmdtester/builders/html_report_builder.rb
|
20
23
|
lib/pmdtester/builders/pmd_report_builder.rb
|
21
24
|
lib/pmdtester/builders/rule_set_builder.rb
|
25
|
+
lib/pmdtester/builders/simple_progress_logger.rb
|
22
26
|
lib/pmdtester/builders/summary_report_builder.rb
|
23
27
|
lib/pmdtester/cmd.rb
|
24
28
|
lib/pmdtester/parsers/options.rb
|
25
29
|
lib/pmdtester/parsers/pmd_report_document.rb
|
26
30
|
lib/pmdtester/parsers/projects_parser.rb
|
27
31
|
lib/pmdtester/pmd_branch_detail.rb
|
32
|
+
lib/pmdtester/pmd_configerror.rb
|
28
33
|
lib/pmdtester/pmd_error.rb
|
29
34
|
lib/pmdtester/pmd_report_detail.rb
|
30
35
|
lib/pmdtester/pmd_violation.rb
|
@@ -32,5 +37,6 @@ lib/pmdtester/project.rb
|
|
32
37
|
lib/pmdtester/report_diff.rb
|
33
38
|
lib/pmdtester/resource_locator.rb
|
34
39
|
lib/pmdtester/runner.rb
|
40
|
+
pmdtester.gemspec
|
35
41
|
resources/css/maven-base.css
|
36
42
|
resources/css/maven-theme.css
|
data/README.rdoc
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
= pmdtester
|
2
2
|
|
3
|
+
home :: https://pmd.github.io
|
3
4
|
code :: https://github.com/pmd/pmd-regression-tester
|
4
5
|
bugs :: https://github.com/pmd/pmd-regression-tester/issues
|
5
6
|
|
@@ -15,7 +16,8 @@ The diff report can be generated according to the base and patch branch of PMD
|
|
15
16
|
on a list of standard projects(Spring Framework, Hibernate, Solr, etc.)
|
16
17
|
|
17
18
|
== SYNOPSIS:
|
18
|
-
|
19
|
+
|
20
|
+
=== Options:
|
19
21
|
-r, --local-git-repo path to the local PMD repository
|
20
22
|
-b, --base-branch name of the base branch in local PMD repository
|
21
23
|
-p, --patch-branch name of the patch branch in local PMD repository
|
@@ -30,67 +32,84 @@ on a list of standard projects(Spring Framework, Hibernate, Solr, etc.)
|
|
30
32
|
the PMD report of master/base branch rather than generating it locally
|
31
33
|
local: Default option is 'local', PMD reports for the base and patch branches are generated locally.
|
32
34
|
|
35
|
+
-t, --threads Sets the number of threads used by PMD. Set threads to 0 to disable multi-threading processing. default:1
|
33
36
|
-f, --html-flag whether to not generate the html diff report in single mode
|
34
37
|
-a, --auto-gen-config whether to generate configurations automatically based on branch differences,this option only works in online and local mode
|
35
38
|
-d, --debug whether change log level to DEBUG to see more information
|
36
|
-
-v, --version
|
37
|
-
-h, --help
|
39
|
+
-v, --version
|
40
|
+
-h, --help
|
41
|
+
|
38
42
|
=== Quick start
|
43
|
+
|
39
44
|
==== Run local mode
|
40
|
-
|
45
|
+
|
46
|
+
pmdtester -b master -p YOUR_DEVELOPMENT_BRANCH -r PATH_TO_LOCAL_PMD_REPO -a
|
47
|
+
|
41
48
|
==== Run single mode
|
49
|
+
|
42
50
|
pmdtester -p YOUR_DEVELOPMENT_BRANCH -pc CONFIG_ONLY_CONTAINS_NEW_PMD_JAVA_RULE -m single
|
51
|
+
|
43
52
|
==== Run online mode
|
44
|
-
|
53
|
+
|
54
|
+
pmdtester -b master -p YOUR_DEVELOPMENT_BRANCH -r PATH_TO_LOCAL_PMD_REPO -m online -a
|
55
|
+
|
45
56
|
=== Output
|
46
57
|
The tool creates the following folders:
|
47
|
-
target
|
48
|
-
├── repositories <- the analyzed projects are cloned here
|
49
|
-
│ ├── PROJECT_NAME_1
|
50
|
-
│ ├── ......
|
51
|
-
│ └── PROJECT_NAME_n
|
52
|
-
└── reports
|
53
|
-
├── BASE_BRANCH_NAME <- the base baseline is placed here
|
54
|
-
├── PATCH_BRANCH_NAME <- the patch baseline is placed here
|
55
|
-
└── diff
|
56
|
-
├── index.xml <- the summary report of diff reports
|
58
|
+
target
|
59
|
+
├── repositories <- the analyzed projects are cloned here
|
60
|
+
│ ├── PROJECT_NAME_1
|
61
|
+
│ ├── ......
|
62
|
+
│ └── PROJECT_NAME_n
|
63
|
+
└── reports
|
64
|
+
├── BASE_BRANCH_NAME <- the base baseline is placed here
|
65
|
+
├── PATCH_BRANCH_NAME <- the patch baseline is placed here
|
66
|
+
└── diff
|
67
|
+
├── index.xml <- the summary report of diff reports
|
57
68
|
├── base_config.xml <- the resources of the summary report
|
58
69
|
├── patch_config.xml <- the resources fo the summary report
|
59
|
-
├── css <- css reources are placed here
|
60
|
-
├── PROJECT_NAME_1
|
61
|
-
└── index.xml <- the diff report of PROJECT_1
|
62
|
-
├── .......
|
63
|
-
└── PROJECT_NAME_n
|
64
|
-
└── index.xml <- the diff report of PROJECT_N
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
├──
|
69
|
-
├──
|
70
|
-
|
71
|
-
│
|
72
|
-
|
73
|
-
|
74
|
-
│
|
75
|
-
└──
|
70
|
+
├── css <- css reources are placed here
|
71
|
+
├── PROJECT_NAME_1
|
72
|
+
└── index.xml <- the diff report of PROJECT_1
|
73
|
+
├── .......
|
74
|
+
└── PROJECT_NAME_n
|
75
|
+
└── index.xml <- the diff report of PROJECT_N
|
76
|
+
|
77
|
+
==== The baseline format
|
78
|
+
branch_name
|
79
|
+
├── branch_info.json
|
80
|
+
├── config.xml
|
81
|
+
├── STANDARD_PROJECT_NAME_1
|
82
|
+
│ ├── report_info.json
|
83
|
+
│ └── pmd_report.xml
|
84
|
+
├── ......................
|
85
|
+
│ ├── report_info.json
|
86
|
+
│ └── pmd_report.xml
|
87
|
+
└── STANDARD_PROJECT_NAME_n
|
76
88
|
├── report_info.info
|
77
|
-
└── pmd_report.xml
|
89
|
+
└── pmd_report.xml
|
78
90
|
|
79
91
|
== REQUIREMENTS:
|
92
|
+
|
80
93
|
* Ruby 2.4.1 or higher
|
94
|
+
|
81
95
|
=== Runtime dependency
|
82
|
-
|
83
|
-
|
96
|
+
|
97
|
+
nokogiri ~> 1.8
|
98
|
+
slop ~> 4.6
|
99
|
+
differ ~> 0.1
|
100
|
+
rufus-scheduler ~> 3.5
|
101
|
+
|
84
102
|
=== Development dependency
|
85
|
-
|
86
|
-
hoe
|
103
|
+
|
104
|
+
hoe ~> 3.22
|
105
|
+
hoe-bundler ~> 1.5
|
87
106
|
hoe-git ~> 1.6
|
88
|
-
minitest ~> 5.10
|
89
|
-
mocha ~> 1.5
|
90
|
-
rdoc <
|
91
|
-
rubocop ~> 0.
|
92
|
-
test-unit ~> 3.2
|
93
|
-
|
107
|
+
minitest ~> 5.10
|
108
|
+
mocha ~> 1.5
|
109
|
+
rdoc < 7, >= 4.0
|
110
|
+
rubocop ~> 0.81
|
111
|
+
test-unit ~> 3.2
|
112
|
+
|
94
113
|
== INSTALL:
|
95
114
|
|
96
115
|
gem install pmdtester --pre
|
@@ -99,8 +118,15 @@ The tool creates the following folders:
|
|
99
118
|
git clone https://github.com/pmd/pmd-regression-tester.git
|
100
119
|
cd pmd-regression-tester
|
101
120
|
gem install bundler
|
102
|
-
bundle
|
103
|
-
|
104
|
-
|
121
|
+
bundle config set path "vendor/cache"
|
122
|
+
bundle install # once
|
123
|
+
bundle exec rake verify # run this command before commit your changes
|
124
|
+
bundle exec pmdtester ... # run this to directly execute pmdtester from source
|
105
125
|
|
126
|
+
=== Releasing
|
106
127
|
|
128
|
+
* Update +History.md+ (version and date)
|
129
|
+
* Update +lib/pmdtester.rb+ (version)
|
130
|
+
* Commit ("Prepare release x.y.z"), tag, push. Travis will build and publish the new gem.
|
131
|
+
* Update History.md and lib/pmdtester.rb for the next development version
|
132
|
+
("Prepare next development version x.y.z-SNAPSHOT").
|
data/Rakefile
CHANGED
@@ -18,25 +18,26 @@ hoe = Hoe.spec 'pmdtester' do
|
|
18
18
|
developer 'Binguo Bao', 'djydewang@gmail.com'
|
19
19
|
|
20
20
|
self.clean_globs = %w[target/reports/**/* target/test/**/* Gemfile.lock]
|
21
|
-
self.extra_deps += [['nokogiri', '~> 1.8
|
22
|
-
|
23
|
-
|
21
|
+
self.extra_deps += [['nokogiri', '~> 1.8'], ['slop', '~> 4.6'], ['differ', '~> 0.1'],
|
22
|
+
['rufus-scheduler', '~> 3.5']]
|
23
|
+
self.extra_dev_deps += [
|
24
|
+
['hoe-bundler', '~> 1.5'],
|
24
25
|
['hoe-git', '~> 1.6'],
|
25
|
-
['minitest', '~> 5.10
|
26
|
-
['mocha', '~> 1.5
|
27
|
-
|
28
|
-
['
|
26
|
+
['minitest', '~> 5.10'],
|
27
|
+
['mocha', '~> 1.5'],
|
28
|
+
# use the same version of rubocop as codacy
|
29
|
+
['rubocop', '~> 0.81'],
|
30
|
+
['test-unit', '~> 3.2'],
|
31
|
+
['rdoc', ['>= 4.0', '< 7']]
|
29
32
|
]
|
30
|
-
|
33
|
+
spec_extras[:required_ruby_version] = '>= 2.2'
|
31
34
|
|
32
35
|
license 'BSD-2-Clause'
|
33
36
|
end
|
34
37
|
|
35
38
|
# Refers to
|
36
39
|
# http://rubocop.readthedocs.io/en/latest/integration_with_other_tools/#rake-integration
|
37
|
-
RuboCop::RakeTask.new(:rubocop)
|
38
|
-
task.patterns = %w[lib/**/*.rb test/**/*.rb]
|
39
|
-
end
|
40
|
+
RuboCop::RakeTask.new(:rubocop)
|
40
41
|
|
41
42
|
# Run integration test cases
|
42
43
|
Rake::TestTask.new('integration-test') do |task|
|
@@ -48,9 +49,18 @@ end
|
|
48
49
|
|
49
50
|
desc 'generate the pmdtester.gemspec file'
|
50
51
|
task 'hoe:spec' do
|
51
|
-
|
52
|
+
attention_message = '# DO NOT EDIT THIS FILE. Instead, edit Rakefile, and run `rake hoe:spec`.'
|
53
|
+
File.open("#{hoe.name}.gemspec", 'w') do |f|
|
54
|
+
f.puts attention_message
|
55
|
+
f.puts
|
56
|
+
f.write hoe.spec.to_ruby
|
57
|
+
f.puts
|
58
|
+
f.puts attention_message
|
59
|
+
end
|
52
60
|
end
|
53
61
|
|
54
62
|
desc 'verify code quality before committing changes'
|
55
|
-
task 'verify' => ['clean', 'test', 'rubocop', '
|
63
|
+
task 'verify' => ['clean', 'test', 'rubocop', 'git:manifest', 'hoe:spec', 'check_manifest'] do
|
64
|
+
Rake.application.invoke_task('bundler:gemfile[,true]')
|
65
|
+
end
|
56
66
|
# vim: syntax=ruby
|
data/lib/pmdtester.rb
CHANGED
@@ -4,6 +4,7 @@ require 'logger'
|
|
4
4
|
|
5
5
|
require_relative 'pmdtester/cmd'
|
6
6
|
require_relative 'pmdtester/pmd_branch_detail'
|
7
|
+
require_relative 'pmdtester/pmd_configerror'
|
7
8
|
require_relative 'pmdtester/pmd_error'
|
8
9
|
require_relative 'pmdtester/pmd_report_detail'
|
9
10
|
require_relative 'pmdtester/pmd_violation'
|
@@ -12,8 +13,12 @@ require_relative 'pmdtester/report_diff'
|
|
12
13
|
require_relative 'pmdtester/resource_locator'
|
13
14
|
require_relative 'pmdtester/runner'
|
14
15
|
|
16
|
+
require_relative 'pmdtester/builders/simple_progress_logger'
|
15
17
|
require_relative 'pmdtester/builders/html_report_builder'
|
16
18
|
require_relative 'pmdtester/builders/diff_builder'
|
19
|
+
require_relative 'pmdtester/builders/diff_report/violations'
|
20
|
+
require_relative 'pmdtester/builders/diff_report/configerrors'
|
21
|
+
require_relative 'pmdtester/builders/diff_report/errors'
|
17
22
|
require_relative 'pmdtester/builders/diff_report_builder'
|
18
23
|
require_relative 'pmdtester/builders/pmd_report_builder'
|
19
24
|
require_relative 'pmdtester/builders/rule_set_builder'
|
@@ -27,7 +32,9 @@ require_relative 'pmdtester/parsers/projects_parser'
|
|
27
32
|
# and unexpected behaviors will not be introduced to PMD project
|
28
33
|
# after fixing an issue and new rules can work as expected.
|
29
34
|
module PmdTester
|
30
|
-
VERSION = '1.0.0
|
35
|
+
VERSION = '1.0.0'
|
36
|
+
BASE = 'base'
|
37
|
+
PATCH = 'patch'
|
31
38
|
|
32
39
|
def logger
|
33
40
|
PmdTester.logger
|