pmdtester 1.5.5 → 1.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.github/workflows/build-pr.yml +11 -0
- data/.github/workflows/build-release.yml +12 -0
- data/.github/workflows/build-snapshot.yml +17 -0
- data/.github/workflows/build.yml +59 -51
- data/.github/workflows/manual-integration-tests.yml +37 -35
- data/.github/workflows/publish-release.yml +140 -0
- data/.rubocop.yml +2 -1
- data/.rubocop_todo.yml +72 -10
- data/History.md +39 -0
- data/Manifest.txt +5 -4
- data/README.rdoc +28 -16
- data/Rakefile +17 -13
- data/lib/pmdtester/builders/pmd_report_builder.rb +32 -16
- data/lib/pmdtester/builders/project_hasher.rb +2 -2
- data/lib/pmdtester/builders/rule_set_builder.rb +5 -4
- data/lib/pmdtester/builders/simple_progress_logger.rb +1 -0
- data/lib/pmdtester/collection_by_file.rb +1 -1
- data/lib/pmdtester/parsers/options.rb +6 -4
- data/lib/pmdtester/parsers/projects_parser.rb +1 -5
- data/lib/pmdtester/pmd_branch_detail.rb +2 -2
- data/lib/pmdtester/pmd_error.rb +1 -0
- data/lib/pmdtester/pmd_tester_utils.rb +1 -1
- data/lib/pmdtester/project.rb +1 -1
- data/lib/pmdtester/report_diff.rb +1 -1
- data/lib/pmdtester/runner.rb +2 -2
- data/lib/pmdtester.rb +1 -1
- data/pmdtester.gemspec +25 -40
- data/resources/maven-settings.xml +25 -0
- metadata +85 -31
- data/.ci/build.sh +0 -99
- data/.ci/inc/fetch_ci_scripts.bash +0 -19
- data/.ci/manual-integration-tests.sh +0 -37
- data/.ruby-version +0 -1
data/README.rdoc
CHANGED
@@ -4,7 +4,7 @@ home :: https://pmd.github.io
|
|
4
4
|
code :: https://github.com/pmd/pmd-regression-tester
|
5
5
|
bugs :: https://github.com/pmd/pmd-regression-tester/issues
|
6
6
|
|
7
|
-
build-status :: {<img src="https://github.com/pmd/pmd-regression-tester/workflows/build/badge.svg?branch=
|
7
|
+
build-status :: {<img src="https://github.com/pmd/pmd-regression-tester/workflows/build/badge.svg?branch=main" alt="Build Status" />}[https://github.com/pmd/pmd-regression-tester/actions?query=workflow%3Abuild]
|
8
8
|
|
9
9
|
gem-version :: {<img src="https://badge.fury.io/rb/pmdtester.svg" alt="Gem Version" />}[https://rubygems.org/gems/pmdtester]
|
10
10
|
|
@@ -29,9 +29,9 @@ on a list of standard projects(Spring Framework, Hibernate, Solr, etc.)
|
|
29
29
|
-l, --list-of-project path to the file which contains the list of standard projects
|
30
30
|
-m, --mode the mode of the tool: 'local', 'online' or 'single'
|
31
31
|
single: Set this option to 'single' if your patch branch contains changes
|
32
|
-
for any option that can't work on
|
32
|
+
for any option that can't work on main/base branch
|
33
33
|
online: Set this option to 'online' if you want to download
|
34
|
-
the PMD report of
|
34
|
+
the PMD report of main/base branch rather than generating it locally
|
35
35
|
local: Default option is 'local', PMD reports for the base and patch branches are generated locally.
|
36
36
|
|
37
37
|
-t, --threads Sets the number of threads used by PMD. Set threads to 0 to disable multi-threading processing.
|
@@ -49,7 +49,7 @@ on a list of standard projects(Spring Framework, Hibernate, Solr, etc.)
|
|
49
49
|
|
50
50
|
==== Run local mode
|
51
51
|
|
52
|
-
pmdtester -b
|
52
|
+
pmdtester -b main -p YOUR_DEVELOPMENT_BRANCH -r PATH_TO_LOCAL_PMD_REPO -a
|
53
53
|
|
54
54
|
==== Run single mode
|
55
55
|
|
@@ -57,7 +57,7 @@ on a list of standard projects(Spring Framework, Hibernate, Solr, etc.)
|
|
57
57
|
|
58
58
|
==== Run online mode
|
59
59
|
|
60
|
-
pmdtester -b
|
60
|
+
pmdtester -b main -p YOUR_DEVELOPMENT_BRANCH -r PATH_TO_LOCAL_PMD_REPO -m online -a
|
61
61
|
|
62
62
|
=== Output
|
63
63
|
The tool creates the following folders:
|
@@ -101,26 +101,31 @@ The tool creates the following folders:
|
|
101
101
|
|
102
102
|
== REQUIREMENTS:
|
103
103
|
|
104
|
-
* Ruby
|
104
|
+
* Ruby 3.3 or higher
|
105
105
|
|
106
106
|
=== Runtime dependency
|
107
107
|
|
108
|
-
nokogiri ~> 1.
|
109
|
-
slop ~> 4.
|
108
|
+
nokogiri ~> 1.18
|
109
|
+
slop ~> 4.10
|
110
110
|
differ ~> 0.1
|
111
|
-
rufus-scheduler ~> 3.
|
111
|
+
rufus-scheduler ~> 3.9
|
112
112
|
logger-colors ~> 1.0
|
113
|
-
liquid ~> 5.
|
113
|
+
liquid ~> 5.8
|
114
|
+
base64 ~> 0.2
|
115
|
+
bigdecimal ~> 3.1
|
116
|
+
logger ~> 1.6
|
114
117
|
|
115
118
|
=== Development dependency
|
116
119
|
|
120
|
+
hoe ~> 4.2
|
117
121
|
hoe-bundler ~> 1.5
|
118
122
|
hoe-git ~> 1.6
|
119
|
-
minitest ~> 5.
|
120
|
-
mocha ~>
|
121
|
-
rubocop ~>
|
122
|
-
test-unit ~> 3.
|
123
|
-
rdoc ~> 6.
|
123
|
+
minitest ~> 5.25
|
124
|
+
mocha ~> 2.7
|
125
|
+
rubocop ~> 1.74
|
126
|
+
test-unit ~> 3.6
|
127
|
+
rdoc ~> 6.12
|
128
|
+
rake ~> 13.2
|
124
129
|
|
125
130
|
== INSTALL:
|
126
131
|
|
@@ -136,8 +141,15 @@ The tool creates the following folders:
|
|
136
141
|
bundle exec rake verify # run this command before commit your changes
|
137
142
|
bundle exec pmdtester ... # run this to directly execute pmdtester from source
|
138
143
|
|
144
|
+
Run all unit tests:
|
145
|
+
bundle exec rake clean test
|
146
|
+
|
147
|
+
Run all integration tests:
|
148
|
+
bundle exec rake clean integration-test
|
149
|
+
|
139
150
|
Run a single test class, e.g.:
|
140
151
|
bundle exec ruby -I test test/test_project_diff_report.rb
|
152
|
+
bundle exec ruby -I test test/integration_test_runner.rb
|
141
153
|
|
142
154
|
Run a single test, e.g.:
|
143
155
|
bundle exec ruby -I test test/test_project_diff_report.rb -n test_diff_report_builder
|
@@ -152,7 +164,7 @@ The tool creates the following folders:
|
|
152
164
|
* Update History.md and lib/pmdtester.rb for the next development version,
|
153
165
|
run again "bundle exec rake verify"
|
154
166
|
* Commit ("Prepare next development version x.y.z-SNAPSHOT").
|
155
|
-
* Push to
|
167
|
+
* Push to main.
|
156
168
|
* Push the tag. Github Actions will build and publish the new gem
|
157
169
|
* A github release is automatically created, verify it on https://github.com/pmd/pmd-regression-tester/releases
|
158
170
|
* To make pmd's main CI use the new version (in [pmd/pmd](https://github.com/pmd/pmd/)), go to the root directory and run `bundle lock --update`. Commit these changes.
|
data/Rakefile
CHANGED
@@ -18,32 +18,36 @@ hoe = Hoe.spec 'pmdtester' do
|
|
18
18
|
developer 'Binguo Bao', 'djydewang@gmail.com'
|
19
19
|
developer 'Clément Fournier', 'clement.fournier76@gmail.com'
|
20
20
|
|
21
|
-
self.clean_globs = %w[target/reports/**/* target/test/**/* target/dynamic-config.xml
|
21
|
+
self.clean_globs = %w[target/reports/**/* target/test/**/* target/dynamic-config.xml]
|
22
22
|
self.extra_deps += [
|
23
|
-
['nokogiri', '~> 1.
|
24
|
-
['slop', '~> 4.
|
23
|
+
['nokogiri', '~> 1.18'],
|
24
|
+
['slop', '~> 4.10'],
|
25
25
|
['differ', '~> 0.1'],
|
26
|
-
['rufus-scheduler', '~> 3.
|
26
|
+
['rufus-scheduler', '~> 3.9'],
|
27
27
|
['logger-colors', '~> 1.0'],
|
28
|
-
['liquid', '~> 5.
|
28
|
+
['liquid', '~> 5.8'],
|
29
|
+
['base64', '~> 0.3'],
|
30
|
+
['bigdecimal', '~> 3.2'],
|
31
|
+
['logger', '~> 1.7']
|
29
32
|
]
|
30
33
|
self.extra_dev_deps += [
|
31
34
|
['hoe-bundler', '~> 1.5'],
|
32
35
|
['hoe-git', '~> 1.6'],
|
33
|
-
['minitest', '~> 5.
|
34
|
-
['mocha', '~>
|
35
|
-
|
36
|
-
['
|
37
|
-
['
|
38
|
-
['
|
36
|
+
['minitest', '~> 5.25'],
|
37
|
+
['mocha', '~> 2.7'],
|
38
|
+
['rubocop', '~> 1.79'],
|
39
|
+
['test-unit', '~> 3.7'],
|
40
|
+
['rdoc', '~> 6.12'],
|
41
|
+
['rake', '~> 13.3'],
|
42
|
+
['hoe', '~> 4.2'],
|
39
43
|
]
|
40
|
-
spec_extras[:required_ruby_version] = '>=
|
44
|
+
spec_extras[:required_ruby_version] = '>= 3.3'
|
41
45
|
|
42
46
|
license 'BSD-2-Clause'
|
43
47
|
end
|
44
48
|
|
45
49
|
# Refers to
|
46
|
-
#
|
50
|
+
# https://docs.rubocop.org/rubocop/1.60/integration_with_other_tools.html#rake-integration
|
47
51
|
RuboCop::RakeTask.new(:rubocop)
|
48
52
|
|
49
53
|
# Run integration test cases
|
@@ -25,10 +25,13 @@ module PmdTester
|
|
25
25
|
def get_pmd_binary_file
|
26
26
|
logger.info "#{@pmd_branch_name}: Start packaging PMD"
|
27
27
|
Dir.chdir(@local_git_repo) do
|
28
|
-
build_branch_sha = Cmd.execute_successfully("git rev-parse #{@pmd_branch_name}^{commit}")
|
29
|
-
|
30
28
|
checkout_build_branch # needs a clean working tree, otherwise fails
|
31
29
|
|
30
|
+
# first checkout the build branch - that might create a local branch from remote, if
|
31
|
+
# a local branch doesn't exist yet. The following "git rev-parse" command only works
|
32
|
+
# for local branches.
|
33
|
+
build_branch_sha = Cmd.execute_successfully("git rev-parse #{@pmd_branch_name}^{commit}")
|
34
|
+
|
32
35
|
raise "Wrong branch #{get_last_commit_sha}" unless build_branch_sha == get_last_commit_sha
|
33
36
|
|
34
37
|
distro_path = saved_distro_path(build_branch_sha)
|
@@ -37,7 +40,7 @@ module PmdTester
|
|
37
40
|
logger.debug "#{@pmd_branch_name}: distro_path=#{distro_path}"
|
38
41
|
if File.directory?(distro_path)
|
39
42
|
logger.info "#{@pmd_branch_name}: Skipping packaging - saved version exists " \
|
40
|
-
"
|
43
|
+
"in #{distro_path}"
|
41
44
|
else
|
42
45
|
build_pmd(into_dir: distro_path)
|
43
46
|
end
|
@@ -99,7 +102,7 @@ module PmdTester
|
|
99
102
|
"-r #{project.get_pmd_report_path(@pmd_branch_name)} " \
|
100
103
|
"#{fail_on_violation} -t #{@threads} " \
|
101
104
|
"#{auxclasspath_option}" \
|
102
|
-
"#{
|
105
|
+
"#{' --no-progress' if pmd7?}"
|
103
106
|
start_time = Time.now
|
104
107
|
exit_code = nil
|
105
108
|
if File.exist?(project.get_pmd_report_path(@pmd_branch_name))
|
@@ -170,11 +173,11 @@ module PmdTester
|
|
170
173
|
# determine the version
|
171
174
|
@pmd_version = determine_pmd_version
|
172
175
|
|
173
|
-
return unless wd_has_dirty_git_changes
|
176
|
+
return unless wd_has_dirty_git_changes?
|
174
177
|
|
175
178
|
# working dir is dirty....
|
176
179
|
# we don't allow this because we need the SHA to address the zip file
|
177
|
-
logger.error "#{@pmd_branch_name}: Won
|
180
|
+
logger.error "#{@pmd_branch_name}: Won't build without a clean working tree, " \
|
178
181
|
'commit your changes'
|
179
182
|
end
|
180
183
|
|
@@ -186,11 +189,11 @@ module PmdTester
|
|
186
189
|
# e.g. <cwd>/pmd-bin-<version>-<branch>-<sha>
|
187
190
|
def saved_distro_path(build_sha)
|
188
191
|
"#{work_dir}/pmd-bin-#{@pmd_version}" \
|
189
|
-
|
190
|
-
|
192
|
+
"-#{PmdBranchDetail.branch_filename(@pmd_branch_name)}" \
|
193
|
+
"-#{build_sha}"
|
191
194
|
end
|
192
195
|
|
193
|
-
def wd_has_dirty_git_changes
|
196
|
+
def wd_has_dirty_git_changes?
|
194
197
|
!Cmd.execute_successfully('git status --porcelain').empty?
|
195
198
|
end
|
196
199
|
|
@@ -247,13 +250,26 @@ module PmdTester
|
|
247
250
|
|
248
251
|
def build_pmd_with_maven
|
249
252
|
logger.info "#{@pmd_branch_name}: Building PMD #{@pmd_version}..."
|
250
|
-
|
251
|
-
|
252
|
-
|
253
|
-
|
254
|
-
|
255
|
-
|
256
|
-
|
253
|
+
|
254
|
+
package_cmd = if Semver.compare(@pmd_version, '7.14.0') >= 0
|
255
|
+
# build command since PMD migrated to central portal
|
256
|
+
'./mvnw clean package ' \
|
257
|
+
'-PfastSkip ' \
|
258
|
+
'-DskipTests ' \
|
259
|
+
'-T1C -B'
|
260
|
+
else
|
261
|
+
# build command for older PMD versions
|
262
|
+
'./mvnw clean package ' \
|
263
|
+
"-s #{ResourceLocator.resource('maven-settings.xml')} " \
|
264
|
+
'-Pfor-dokka-maven-plugin ' \
|
265
|
+
'-Dmaven.test.skip=true ' \
|
266
|
+
'-Dmaven.javadoc.skip=true ' \
|
267
|
+
'-Dmaven.source.skip=true ' \
|
268
|
+
'-Dcheckstyle.skip=true ' \
|
269
|
+
'-Dpmd.skip=true ' \
|
270
|
+
'-T1C -B'
|
271
|
+
end
|
272
|
+
|
257
273
|
logger.debug "#{@pmd_branch_name}: maven command: #{package_cmd}"
|
258
274
|
Cmd.execute_successfully(package_cmd)
|
259
275
|
end
|
@@ -35,7 +35,7 @@ module PmdTester
|
|
35
35
|
file_ref = filename_index.size
|
36
36
|
filename_index.push(project.get_local_path(file))
|
37
37
|
vs.each do |v|
|
38
|
-
all_vs.push(make_violation_hash(file_ref, v, is_diff))
|
38
|
+
all_vs.push(make_violation_hash(file_ref, v, is_diff: is_diff))
|
39
39
|
end
|
40
40
|
end
|
41
41
|
|
@@ -111,7 +111,7 @@ module PmdTester
|
|
111
111
|
end
|
112
112
|
end
|
113
113
|
|
114
|
-
def make_violation_hash(file_ref, violation, is_diff
|
114
|
+
def make_violation_hash(file_ref, violation, is_diff: true)
|
115
115
|
h = {
|
116
116
|
't' => is_diff ? violation_type(violation) : '+',
|
117
117
|
'l' => violation.line,
|
@@ -9,6 +9,7 @@ module PmdTester
|
|
9
9
|
# Attention: we only consider java rulesets now.
|
10
10
|
class RuleSetBuilder
|
11
11
|
include PmdTester
|
12
|
+
|
12
13
|
PATH_TO_DYNAMIC_CONFIG = 'target/dynamic-config.xml'
|
13
14
|
NO_RULES_CHANGED_MESSAGE = 'No regression tested rules have been changed!'
|
14
15
|
|
@@ -52,7 +53,7 @@ module PmdTester
|
|
52
53
|
end
|
53
54
|
|
54
55
|
logger.info "Using filter based on patch config #{@options.patch_config}: " \
|
55
|
-
|
56
|
+
"#{@options.filter_set}"
|
56
57
|
else
|
57
58
|
# if `rule_refs` is empty, then no filter can be used when comparing to the baseline
|
58
59
|
logger.info 'No filter when comparing patch to baseline'
|
@@ -90,7 +91,7 @@ module PmdTester
|
|
90
91
|
def build_config_file(rule_refs)
|
91
92
|
if rule_refs.empty?
|
92
93
|
logger.debug 'All rules are used. Not generating a dynamic ruleset.'
|
93
|
-
logger.debug "Using the configured/default ruleset base_config=#{@options.base_config} "\
|
94
|
+
logger.debug "Using the configured/default ruleset base_config=#{@options.base_config} " \
|
94
95
|
"patch_config=#{@options.patch_config}"
|
95
96
|
return
|
96
97
|
end
|
@@ -126,7 +127,7 @@ module PmdTester
|
|
126
127
|
categories = Set[]
|
127
128
|
rules = Set[]
|
128
129
|
filenames.each do |filename|
|
129
|
-
matched = check_single_filename(filename, categories, rules)
|
130
|
+
matched = check_single_filename?(filename, categories, rules)
|
130
131
|
regression_test_required = true if matched
|
131
132
|
|
132
133
|
next if matched
|
@@ -140,7 +141,7 @@ module PmdTester
|
|
140
141
|
[regression_test_required, categories, rules]
|
141
142
|
end
|
142
143
|
|
143
|
-
def check_single_filename(filename, categories, rules)
|
144
|
+
def check_single_filename?(filename, categories, rules)
|
144
145
|
logger.debug "Checking #{filename}"
|
145
146
|
|
146
147
|
# matches Java-based rule implementations
|
@@ -10,6 +10,7 @@ module PmdTester
|
|
10
10
|
# command line options
|
11
11
|
class Options
|
12
12
|
include PmdTester
|
13
|
+
|
13
14
|
ANY = 'any'
|
14
15
|
LOCAL = 'local'
|
15
16
|
ONLINE = 'online'
|
@@ -75,9 +76,9 @@ module PmdTester
|
|
75
76
|
mode_message = <<-DOC
|
76
77
|
the mode of the tool: 'local', 'online' or 'single'
|
77
78
|
single: Set this option to 'single' if your patch branch contains changes
|
78
|
-
for any option that can't work on
|
79
|
+
for any option that can't work on main/base branch
|
79
80
|
online: Set this option to 'online' if you want to download
|
80
|
-
the PMD report of
|
81
|
+
the PMD report of main/base branch rather than generating it locally
|
81
82
|
local: Default option is 'local', PMD reports for the base and patch branches are generated locally.
|
82
83
|
DOC
|
83
84
|
|
@@ -95,8 +96,9 @@ module PmdTester
|
|
95
96
|
'path to the file which contains the list of standard projects',
|
96
97
|
default: DEFAULT_LIST_PATH
|
97
98
|
o.string '-m', '--mode', mode_message, default: 'local'
|
98
|
-
o.integer '-t', '--threads',
|
99
|
-
|
99
|
+
o.integer '-t', '--threads',
|
100
|
+
'Sets the number of threads used by PMD. Set threads to 0 to disable ' \
|
101
|
+
'multi-threading processing.', default: 1
|
100
102
|
o.bool '-f', '--html-flag',
|
101
103
|
'whether to not generate the html diff report in single mode'
|
102
104
|
o.bool '-a', '--auto-gen-config',
|
@@ -13,11 +13,7 @@ module PmdTester
|
|
13
13
|
errors = schema.validate(document)
|
14
14
|
raise ProjectsParserException.new(errors), "Schema validate failed: In #{list_file}" unless errors.empty?
|
15
15
|
|
16
|
-
|
17
|
-
document.xpath('//project').each do |project|
|
18
|
-
projects.push(Project.new(project))
|
19
|
-
end
|
20
|
-
projects
|
16
|
+
document.xpath('//project').map { |project| Project.new(project) }
|
21
17
|
end
|
22
18
|
|
23
19
|
def schema_file_path
|
@@ -32,9 +32,9 @@ module PmdTester
|
|
32
32
|
@execution_time = 0
|
33
33
|
# the result of command 'java -version' is going to stderr
|
34
34
|
@jdk_version = Cmd.stderr_of('java -version')
|
35
|
-
@language = ENV
|
35
|
+
@language = ENV.fetch('LANG') # the locale
|
36
36
|
|
37
|
-
prnum = ENV
|
37
|
+
prnum = ENV.fetch(PR_NUM_ENV_VAR, 'false')
|
38
38
|
@pull_request = prnum == 'false' ? nil : prnum
|
39
39
|
end
|
40
40
|
|
data/lib/pmdtester/pmd_error.rb
CHANGED
@@ -19,7 +19,7 @@ module PmdTester
|
|
19
19
|
end
|
20
20
|
|
21
21
|
# Parse the +report_file+ to produce a +Report+.
|
22
|
-
# For the schema of xml reports, refer to
|
22
|
+
# For the schema of xml reports, refer to https://pmd.github.io/schema/report_2_0_0.xsd
|
23
23
|
def parse_pmd_report(report_file, branch, report_details, filter_set = nil)
|
24
24
|
require 'nokogiri'
|
25
25
|
|
data/lib/pmdtester/project.rb
CHANGED
@@ -28,7 +28,7 @@ module PmdTester
|
|
28
28
|
@type = project.at_xpath('type').text
|
29
29
|
@connection = project.at_xpath('connection').text
|
30
30
|
|
31
|
-
@tag = project.at_xpath('tag')&.text || '
|
31
|
+
@tag = project.at_xpath('tag')&.text || 'main'
|
32
32
|
|
33
33
|
webview_url_element = project.at_xpath('webview-url')
|
34
34
|
@webview_url = default_webview_url
|
@@ -211,7 +211,7 @@ module PmdTester
|
|
211
211
|
# Values are lists of violations/errors
|
212
212
|
diffs = base_hash.to_h.merge(patch_hash.to_h) do |_key, base_value, patch_value|
|
213
213
|
# make the difference of values
|
214
|
-
(base_value
|
214
|
+
(base_value + patch_value) - (base_value & patch_value)
|
215
215
|
end
|
216
216
|
|
217
217
|
diffs.delete_if do |_key, value|
|
data/lib/pmdtester/runner.rb
CHANGED
@@ -27,7 +27,7 @@ module PmdTester
|
|
27
27
|
|
28
28
|
def clean
|
29
29
|
clean_target = 'target/reports'
|
30
|
-
FileUtils.
|
30
|
+
FileUtils.rm_rf(clean_target)
|
31
31
|
end
|
32
32
|
|
33
33
|
def run_local_mode
|
@@ -93,7 +93,7 @@ module PmdTester
|
|
93
93
|
|
94
94
|
url = get_baseline_url(url_prefix, zip_filename)
|
95
95
|
logger.info "Downloading baseline for branch #{branch_name} from #{url}"
|
96
|
-
wget_cmd = "wget --timestamping #{url}"
|
96
|
+
wget_cmd = "wget --no-verbose --timestamping #{url}"
|
97
97
|
unzip_cmd = "unzip -qo #{zip_filename}"
|
98
98
|
|
99
99
|
Dir.chdir(target_path) do
|
data/lib/pmdtester.rb
CHANGED
@@ -33,7 +33,7 @@ require_relative 'pmdtester/parsers/projects_parser'
|
|
33
33
|
# and unexpected behaviors will not be introduced to PMD project
|
34
34
|
# after fixing an issue and new rules can work as expected.
|
35
35
|
module PmdTester
|
36
|
-
VERSION = '1.
|
36
|
+
VERSION = '1.6.0'
|
37
37
|
BASE = 'base'
|
38
38
|
PATCH = 'patch'
|
39
39
|
PR_NUM_ENV_VAR = 'PMD_CI_PULL_REQUEST_NUMBER' # see PmdBranchDetail
|
data/pmdtester.gemspec
CHANGED
@@ -1,64 +1,49 @@
|
|
1
1
|
# DO NOT EDIT THIS FILE. Instead, edit Rakefile, and run `rake hoe:spec`.
|
2
2
|
|
3
3
|
# -*- encoding: utf-8 -*-
|
4
|
-
# stub: pmdtester 1.
|
4
|
+
# stub: pmdtester 1.6.0 ruby lib
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = "pmdtester".freeze
|
8
|
-
s.version = "1.
|
8
|
+
s.version = "1.6.0".freeze
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0".freeze) if s.respond_to? :required_rubygems_version=
|
11
11
|
s.metadata = { "bug_tracker_uri" => "https://github.com/pmd/pmd-regression-tester/issues", "homepage_uri" => "https://pmd.github.io", "source_code_uri" => "https://github.com/pmd/pmd-regression-tester" } if s.respond_to? :metadata=
|
12
12
|
s.require_paths = ["lib".freeze]
|
13
13
|
s.authors = ["Andreas Dangel".freeze, "Binguo Bao".freeze, "Cl\u00E9ment Fournier".freeze]
|
14
|
-
s.date = "
|
14
|
+
s.date = "1980-01-02"
|
15
15
|
s.description = "A regression testing tool ensure that new problems and unexpected behaviors will not be introduced to PMD project after fixing an issue , and new rules can work as expected.".freeze
|
16
16
|
s.email = ["andreas.dangel@pmd-code.org".freeze, "djydewang@gmail.com".freeze, "clement.fournier76@gmail.com".freeze]
|
17
17
|
s.executables = ["pmdtester".freeze]
|
18
18
|
s.extra_rdoc_files = ["History.md".freeze, "Manifest.txt".freeze, "README.rdoc".freeze, "resources/js/README.md".freeze]
|
19
|
-
s.files = [".
|
19
|
+
s.files = [".github/workflows/build-pr.yml".freeze, ".github/workflows/build-release.yml".freeze, ".github/workflows/build-snapshot.yml".freeze, ".github/workflows/build.yml".freeze, ".github/workflows/manual-integration-tests.yml".freeze, ".github/workflows/publish-release.yml".freeze, ".gitignore".freeze, ".hoerc".freeze, ".rubocop.yml".freeze, ".rubocop_todo.yml".freeze, "Gemfile".freeze, "History.md".freeze, "LICENSE".freeze, "Manifest.txt".freeze, "README.rdoc".freeze, "Rakefile".freeze, "bin/pmdtester".freeze, "config/all-java.xml".freeze, "config/design.xml".freeze, "config/project-list.xml".freeze, "config/projectlist_1_0_0.xsd".freeze, "config/projectlist_1_1_0.xsd".freeze, "config/projectlist_1_2_0.xsd".freeze, "lib/pmdtester.rb".freeze, "lib/pmdtester/builders/liquid_renderer.rb".freeze, "lib/pmdtester/builders/pmd_report_builder.rb".freeze, "lib/pmdtester/builders/project_builder.rb".freeze, "lib/pmdtester/builders/project_hasher.rb".freeze, "lib/pmdtester/builders/rule_set_builder.rb".freeze, "lib/pmdtester/builders/simple_progress_logger.rb".freeze, "lib/pmdtester/builders/summary_report_builder.rb".freeze, "lib/pmdtester/cmd.rb".freeze, "lib/pmdtester/collection_by_file.rb".freeze, "lib/pmdtester/parsers/options.rb".freeze, "lib/pmdtester/parsers/pmd_report_document.rb".freeze, "lib/pmdtester/parsers/projects_parser.rb".freeze, "lib/pmdtester/pmd_branch_detail.rb".freeze, "lib/pmdtester/pmd_configerror.rb".freeze, "lib/pmdtester/pmd_error.rb".freeze, "lib/pmdtester/pmd_report_detail.rb".freeze, "lib/pmdtester/pmd_tester_utils.rb".freeze, "lib/pmdtester/pmd_violation.rb".freeze, "lib/pmdtester/project.rb".freeze, "lib/pmdtester/report_diff.rb".freeze, "lib/pmdtester/resource_locator.rb".freeze, "lib/pmdtester/runner.rb".freeze, "lib/pmdtester/semver.rb".freeze, "pmdtester.gemspec".freeze, "resources/_includes/diff_pill_row.html".freeze, "resources/css/bootstrap-5.3.0-alpha3.min.css".freeze, "resources/css/datatables.min.css".freeze, "resources/css/pmd-tester.css".freeze, "resources/js/README.md".freeze, "resources/js/bootstrap-5.3.0-alpha3.min.js".freeze, "resources/js/code-snippets.js".freeze, "resources/js/datatables.min.js".freeze, "resources/js/jquery-3.6.4.slim.min.js".freeze, "resources/js/popper-2.11.7.min.js".freeze, "resources/js/project-report.js".freeze, "resources/maven-settings.xml".freeze, "resources/project_diff_report.html".freeze, "resources/project_index.html".freeze, "resources/project_pmd_report.html".freeze]
|
20
20
|
s.homepage = "https://pmd.github.io".freeze
|
21
21
|
s.licenses = ["BSD-2-Clause".freeze]
|
22
22
|
s.rdoc_options = ["--main".freeze, "README.rdoc".freeze]
|
23
|
-
s.required_ruby_version = Gem::Requirement.new(">=
|
24
|
-
s.rubygems_version = "3.
|
23
|
+
s.required_ruby_version = Gem::Requirement.new(">= 3.3".freeze)
|
24
|
+
s.rubygems_version = "3.6.9".freeze
|
25
25
|
s.summary = "A regression testing tool ensure that new problems and unexpected behaviors will not be introduced to PMD project after fixing an issue , and new rules can work as expected.".freeze
|
26
26
|
|
27
|
-
|
28
|
-
s.specification_version = 4
|
29
|
-
end
|
27
|
+
s.specification_version = 4
|
30
28
|
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
s.add_dependency(%q<differ>.freeze, ["~> 0.1"])
|
50
|
-
s.add_dependency(%q<rufus-scheduler>.freeze, ["~> 3.8"])
|
51
|
-
s.add_dependency(%q<logger-colors>.freeze, ["~> 1.0"])
|
52
|
-
s.add_dependency(%q<liquid>.freeze, ["~> 5.4"])
|
53
|
-
s.add_dependency(%q<hoe-bundler>.freeze, ["~> 1.5"])
|
54
|
-
s.add_dependency(%q<hoe-git>.freeze, ["~> 1.6"])
|
55
|
-
s.add_dependency(%q<minitest>.freeze, ["~> 5.16"])
|
56
|
-
s.add_dependency(%q<mocha>.freeze, ["~> 1.16"])
|
57
|
-
s.add_dependency(%q<rubocop>.freeze, ["~> 0.93"])
|
58
|
-
s.add_dependency(%q<test-unit>.freeze, ["~> 3.5"])
|
59
|
-
s.add_dependency(%q<rdoc>.freeze, ["~> 6.4"])
|
60
|
-
s.add_dependency(%q<hoe>.freeze, ["~> 3.26"])
|
61
|
-
end
|
29
|
+
s.add_runtime_dependency(%q<nokogiri>.freeze, ["~> 1.18".freeze])
|
30
|
+
s.add_runtime_dependency(%q<slop>.freeze, ["~> 4.10".freeze])
|
31
|
+
s.add_runtime_dependency(%q<differ>.freeze, ["~> 0.1".freeze])
|
32
|
+
s.add_runtime_dependency(%q<rufus-scheduler>.freeze, ["~> 3.9".freeze])
|
33
|
+
s.add_runtime_dependency(%q<logger-colors>.freeze, ["~> 1.0".freeze])
|
34
|
+
s.add_runtime_dependency(%q<liquid>.freeze, ["~> 5.8".freeze])
|
35
|
+
s.add_runtime_dependency(%q<base64>.freeze, ["~> 0.3".freeze])
|
36
|
+
s.add_runtime_dependency(%q<bigdecimal>.freeze, ["~> 3.2".freeze])
|
37
|
+
s.add_runtime_dependency(%q<logger>.freeze, ["~> 1.7".freeze])
|
38
|
+
s.add_development_dependency(%q<hoe-bundler>.freeze, ["~> 1.5".freeze])
|
39
|
+
s.add_development_dependency(%q<hoe-git>.freeze, ["~> 1.6".freeze])
|
40
|
+
s.add_development_dependency(%q<minitest>.freeze, ["~> 5.25".freeze])
|
41
|
+
s.add_development_dependency(%q<mocha>.freeze, ["~> 2.7".freeze])
|
42
|
+
s.add_development_dependency(%q<rubocop>.freeze, ["~> 1.79".freeze])
|
43
|
+
s.add_development_dependency(%q<test-unit>.freeze, ["~> 3.7".freeze])
|
44
|
+
s.add_development_dependency(%q<rdoc>.freeze, ["~> 6.12".freeze])
|
45
|
+
s.add_development_dependency(%q<rake>.freeze, ["~> 13.3".freeze])
|
46
|
+
s.add_development_dependency(%q<hoe>.freeze, ["~> 4.2".freeze])
|
62
47
|
end
|
63
48
|
|
64
49
|
# DO NOT EDIT THIS FILE. Instead, edit Rakefile, and run `rake hoe:spec`.
|
@@ -0,0 +1,25 @@
|
|
1
|
+
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
2
|
+
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 https://maven.apache.org/xsd/settings-1.0.0.xsd">
|
3
|
+
|
4
|
+
<profiles>
|
5
|
+
<profile>
|
6
|
+
<id>for-dokka-maven-plugin</id>
|
7
|
+
<pluginRepositories>
|
8
|
+
<pluginRepository>
|
9
|
+
<!-- needed for dokka-maven-plugin in pmd-lang-test -->
|
10
|
+
<id>kotlinx-html</id>
|
11
|
+
<name>KotlinxHTML Repository</name>
|
12
|
+
<releases>
|
13
|
+
<enabled>true</enabled>
|
14
|
+
<updatePolicy>never</updatePolicy>
|
15
|
+
</releases>
|
16
|
+
<snapshots>
|
17
|
+
<enabled>false</enabled>
|
18
|
+
</snapshots>
|
19
|
+
<url>https://maven.pkg.jetbrains.space/public/p/kotlinx-html/maven/</url>
|
20
|
+
</pluginRepository>
|
21
|
+
</pluginRepositories>
|
22
|
+
</profile>
|
23
|
+
</profiles>
|
24
|
+
|
25
|
+
</settings>
|