pmdtester 1.5.1 → 1.5.2

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: 733a4296c7168a518aa22c6fde568d2b3bf966ee99711e17a06dac851605f290
4
- data.tar.gz: 5b900068f5483c479d6184600bcd78c20faf9b83bc9db2bbe12ec2c78d0328cd
3
+ metadata.gz: '09f77b85a868975ac9f52380870bff0daf2d9467f15fe5e8ff02d68399a865a2'
4
+ data.tar.gz: c5a650a352d4fcab5efaf7588bc3774a37a8ddb845031453288527877ad12892
5
5
  SHA512:
6
- metadata.gz: '039f00d21c56f0ae4c59ff5343e40a9ee9361c6514b2ab62e276c81877a3f4a59506639c2ad7c0be2eb0d3e2011698e2e6e16711ee97928519ba685a4dc1d139'
7
- data.tar.gz: 54cce64c7f1e995178a90d0a09da3b1afdf42a62e825fdc74827ef5b9ff453b102fc1e04e8c3ecf2fd797d7981b1079de72f883d849ba87fed1175db03b54e79
6
+ metadata.gz: c45f72e96a6dd7132dd8f207c75c11a7403e6acca9cfa5a345e628d7bc4122f3d4fbc044bca385a63e1360309b452651525a59e3f0afcd5924af5342b92d835a
7
+ data.tar.gz: 595759d8592b99b0264332528df6257ec35ebce98f206c92b08fca7d89935a70f8223cc5d206e5f0e91f48a5b31ca355b4a37c301c53b3877362b9b84a5d8746
@@ -20,8 +20,8 @@ jobs:
20
20
  continue-on-error: false
21
21
  if: ${{ !contains(github.event.head_commit.message, '[skip ci]') }}
22
22
  steps:
23
- - uses: actions/checkout@v2
24
- - uses: actions/cache@v2
23
+ - uses: actions/checkout@v3
24
+ - uses: actions/cache@v3
25
25
  with:
26
26
  path: |
27
27
  ~/.m2/repository
@@ -12,8 +12,8 @@ jobs:
12
12
  runs-on: ubuntu-latest
13
13
  continue-on-error: false
14
14
  steps:
15
- - uses: actions/checkout@v2
16
- - uses: actions/cache@v2
15
+ - uses: actions/checkout@v3
16
+ - uses: actions/cache@v3
17
17
  with:
18
18
  path: |
19
19
  ~/.m2/repository
data/.rubocop.yml CHANGED
@@ -30,3 +30,6 @@ Metrics/BlockLength:
30
30
 
31
31
  Metrics/ModuleLength:
32
32
  CountAsOne: ['array', 'hash']
33
+
34
+ Metrics/ParameterLists:
35
+ CountKeywordArgs: false
data/History.md CHANGED
@@ -1,3 +1,9 @@
1
+ # 1.5.2 / 2022-10-20
2
+
3
+ ## Enhancements
4
+
5
+ * [#114](https://github.com/pmd/pmd-regression-tester/pull/114): Support new PMD 7 CLI interface
6
+
1
7
  # 1.5.1 / 2022-05-12
2
8
 
3
9
  ## Fixed Issues
@@ -96,11 +96,10 @@ module PmdTester
96
96
 
97
97
  def generate_pmd_report(project)
98
98
  error_recovery_options = @error_recovery ? 'PMD_JAVA_OPTS="-Dpmd.error_recovery -ea" ' : ''
99
- run_path = "#{saved_distro_path(@pmd_branch_details.branch_last_sha)}/bin/run.sh"
100
- fail_on_violation = should_use_long_cli_options ? '--fail-on-violation false' : '-failOnViolation false'
99
+ fail_on_violation = should_use_long_cli_options? ? '--fail-on-violation false' : '-failOnViolation false'
101
100
  auxclasspath_option = create_auxclasspath_option(project)
102
101
  pmd_cmd = "#{error_recovery_options}" \
103
- "#{run_path} pmd -d #{project.local_source_path} -f xml " \
102
+ "#{determine_run_path} -d #{project.local_source_path} -f xml " \
104
103
  "-R #{project.get_config_path(@pmd_branch_name)} " \
105
104
  "-r #{project.get_pmd_report_path(@pmd_branch_name)} " \
106
105
  "#{fail_on_violation} -t #{@threads} " \
@@ -149,7 +148,7 @@ module PmdTester
149
148
 
150
149
  PmdReportDetail.create(execution_time: execution_time, timestamp: end_time,
151
150
  exit_code: exit_code, report_info_path: project.get_report_info_path(@pmd_branch_name))
152
- logger.info "#{project.name}'s PMD report was generated successfully"
151
+ logger.info "#{project.name}'s PMD report was generated successfully (exit code: #{exit_code})"
153
152
  end
154
153
 
155
154
  @pmd_branch_details.execution_time = sum_time
@@ -200,7 +199,7 @@ module PmdTester
200
199
  !Cmd.execute_successfully('git status --porcelain').empty?
201
200
  end
202
201
 
203
- def should_use_long_cli_options
202
+ def should_use_long_cli_options?
204
203
  logger.debug "PMD Version: #{@pmd_version}"
205
204
  Semver.compare(@pmd_version, '6.41.0') >= 0
206
205
  end
@@ -208,7 +207,7 @@ module PmdTester
208
207
  def create_auxclasspath_option(project)
209
208
  auxclasspath_option = ''
210
209
  unless project.auxclasspath.empty?
211
- auxclasspath_option = should_use_long_cli_options ? '--aux-classpath ' : '-auxclasspath '
210
+ auxclasspath_option = should_use_long_cli_options? ? '--aux-classpath ' : '-auxclasspath '
212
211
  auxclasspath_option += project.auxclasspath
213
212
  end
214
213
  auxclasspath_option
@@ -217,5 +216,16 @@ module PmdTester
217
216
  def pmd7?
218
217
  Semver.compare(@pmd_version, '7.0.0-SNAPSHOT') >= 0
219
218
  end
219
+
220
+ def determine_run_path
221
+ run_path = "#{saved_distro_path(@pmd_branch_details.branch_last_sha)}/bin"
222
+ run_path = if File.exist?("#{run_path}/pmd")
223
+ # New PMD 7 CLI script (pmd/pmd#4059)
224
+ "#{run_path}/pmd check"
225
+ else
226
+ "#{run_path}/run.sh pmd"
227
+ end
228
+ run_path
229
+ end
220
230
  end
221
231
  end
@@ -30,8 +30,6 @@ module PmdTester
30
30
  attr_reader :fname, :info_url, :line, :old_line, :old_message, :rule_name, :ruleset_name, :language
31
31
  attr_accessor :message
32
32
 
33
- # rubocop:disable Metrics/ParameterLists
34
- # Disable it: how is replacing a long parameter list with a single hash helping?
35
33
  def initialize(branch:, fname:, info_url:, bline:, rule_name:, ruleset_name:)
36
34
  @branch = branch
37
35
  @fname = fname
@@ -49,7 +47,6 @@ module PmdTester
49
47
  @old_message = nil
50
48
  @old_line = nil
51
49
  end
52
- # rubocop:enable Metrics/ParameterLists
53
50
 
54
51
  def line_move?(other)
55
52
  message.eql?(other.message) && (line - other.line).abs <= 5
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.1'
36
+ VERSION = '1.5.2'
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,17 +1,17 @@
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.1 ruby lib
4
+ # stub: pmdtester 1.5.2 ruby lib
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "pmdtester".freeze
8
- s.version = "1.5.1"
8
+ s.version = "1.5.2"
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-05-12"
14
+ s.date = "2022-10-20"
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]
@@ -42,7 +42,7 @@ Gem::Specification.new do |s|
42
42
  s.add_development_dependency(%q<rubocop>.freeze, ["~> 0.93"])
43
43
  s.add_development_dependency(%q<test-unit>.freeze, ["~> 3.5"])
44
44
  s.add_development_dependency(%q<rdoc>.freeze, ["~> 6.4"])
45
- s.add_development_dependency(%q<hoe>.freeze, ["~> 3.23"])
45
+ s.add_development_dependency(%q<hoe>.freeze, ["~> 3.25"])
46
46
  else
47
47
  s.add_dependency(%q<nokogiri>.freeze, ["~> 1.13"])
48
48
  s.add_dependency(%q<slop>.freeze, ["~> 4.6"])
@@ -57,7 +57,7 @@ Gem::Specification.new do |s|
57
57
  s.add_dependency(%q<rubocop>.freeze, ["~> 0.93"])
58
58
  s.add_dependency(%q<test-unit>.freeze, ["~> 3.5"])
59
59
  s.add_dependency(%q<rdoc>.freeze, ["~> 6.4"])
60
- s.add_dependency(%q<hoe>.freeze, ["~> 3.23"])
60
+ s.add_dependency(%q<hoe>.freeze, ["~> 3.25"])
61
61
  end
62
62
  end
63
63
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pmdtester
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.5.1
4
+ version: 1.5.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andreas Dangel
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2022-05-12 00:00:00.000000000 Z
13
+ date: 2022-10-20 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: nokogiri
@@ -200,14 +200,14 @@ dependencies:
200
200
  requirements:
201
201
  - - "~>"
202
202
  - !ruby/object:Gem::Version
203
- version: '3.23'
203
+ version: '3.25'
204
204
  type: :development
205
205
  prerelease: false
206
206
  version_requirements: !ruby/object:Gem::Requirement
207
207
  requirements:
208
208
  - - "~>"
209
209
  - !ruby/object:Gem::Version
210
- version: '3.23'
210
+ version: '3.25'
211
211
  description: A regression testing tool ensure that new problems and unexpected behaviors
212
212
  will not be introduced to PMD project after fixing an issue , and new rules can
213
213
  work as expected.