Skip to content

Commit 57d6b75

Browse files
committed
Merge branch 'main' into fix-missing-violations
2 parents 4657173 + 1b20b79 commit 57d6b75

17 files changed

+151
-75
lines changed

History.md

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
# 1.5.6-SNAPSHOT / ????-??-??
1+
# 1.6.0-SNAPSHOT / ????-??-??
22

33
## New and Noteworthy
44

5-
#### New Git default branch - "main"
5+
### New Git default branch - "main"
66

77
We are joining the Git community and updating "master" to "main". Using the term "master" for the main
88
development branch can be offensive to some people. Existing versions of Git have been always capable of
@@ -13,6 +13,10 @@ is "main". Finally, PMD will also use this new name for the main branch in all o
1313
Note: The regression tester will also use branch `main` by default now for fetching repositories from the list of
1414
projects. You might need to add `<tag>master</tag>` for some projects.
1515

16+
### Required Ruby version
17+
18+
With this version, Ruby 3.3 or higher is required.
19+
1620
## Enhancements
1721
* [#123](https://github.com/pmd/pmd-regression-tester/pull/123): Support ruby 3.3.0
1822
* [#125](https://github.com/pmd/pmd-regression-tester/pull/125): Update rubocop configuration
@@ -24,6 +28,11 @@ projects. You might need to add `<tag>master</tag>` for some projects.
2428
* [#131](https://github.com/pmd/pmd-regression-tester/pull/131): Refactor GitHub Actions Workflows
2529
* [#132](https://github.com/pmd/pmd-regression-tester/pull/132): Fix manual integration test - Update expected_patch_config_3.xml: no more plsql exclusion
2630
* [#133](https://github.com/pmd/pmd-regression-tester/pull/133): \[ci] Make build a reuseable workflow
31+
* [#136](https://github.com/pmd/pmd-regression-tester/pull/136): Fix integration tests - missing pmd-core:jar:tests
32+
33+
## Dependency Updates
34+
* [#130](https://github.com/pmd/pmd-regression-tester/pull/130): Update gems and required ruby version
35+
* [#135](https://github.com/pmd/pmd-regression-tester/pull/135): Bump rubocop 1.79
2736

2837
## External Contributions
2938

README.rdoc

Lines changed: 15 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -101,26 +101,31 @@ The tool creates the following folders:
101101

102102
== REQUIREMENTS:
103103

104-
* Ruby 2.7 or higher
104+
* Ruby 3.3 or higher
105105

106106
=== Runtime dependency
107107

108-
nokogiri ~> 1.13
109-
slop ~> 4.6
108+
nokogiri ~> 1.18
109+
slop ~> 4.10
110110
differ ~> 0.1
111-
rufus-scheduler ~> 3.8
111+
rufus-scheduler ~> 3.9
112112
logger-colors ~> 1.0
113-
liquid ~> 5.2
113+
liquid ~> 5.8
114+
base64 ~> 0.2
115+
bigdecimal ~> 3.1
116+
logger ~> 1.6
114117

115118
=== Development dependency
116119

120+
hoe ~> 4.2
117121
hoe-bundler ~> 1.5
118122
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
124129

125130
== INSTALL:
126131

Rakefile

Lines changed: 15 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -20,27 +20,28 @@ hoe = Hoe.spec 'pmdtester' do
2020

2121
self.clean_globs = %w[target/reports/**/* target/test/**/* target/dynamic-config.xml]
2222
self.extra_deps += [
23-
['nokogiri', '~> 1.13'],
24-
['slop', '~> 4.9'],
23+
['nokogiri', '~> 1.18'],
24+
['slop', '~> 4.10'],
2525
['differ', '~> 0.1'],
26-
['rufus-scheduler', '~> 3.8'],
26+
['rufus-scheduler', '~> 3.9'],
2727
['logger-colors', '~> 1.0'],
28-
['liquid', '~> 5.4'],
29-
['base64', '~> 0.2'],
30-
['bigdecimal', '~> 3.1'],
28+
['liquid', '~> 5.8'],
29+
['base64', '~> 0.3'],
30+
['bigdecimal', '~> 3.2'],
31+
['logger', '~> 1.7']
3132
]
3233
self.extra_dev_deps += [
3334
['hoe-bundler', '~> 1.5'],
3435
['hoe-git', '~> 1.6'],
35-
['minitest', '~> 5.16'],
36-
['mocha', '~> 1.16'],
37-
['rubocop', '~> 1.60'],
38-
['test-unit', '~> 3.5'],
39-
['rdoc', '~> 6.4'],
40-
# Pin rake to 13.1.0, which is still compatible with hoe. See https://github.com/seattlerb/hoe/pull/118
41-
['rake', '13.1.0']
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'],
4243
]
43-
spec_extras[:required_ruby_version] = '>= 2.7'
44+
spec_extras[:required_ruby_version] = '>= 3.3'
4445

4546
license 'BSD-2-Clause'
4647
end

lib/pmdtester.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@
3333
# and unexpected behaviors will not be introduced to PMD project
3434
# after fixing an issue and new rules can work as expected.
3535
module PmdTester
36-
VERSION = '1.5.6-SNAPSHOT'
36+
VERSION = '1.6.0-SNAPSHOT'
3737
BASE = 'base'
3838
PATCH = 'patch'
3939
PR_NUM_ENV_VAR = 'PMD_CI_PULL_REQUEST_NUMBER' # see PmdBranchDetail

lib/pmdtester/builders/pmd_report_builder.rb

Lines changed: 23 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,7 @@ def generate_pmd_report(project)
102102
"-r #{project.get_pmd_report_path(@pmd_branch_name)} " \
103103
"#{fail_on_violation} -t #{@threads} " \
104104
"#{auxclasspath_option}" \
105-
"#{pmd7? ? ' --no-progress' : ''}"
105+
"#{' --no-progress' if pmd7?}"
106106
start_time = Time.now
107107
exit_code = nil
108108
if File.exist?(project.get_pmd_report_path(@pmd_branch_name))
@@ -173,7 +173,7 @@ def checkout_build_branch
173173
# determine the version
174174
@pmd_version = determine_pmd_version
175175

176-
return unless wd_has_dirty_git_changes
176+
return unless wd_has_dirty_git_changes?
177177

178178
# working dir is dirty....
179179
# we don't allow this because we need the SHA to address the zip file
@@ -193,7 +193,7 @@ def saved_distro_path(build_sha)
193193
"-#{build_sha}"
194194
end
195195

196-
def wd_has_dirty_git_changes
196+
def wd_has_dirty_git_changes?
197197
!Cmd.execute_successfully('git status --porcelain').empty?
198198
end
199199

@@ -250,15 +250,26 @@ def find_pmd_dist_target
250250

251251
def build_pmd_with_maven
252252
logger.info "#{@pmd_branch_name}: Building PMD #{@pmd_version}..."
253-
package_cmd = './mvnw clean package ' \
254-
"-s #{ResourceLocator.resource('maven-settings.xml')} " \
255-
'-Pfor-dokka-maven-plugin ' \
256-
'-Dmaven.test.skip=true ' \
257-
'-Dmaven.javadoc.skip=true ' \
258-
'-Dmaven.source.skip=true ' \
259-
'-Dcheckstyle.skip=true ' \
260-
'-Dpmd.skip=true ' \
261-
'-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+
262273
logger.debug "#{@pmd_branch_name}: maven command: #{package_cmd}"
263274
Cmd.execute_successfully(package_cmd)
264275
end

lib/pmdtester/builders/rule_set_builder.rb

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ module PmdTester
99
# Attention: we only consider java rulesets now.
1010
class RuleSetBuilder
1111
include PmdTester
12+
1213
PATH_TO_DYNAMIC_CONFIG = 'target/dynamic-config.xml'
1314
NO_RULES_CHANGED_MESSAGE = 'No regression tested rules have been changed!'
1415

@@ -126,7 +127,7 @@ def determine_categories_rules(filenames)
126127
categories = Set[]
127128
rules = Set[]
128129
filenames.each do |filename|
129-
matched = check_single_filename(filename, categories, rules)
130+
matched = check_single_filename?(filename, categories, rules)
130131
regression_test_required = true if matched
131132

132133
next if matched
@@ -140,7 +141,7 @@ def determine_categories_rules(filenames)
140141
[regression_test_required, categories, rules]
141142
end
142143

143-
def check_single_filename(filename, categories, rules)
144+
def check_single_filename?(filename, categories, rules)
144145
logger.debug "Checking #{filename}"
145146

146147
# matches Java-based rule implementations

lib/pmdtester/builders/simple_progress_logger.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ module PmdTester
66
# Helper class that provides a simple progress logging
77
class SimpleProgressLogger
88
include PmdTester
9+
910
def initialize(task_name)
1011
@task_name = task_name
1112
end

lib/pmdtester/parsers/options.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ class InvalidModeError < StandardError; end
1010
# command line options
1111
class Options
1212
include PmdTester
13+
1314
ANY = 'any'
1415
LOCAL = 'local'
1516
ONLINE = 'online'

lib/pmdtester/pmd_error.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ module PmdTester
55
# and which Pmd branch the 'error' is from
66
class PmdError
77
include PmdTester
8+
89
# The pmd branch type, 'base' or 'patch'
910
attr_reader :branch
1011

pmdtester.gemspec

Lines changed: 18 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,17 @@
11
# DO NOT EDIT THIS FILE. Instead, edit Rakefile, and run `rake hoe:spec`.
22

33
# -*- encoding: utf-8 -*-
4-
# stub: pmdtester 1.5.6.pre.SNAPSHOT ruby lib
4+
# stub: pmdtester 1.6.0.pre.SNAPSHOT ruby lib
55

66
Gem::Specification.new do |s|
77
s.name = "pmdtester".freeze
8-
s.version = "1.5.6.pre.SNAPSHOT".freeze
8+
s.version = "1.6.0.pre.SNAPSHOT".freeze
99

1010
s.required_rubygems_version = Gem::Requirement.new(">= 0".freeze) if s.respond_to? :required_rubygems_version=
1111
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=
1212
s.require_paths = ["lib".freeze]
1313
s.authors = ["Andreas Dangel".freeze, "Binguo Bao".freeze, "Cl\u00E9ment Fournier".freeze]
14-
s.date = "2025-05-15"
14+
s.date = "2025-07-24"
1515
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
1616
s.email = ["[email protected]".freeze, "[email protected]".freeze, "[email protected]".freeze]
1717
s.executables = ["pmdtester".freeze]
@@ -20,29 +20,30 @@ Gem::Specification.new do |s|
2020
s.homepage = "https://pmd.github.io".freeze
2121
s.licenses = ["BSD-2-Clause".freeze]
2222
s.rdoc_options = ["--main".freeze, "README.rdoc".freeze]
23-
s.required_ruby_version = Gem::Requirement.new(">= 2.7".freeze)
23+
s.required_ruby_version = Gem::Requirement.new(">= 3.3".freeze)
2424
s.rubygems_version = "3.6.2".freeze
2525
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
2626

2727
s.specification_version = 4
2828

29-
s.add_runtime_dependency(%q<nokogiri>.freeze, ["~> 1.13".freeze])
30-
s.add_runtime_dependency(%q<slop>.freeze, ["~> 4.9".freeze])
29+
s.add_runtime_dependency(%q<nokogiri>.freeze, ["~> 1.18".freeze])
30+
s.add_runtime_dependency(%q<slop>.freeze, ["~> 4.10".freeze])
3131
s.add_runtime_dependency(%q<differ>.freeze, ["~> 0.1".freeze])
32-
s.add_runtime_dependency(%q<rufus-scheduler>.freeze, ["~> 3.8".freeze])
32+
s.add_runtime_dependency(%q<rufus-scheduler>.freeze, ["~> 3.9".freeze])
3333
s.add_runtime_dependency(%q<logger-colors>.freeze, ["~> 1.0".freeze])
34-
s.add_runtime_dependency(%q<liquid>.freeze, ["~> 5.4".freeze])
35-
s.add_runtime_dependency(%q<base64>.freeze, ["~> 0.2".freeze])
36-
s.add_runtime_dependency(%q<bigdecimal>.freeze, ["~> 3.1".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])
3738
s.add_development_dependency(%q<hoe-bundler>.freeze, ["~> 1.5".freeze])
3839
s.add_development_dependency(%q<hoe-git>.freeze, ["~> 1.6".freeze])
39-
s.add_development_dependency(%q<minitest>.freeze, ["~> 5.16".freeze])
40-
s.add_development_dependency(%q<mocha>.freeze, ["~> 1.16".freeze])
41-
s.add_development_dependency(%q<rubocop>.freeze, ["~> 1.60".freeze])
42-
s.add_development_dependency(%q<test-unit>.freeze, ["~> 3.5".freeze])
43-
s.add_development_dependency(%q<rdoc>.freeze, ["~> 6.4".freeze])
44-
s.add_development_dependency(%q<rake>.freeze, ["= 13.1.0".freeze])
45-
s.add_development_dependency(%q<hoe>.freeze, ["~> 3.26".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])
4647
end
4748

4849
# DO NOT EDIT THIS FILE. Instead, edit Rakefile, and run `rake hoe:spec`.

0 commit comments

Comments
 (0)