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.
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=master" alt="Build Status" />}[https://github.com/pmd/pmd-regression-tester/actions?query=workflow%3Abuild]
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 master/base branch
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 master/base branch rather than generating it locally
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 master -p YOUR_DEVELOPMENT_BRANCH -r PATH_TO_LOCAL_PMD_REPO -a
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 master -p YOUR_DEVELOPMENT_BRANCH -r PATH_TO_LOCAL_PMD_REPO -m online -a
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 2.7 or higher
104
+ * Ruby 3.3 or higher
105
105
 
106
106
  === Runtime dependency
107
107
 
108
- nokogiri ~> 1.13
109
- slop ~> 4.6
108
+ nokogiri ~> 1.18
109
+ slop ~> 4.10
110
110
  differ ~> 0.1
111
- rufus-scheduler ~> 3.8
111
+ rufus-scheduler ~> 3.9
112
112
  logger-colors ~> 1.0
113
- liquid ~> 5.2
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.10
120
- mocha ~> 1.5
121
- rubocop ~> 0.93
122
- test-unit ~> 3.5
123
- rdoc ~> 6.4
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 master.
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 Gemfile.lock]
21
+ self.clean_globs = %w[target/reports/**/* target/test/**/* target/dynamic-config.xml]
22
22
  self.extra_deps += [
23
- ['nokogiri', '~> 1.13'],
24
- ['slop', '~> 4.9'],
23
+ ['nokogiri', '~> 1.18'],
24
+ ['slop', '~> 4.10'],
25
25
  ['differ', '~> 0.1'],
26
- ['rufus-scheduler', '~> 3.8'],
26
+ ['rufus-scheduler', '~> 3.9'],
27
27
  ['logger-colors', '~> 1.0'],
28
- ['liquid', '~> 5.4']
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.16'],
34
- ['mocha', '~> 1.16'],
35
- # use the same version of rubocop as codacy
36
- ['rubocop', '~> 0.93'],
37
- ['test-unit', '~> 3.5'],
38
- ['rdoc', '~> 6.4']
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] = '>= 2.7'
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
- # http://rubocop.readthedocs.io/en/latest/integration_with_other_tools/#rake-integration
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
- " in #{distro_path}"
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
- "#{pmd7? ? ' --no-progress' : ''}"
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\'t build without a clean working tree, " \
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
- "-#{PmdBranchDetail.branch_filename(@pmd_branch_name)}" \
190
- "-#{build_sha}"
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
- package_cmd = './mvnw clean package' \
251
- ' -Dmaven.test.skip=true' \
252
- ' -Dmaven.javadoc.skip=true' \
253
- ' -Dmaven.source.skip=true' \
254
- ' -Dcheckstyle.skip=true' \
255
- ' -Dpmd.skip=true' \
256
- ' -T1C -B'
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 = TRUE)
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
- "#{@options.filter_set}"
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
@@ -6,6 +6,7 @@ module PmdTester
6
6
  # Helper class that provides a simple progress logging
7
7
  class SimpleProgressLogger
8
8
  include PmdTester
9
+
9
10
  def initialize(task_name)
10
11
  @task_name = task_name
11
12
  end
@@ -7,7 +7,7 @@ module PmdTester
7
7
  class CollectionByFile
8
8
  def initialize
9
9
  # a hash of filename -> [list of items]
10
- @hash = Hash.new([])
10
+ @hash = {}
11
11
  @total = 0
12
12
  end
13
13
 
@@ -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 master/base branch
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 master/base branch rather than generating it locally
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', 'Sets the number of threads used by PMD.' \
99
- ' Set threads to 0 to disable multi-threading processing.', default: 1
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
- projects = []
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['LANG'] # the locale
35
+ @language = ENV.fetch('LANG') # the locale
36
36
 
37
- prnum = ENV[PR_NUM_ENV_VAR]
37
+ prnum = ENV.fetch(PR_NUM_ENV_VAR, 'false')
38
38
  @pull_request = prnum == 'false' ? nil : prnum
39
39
  end
40
40
 
@@ -5,6 +5,7 @@ module PmdTester
5
5
  # and which Pmd branch the 'error' is from
6
6
  class PmdError
7
7
  include PmdTester
8
+
8
9
  # The pmd branch type, 'base' or 'patch'
9
10
  attr_reader :branch
10
11
 
@@ -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 http://pmd.sourceforge.net/report_2_0_0.xsd
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
 
@@ -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 || 'master'
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 | patch_value) - (base_value & patch_value)
214
+ (base_value + patch_value) - (base_value & patch_value)
215
215
  end
216
216
 
217
217
  diffs.delete_if do |_key, value|
@@ -27,7 +27,7 @@ module PmdTester
27
27
 
28
28
  def clean
29
29
  clean_target = 'target/reports'
30
- FileUtils.remove_dir(clean_target) if Dir.exist?(clean_target)
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.5.5'
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.5.5 ruby lib
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.5.5"
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 = "2023-11-16"
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 = [".ci/build.sh".freeze, ".ci/inc/fetch_ci_scripts.bash".freeze, ".ci/manual-integration-tests.sh".freeze, ".github/workflows/build.yml".freeze, ".github/workflows/manual-integration-tests.yml".freeze, ".gitignore".freeze, ".hoerc".freeze, ".rubocop.yml".freeze, ".rubocop_todo.yml".freeze, ".ruby-version".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/project_diff_report.html".freeze, "resources/project_index.html".freeze, "resources/project_pmd_report.html".freeze]
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(">= 2.7".freeze)
24
- s.rubygems_version = "3.1.6".freeze
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
- if s.respond_to? :specification_version then
28
- s.specification_version = 4
29
- end
27
+ s.specification_version = 4
30
28
 
31
- if s.respond_to? :add_runtime_dependency then
32
- s.add_runtime_dependency(%q<nokogiri>.freeze, ["~> 1.13"])
33
- s.add_runtime_dependency(%q<slop>.freeze, ["~> 4.9"])
34
- s.add_runtime_dependency(%q<differ>.freeze, ["~> 0.1"])
35
- s.add_runtime_dependency(%q<rufus-scheduler>.freeze, ["~> 3.8"])
36
- s.add_runtime_dependency(%q<logger-colors>.freeze, ["~> 1.0"])
37
- s.add_runtime_dependency(%q<liquid>.freeze, ["~> 5.4"])
38
- s.add_development_dependency(%q<hoe-bundler>.freeze, ["~> 1.5"])
39
- s.add_development_dependency(%q<hoe-git>.freeze, ["~> 1.6"])
40
- s.add_development_dependency(%q<minitest>.freeze, ["~> 5.16"])
41
- s.add_development_dependency(%q<mocha>.freeze, ["~> 1.16"])
42
- s.add_development_dependency(%q<rubocop>.freeze, ["~> 0.93"])
43
- s.add_development_dependency(%q<test-unit>.freeze, ["~> 3.5"])
44
- s.add_development_dependency(%q<rdoc>.freeze, ["~> 6.4"])
45
- s.add_development_dependency(%q<hoe>.freeze, ["~> 3.26"])
46
- else
47
- s.add_dependency(%q<nokogiri>.freeze, ["~> 1.13"])
48
- s.add_dependency(%q<slop>.freeze, ["~> 4.9"])
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>