pmdtester 1.5.3 → 1.5.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d64309fafec9b58208385b35297f4096da84511576ea23382e271b8bcf0bfcb0
4
- data.tar.gz: d90d0ab024c076b3e6e13228d1fef303d63a34c1ce97ddb9169d798b94e63dde
3
+ metadata.gz: 0c6c579178746a76cc77dc88dccb3465e0f5aba7133a17f238653497ebfdb037
4
+ data.tar.gz: cdba630126e5e216582dca8b5f7f4e59017e63f573009887fc6e4f51d6a18755
5
5
  SHA512:
6
- metadata.gz: 3201eaf56629cb6e859ded9c3522dc3907f50de3694ab1bdd11256f204e0c0fdd2e8bf5857ed0ee2291c02c257be091e6f36110c7c646d55281b0311ae7e9024
7
- data.tar.gz: 7784defdc77b0c5d3f278232ed8f06e3326f3a17c2632e140b376dc1551640e0e0a35ed0d28770140cc6ed5d99ec96c8464dd92afc54f1a8b64421b15df47b72
6
+ metadata.gz: 129e21d2eb726a05ed2dc1bed919f4557d169356ad7c734fbc5c9be01c15b939381e6bd0aae655f53e3d2beca837bf55b35cf414eee5573fa641d5641d823dca
7
+ data.tar.gz: 312ce6f7d5b28b412b376ce3251739d7c5eacab038f9db3850050e709790087a654dd071421a80d150b2d513337e5c0bc46dad466f57a360c62f3201b54a7db9
data/History.md CHANGED
@@ -1,3 +1,11 @@
1
+ # 1.5.4 / 2023-05-27
2
+
3
+ ## Enhancements
4
+
5
+ * [#118](https://github.com/pmd/pmd-regression-tester/pull/118): Update js libraries
6
+ * [#119](https://github.com/pmd/pmd-regression-tester/pull/119): Update manual integration test for PMD 7
7
+ * [#120](https://github.com/pmd/pmd-regression-tester/pull/120): Support new PMD 7 binary dist filename
8
+
1
9
  # 1.5.3 / 2022-11-25
2
10
 
3
11
  ## Fixed Issues
data/Manifest.txt CHANGED
@@ -47,15 +47,15 @@ lib/pmdtester/runner.rb
47
47
  lib/pmdtester/semver.rb
48
48
  pmdtester.gemspec
49
49
  resources/_includes/diff_pill_row.html
50
- resources/css/bootstrap.min.css
50
+ resources/css/bootstrap-5.3.0-alpha3.min.css
51
51
  resources/css/datatables.min.css
52
52
  resources/css/pmd-tester.css
53
- resources/js/bootstrap.min.js
53
+ resources/js/README.md
54
+ resources/js/bootstrap-5.3.0-alpha3.min.js
54
55
  resources/js/code-snippets.js
55
56
  resources/js/datatables.min.js
56
- resources/js/jquery-3.2.1.slim.min.js
57
- resources/js/jquery.min.js
58
- resources/js/popper.min.js
57
+ resources/js/jquery-3.6.4.slim.min.js
58
+ resources/js/popper-2.11.7.min.js
59
59
  resources/js/project-report.js
60
60
  resources/project_diff_report.html
61
61
  resources/project_index.html
data/README.rdoc CHANGED
@@ -136,10 +136,10 @@ The tool creates the following folders:
136
136
  bundle exec pmdtester ... # run this to directly execute pmdtester from source
137
137
 
138
138
  Run a single test class, e.g.:
139
- bundle exec ruby -I test test/test_diff_report_builder.rb
139
+ bundle exec ruby -I test test/test_project_diff_report.rb
140
140
 
141
141
  Run a single test, e.g.:
142
- bundle exec ruby -I test test/test_diff_report_builder.rb -n test_diff_report_builder
142
+ bundle exec ruby -I test test/test_project_diff_report.rb -n test_diff_report_builder
143
143
 
144
144
  === Releasing
145
145
 
@@ -53,24 +53,19 @@ module PmdTester
53
53
  def build_pmd(into_dir:)
54
54
  # in CI there might have been a build performed already. In that case
55
55
  # we reuse the build result, otherwise we build PMD freshly
56
- pmd_dist_target = "pmd-dist/target/pmd-bin-#{@pmd_version}.zip"
57
- binary_exists = File.exist?(pmd_dist_target)
58
- logger.debug "#{@pmd_branch_name}: Does the file #{pmd_dist_target} exist? #{binary_exists} (cwd: #{Dir.getwd})"
56
+ pmd_dist_target, binary_exists = find_pmd_dist_target
59
57
  if binary_exists
60
58
  # that's a warning, because we don't know, whether this build really
61
59
  # belongs to the current branch or whether it's from a previous branch.
62
60
  # In CI, that's not a problem, because the workspace is always fresh.
63
61
  logger.warn "#{@pmd_branch_name}: Reusing already existing #{pmd_dist_target}"
64
62
  else
65
- logger.info "#{@pmd_branch_name}: Building PMD #{@pmd_version}..."
66
- package_cmd = './mvnw clean package' \
67
- ' -Dmaven.test.skip=true' \
68
- ' -Dmaven.javadoc.skip=true' \
69
- ' -Dmaven.source.skip=true' \
70
- ' -Dcheckstyle.skip=true' \
71
- ' -Dpmd.skip=true' \
72
- ' -T1C -B'
73
- Cmd.execute_successfully(package_cmd)
63
+ build_pmd_with_maven
64
+ pmd_dist_target, binary_exists = find_pmd_dist_target
65
+ unless binary_exists
66
+ logger.error "#{@pmd_branch_name}: Dist zip not found at #{pmd_dist_target}!"
67
+ raise "No Dist zip found at #{pmd_dist_target}"
68
+ end
74
69
  end
75
70
 
76
71
  logger.info "#{@pmd_branch_name}: Extracting the zip"
@@ -96,7 +91,7 @@ module PmdTester
96
91
 
97
92
  def generate_pmd_report(project)
98
93
  error_recovery_options = @error_recovery ? 'PMD_JAVA_OPTS="-Dpmd.error_recovery -ea" ' : ''
99
- fail_on_violation = should_use_long_cli_options? ? '--fail-on-violation false' : '-failOnViolation false'
94
+ fail_on_violation = create_failonviolation_option
100
95
  auxclasspath_option = create_auxclasspath_option(project)
101
96
  pmd_cmd = "#{error_recovery_options}" \
102
97
  "#{determine_run_path} -d #{project.local_source_path} -f xml " \
@@ -213,6 +208,16 @@ module PmdTester
213
208
  auxclasspath_option
214
209
  end
215
210
 
211
+ def create_failonviolation_option
212
+ if pmd7?
213
+ '--no-fail-on-violation'
214
+ elsif should_use_long_cli_options?
215
+ '--fail-on-violation false'
216
+ else
217
+ '-failOnViolation false'
218
+ end
219
+ end
220
+
216
221
  def pmd7?
217
222
  Semver.compare(@pmd_version, '7.0.0-SNAPSHOT') >= 0
218
223
  end
@@ -227,5 +232,30 @@ module PmdTester
227
232
  end
228
233
  run_path
229
234
  end
235
+
236
+ def find_pmd_dist_target
237
+ pmd_dist_target = "pmd-dist/target/pmd-bin-#{@pmd_version}.zip"
238
+ binary_exists = File.exist?(pmd_dist_target)
239
+ logger.debug "#{@pmd_branch_name}: Does the file #{pmd_dist_target} exist? #{binary_exists} (cwd: #{Dir.getwd})"
240
+ unless binary_exists
241
+ pmd_dist_target = "pmd-dist/target/pmd-dist-#{@pmd_version}-bin.zip"
242
+ binary_exists = File.exist?(pmd_dist_target)
243
+ logger.debug "#{@pmd_branch_name}: Does the file #{pmd_dist_target} exist? #{binary_exists} (cwd: #{Dir.getwd})"
244
+ end
245
+ [pmd_dist_target, binary_exists]
246
+ end
247
+
248
+ def build_pmd_with_maven
249
+ 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'
257
+ logger.debug "#{@pmd_branch_name}: maven command: #{package_cmd}"
258
+ Cmd.execute_successfully(package_cmd)
259
+ end
230
260
  end
231
261
  end
data/lib/pmdtester/cmd.rb CHANGED
@@ -30,6 +30,7 @@ module PmdTester
30
30
  stdout, stderr, status = internal_execute(cmd)
31
31
 
32
32
  unless status.success?
33
+ logger.error "Command failed: #{cmd}"
33
34
  logger.error stdout
34
35
  logger.error stderr
35
36
  raise CmdException.new(cmd, stdout, stderr, status)
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.3'
36
+ VERSION = '1.5.4'
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,27 +1,27 @@
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.3 ruby lib
4
+ # stub: pmdtester 1.5.4 ruby lib
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "pmdtester".freeze
8
- s.version = "1.5.3"
8
+ s.version = "1.5.4"
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 = "2022-11-25"
14
+ s.date = "2023-05-27"
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
- s.extra_rdoc_files = ["History.md".freeze, "Manifest.txt".freeze, "README.rdoc".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.min.css".freeze, "resources/css/datatables.min.css".freeze, "resources/css/pmd-tester.css".freeze, "resources/js/bootstrap.min.js".freeze, "resources/js/code-snippets.js".freeze, "resources/js/datatables.min.js".freeze, "resources/js/jquery-3.2.1.slim.min.js".freeze, "resources/js/jquery.min.js".freeze, "resources/js/popper.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]
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]
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
23
  s.required_ruby_version = Gem::Requirement.new(">= 2.7".freeze)
24
- s.rubygems_version = "3.1.4".freeze
24
+ s.rubygems_version = "3.1.6".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
27
  if s.respond_to? :specification_version then
@@ -1,6 +1,6 @@
1
1
 
2
- <span class="pill badge-pill badge-secondary added">+{{h.new}}</span>
3
- <span class="pill badge-pill badge-secondary removed">-{{h.removed}}</span>
2
+ <span class="badge rounded-pill badge-secondary added">+{{h.new}}</span>
3
+ <span class="badge rounded-pill badge-secondary removed">-{{h.removed}}</span>
4
4
  {% if h.changed %}
5
- <span class="pill badge-pill badge-secondary changed">~{{h.changed}}</span>
5
+ <span class="badge rounded-pill badge-secondary changed">~{{h.changed}}</span>
6
6
  {% endif %}