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
metadata
CHANGED
@@ -1,16 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pmdtester
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.6.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Andreas Dangel
|
8
8
|
- Binguo Bao
|
9
9
|
- Clément Fournier
|
10
|
-
autorequire:
|
11
10
|
bindir: bin
|
12
11
|
cert_chain: []
|
13
|
-
date:
|
12
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
14
13
|
dependencies:
|
15
14
|
- !ruby/object:Gem::Dependency
|
16
15
|
name: nokogiri
|
@@ -18,28 +17,28 @@ dependencies:
|
|
18
17
|
requirements:
|
19
18
|
- - "~>"
|
20
19
|
- !ruby/object:Gem::Version
|
21
|
-
version: '1.
|
20
|
+
version: '1.18'
|
22
21
|
type: :runtime
|
23
22
|
prerelease: false
|
24
23
|
version_requirements: !ruby/object:Gem::Requirement
|
25
24
|
requirements:
|
26
25
|
- - "~>"
|
27
26
|
- !ruby/object:Gem::Version
|
28
|
-
version: '1.
|
27
|
+
version: '1.18'
|
29
28
|
- !ruby/object:Gem::Dependency
|
30
29
|
name: slop
|
31
30
|
requirement: !ruby/object:Gem::Requirement
|
32
31
|
requirements:
|
33
32
|
- - "~>"
|
34
33
|
- !ruby/object:Gem::Version
|
35
|
-
version: '4.
|
34
|
+
version: '4.10'
|
36
35
|
type: :runtime
|
37
36
|
prerelease: false
|
38
37
|
version_requirements: !ruby/object:Gem::Requirement
|
39
38
|
requirements:
|
40
39
|
- - "~>"
|
41
40
|
- !ruby/object:Gem::Version
|
42
|
-
version: '4.
|
41
|
+
version: '4.10'
|
43
42
|
- !ruby/object:Gem::Dependency
|
44
43
|
name: differ
|
45
44
|
requirement: !ruby/object:Gem::Requirement
|
@@ -60,14 +59,14 @@ dependencies:
|
|
60
59
|
requirements:
|
61
60
|
- - "~>"
|
62
61
|
- !ruby/object:Gem::Version
|
63
|
-
version: '3.
|
62
|
+
version: '3.9'
|
64
63
|
type: :runtime
|
65
64
|
prerelease: false
|
66
65
|
version_requirements: !ruby/object:Gem::Requirement
|
67
66
|
requirements:
|
68
67
|
- - "~>"
|
69
68
|
- !ruby/object:Gem::Version
|
70
|
-
version: '3.
|
69
|
+
version: '3.9'
|
71
70
|
- !ruby/object:Gem::Dependency
|
72
71
|
name: logger-colors
|
73
72
|
requirement: !ruby/object:Gem::Requirement
|
@@ -88,14 +87,56 @@ dependencies:
|
|
88
87
|
requirements:
|
89
88
|
- - "~>"
|
90
89
|
- !ruby/object:Gem::Version
|
91
|
-
version: '5.
|
90
|
+
version: '5.8'
|
92
91
|
type: :runtime
|
93
92
|
prerelease: false
|
94
93
|
version_requirements: !ruby/object:Gem::Requirement
|
95
94
|
requirements:
|
96
95
|
- - "~>"
|
97
96
|
- !ruby/object:Gem::Version
|
98
|
-
version: '5.
|
97
|
+
version: '5.8'
|
98
|
+
- !ruby/object:Gem::Dependency
|
99
|
+
name: base64
|
100
|
+
requirement: !ruby/object:Gem::Requirement
|
101
|
+
requirements:
|
102
|
+
- - "~>"
|
103
|
+
- !ruby/object:Gem::Version
|
104
|
+
version: '0.3'
|
105
|
+
type: :runtime
|
106
|
+
prerelease: false
|
107
|
+
version_requirements: !ruby/object:Gem::Requirement
|
108
|
+
requirements:
|
109
|
+
- - "~>"
|
110
|
+
- !ruby/object:Gem::Version
|
111
|
+
version: '0.3'
|
112
|
+
- !ruby/object:Gem::Dependency
|
113
|
+
name: bigdecimal
|
114
|
+
requirement: !ruby/object:Gem::Requirement
|
115
|
+
requirements:
|
116
|
+
- - "~>"
|
117
|
+
- !ruby/object:Gem::Version
|
118
|
+
version: '3.2'
|
119
|
+
type: :runtime
|
120
|
+
prerelease: false
|
121
|
+
version_requirements: !ruby/object:Gem::Requirement
|
122
|
+
requirements:
|
123
|
+
- - "~>"
|
124
|
+
- !ruby/object:Gem::Version
|
125
|
+
version: '3.2'
|
126
|
+
- !ruby/object:Gem::Dependency
|
127
|
+
name: logger
|
128
|
+
requirement: !ruby/object:Gem::Requirement
|
129
|
+
requirements:
|
130
|
+
- - "~>"
|
131
|
+
- !ruby/object:Gem::Version
|
132
|
+
version: '1.7'
|
133
|
+
type: :runtime
|
134
|
+
prerelease: false
|
135
|
+
version_requirements: !ruby/object:Gem::Requirement
|
136
|
+
requirements:
|
137
|
+
- - "~>"
|
138
|
+
- !ruby/object:Gem::Version
|
139
|
+
version: '1.7'
|
99
140
|
- !ruby/object:Gem::Dependency
|
100
141
|
name: hoe-bundler
|
101
142
|
requirement: !ruby/object:Gem::Requirement
|
@@ -130,84 +171,98 @@ dependencies:
|
|
130
171
|
requirements:
|
131
172
|
- - "~>"
|
132
173
|
- !ruby/object:Gem::Version
|
133
|
-
version: '5.
|
174
|
+
version: '5.25'
|
134
175
|
type: :development
|
135
176
|
prerelease: false
|
136
177
|
version_requirements: !ruby/object:Gem::Requirement
|
137
178
|
requirements:
|
138
179
|
- - "~>"
|
139
180
|
- !ruby/object:Gem::Version
|
140
|
-
version: '5.
|
181
|
+
version: '5.25'
|
141
182
|
- !ruby/object:Gem::Dependency
|
142
183
|
name: mocha
|
143
184
|
requirement: !ruby/object:Gem::Requirement
|
144
185
|
requirements:
|
145
186
|
- - "~>"
|
146
187
|
- !ruby/object:Gem::Version
|
147
|
-
version: '
|
188
|
+
version: '2.7'
|
148
189
|
type: :development
|
149
190
|
prerelease: false
|
150
191
|
version_requirements: !ruby/object:Gem::Requirement
|
151
192
|
requirements:
|
152
193
|
- - "~>"
|
153
194
|
- !ruby/object:Gem::Version
|
154
|
-
version: '
|
195
|
+
version: '2.7'
|
155
196
|
- !ruby/object:Gem::Dependency
|
156
197
|
name: rubocop
|
157
198
|
requirement: !ruby/object:Gem::Requirement
|
158
199
|
requirements:
|
159
200
|
- - "~>"
|
160
201
|
- !ruby/object:Gem::Version
|
161
|
-
version: '
|
202
|
+
version: '1.79'
|
162
203
|
type: :development
|
163
204
|
prerelease: false
|
164
205
|
version_requirements: !ruby/object:Gem::Requirement
|
165
206
|
requirements:
|
166
207
|
- - "~>"
|
167
208
|
- !ruby/object:Gem::Version
|
168
|
-
version: '
|
209
|
+
version: '1.79'
|
169
210
|
- !ruby/object:Gem::Dependency
|
170
211
|
name: test-unit
|
171
212
|
requirement: !ruby/object:Gem::Requirement
|
172
213
|
requirements:
|
173
214
|
- - "~>"
|
174
215
|
- !ruby/object:Gem::Version
|
175
|
-
version: '3.
|
216
|
+
version: '3.7'
|
176
217
|
type: :development
|
177
218
|
prerelease: false
|
178
219
|
version_requirements: !ruby/object:Gem::Requirement
|
179
220
|
requirements:
|
180
221
|
- - "~>"
|
181
222
|
- !ruby/object:Gem::Version
|
182
|
-
version: '3.
|
223
|
+
version: '3.7'
|
183
224
|
- !ruby/object:Gem::Dependency
|
184
225
|
name: rdoc
|
185
226
|
requirement: !ruby/object:Gem::Requirement
|
186
227
|
requirements:
|
187
228
|
- - "~>"
|
188
229
|
- !ruby/object:Gem::Version
|
189
|
-
version: '6.
|
230
|
+
version: '6.12'
|
231
|
+
type: :development
|
232
|
+
prerelease: false
|
233
|
+
version_requirements: !ruby/object:Gem::Requirement
|
234
|
+
requirements:
|
235
|
+
- - "~>"
|
236
|
+
- !ruby/object:Gem::Version
|
237
|
+
version: '6.12'
|
238
|
+
- !ruby/object:Gem::Dependency
|
239
|
+
name: rake
|
240
|
+
requirement: !ruby/object:Gem::Requirement
|
241
|
+
requirements:
|
242
|
+
- - "~>"
|
243
|
+
- !ruby/object:Gem::Version
|
244
|
+
version: '13.3'
|
190
245
|
type: :development
|
191
246
|
prerelease: false
|
192
247
|
version_requirements: !ruby/object:Gem::Requirement
|
193
248
|
requirements:
|
194
249
|
- - "~>"
|
195
250
|
- !ruby/object:Gem::Version
|
196
|
-
version: '
|
251
|
+
version: '13.3'
|
197
252
|
- !ruby/object:Gem::Dependency
|
198
253
|
name: hoe
|
199
254
|
requirement: !ruby/object:Gem::Requirement
|
200
255
|
requirements:
|
201
256
|
- - "~>"
|
202
257
|
- !ruby/object:Gem::Version
|
203
|
-
version: '
|
258
|
+
version: '4.2'
|
204
259
|
type: :development
|
205
260
|
prerelease: false
|
206
261
|
version_requirements: !ruby/object:Gem::Requirement
|
207
262
|
requirements:
|
208
263
|
- - "~>"
|
209
264
|
- !ruby/object:Gem::Version
|
210
|
-
version: '
|
265
|
+
version: '4.2'
|
211
266
|
description: A regression testing tool ensure that new problems and unexpected behaviors
|
212
267
|
will not be introduced to PMD project after fixing an issue , and new rules can
|
213
268
|
work as expected.
|
@@ -224,16 +279,16 @@ extra_rdoc_files:
|
|
224
279
|
- README.rdoc
|
225
280
|
- resources/js/README.md
|
226
281
|
files:
|
227
|
-
- ".
|
228
|
-
- ".
|
229
|
-
- ".
|
282
|
+
- ".github/workflows/build-pr.yml"
|
283
|
+
- ".github/workflows/build-release.yml"
|
284
|
+
- ".github/workflows/build-snapshot.yml"
|
230
285
|
- ".github/workflows/build.yml"
|
231
286
|
- ".github/workflows/manual-integration-tests.yml"
|
287
|
+
- ".github/workflows/publish-release.yml"
|
232
288
|
- ".gitignore"
|
233
289
|
- ".hoerc"
|
234
290
|
- ".rubocop.yml"
|
235
291
|
- ".rubocop_todo.yml"
|
236
|
-
- ".ruby-version"
|
237
292
|
- Gemfile
|
238
293
|
- History.md
|
239
294
|
- LICENSE
|
@@ -283,6 +338,7 @@ files:
|
|
283
338
|
- resources/js/jquery-3.6.4.slim.min.js
|
284
339
|
- resources/js/popper-2.11.7.min.js
|
285
340
|
- resources/js/project-report.js
|
341
|
+
- resources/maven-settings.xml
|
286
342
|
- resources/project_diff_report.html
|
287
343
|
- resources/project_index.html
|
288
344
|
- resources/project_pmd_report.html
|
@@ -293,7 +349,6 @@ metadata:
|
|
293
349
|
bug_tracker_uri: https://github.com/pmd/pmd-regression-tester/issues
|
294
350
|
homepage_uri: https://pmd.github.io
|
295
351
|
source_code_uri: https://github.com/pmd/pmd-regression-tester
|
296
|
-
post_install_message:
|
297
352
|
rdoc_options:
|
298
353
|
- "--main"
|
299
354
|
- README.rdoc
|
@@ -303,15 +358,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
303
358
|
requirements:
|
304
359
|
- - ">="
|
305
360
|
- !ruby/object:Gem::Version
|
306
|
-
version: '
|
361
|
+
version: '3.3'
|
307
362
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
308
363
|
requirements:
|
309
364
|
- - ">="
|
310
365
|
- !ruby/object:Gem::Version
|
311
366
|
version: '0'
|
312
367
|
requirements: []
|
313
|
-
rubygems_version: 3.
|
314
|
-
signing_key:
|
368
|
+
rubygems_version: 3.6.9
|
315
369
|
specification_version: 4
|
316
370
|
summary: A regression testing tool ensure that new problems and unexpected behaviors
|
317
371
|
will not be introduced to PMD project after fixing an issue , and new rules can
|
data/.ci/build.sh
DELETED
@@ -1,99 +0,0 @@
|
|
1
|
-
#!/usr/bin/env bash
|
2
|
-
|
3
|
-
# Exit this script immediately if a command/function exits with a non-zero status.
|
4
|
-
set -e
|
5
|
-
|
6
|
-
SCRIPT_INCLUDES="log.bash utils.bash setup-secrets.bash openjdk.bash github-releases-api.bash"
|
7
|
-
# shellcheck source=inc/fetch_ci_scripts.bash
|
8
|
-
source "$(dirname "$0")/inc/fetch_ci_scripts.bash" && fetch_ci_scripts
|
9
|
-
|
10
|
-
function build() {
|
11
|
-
pmd_ci_log_group_start "Install OpenJDK 8+11"
|
12
|
-
pmd_ci_openjdk_install_adoptium 11
|
13
|
-
pmd_ci_openjdk_install_adoptium 8
|
14
|
-
pmd_ci_openjdk_setdefault 11
|
15
|
-
pmd_ci_log_group_end
|
16
|
-
|
17
|
-
pmd_ci_log_group_start "Install dependencies"
|
18
|
-
gem install --user-install bundler
|
19
|
-
bundle config set --local path vendor/bundle
|
20
|
-
bundle install
|
21
|
-
pmd_ci_log_group_end
|
22
|
-
|
23
|
-
echo
|
24
|
-
local version
|
25
|
-
version="$(bundle exec ruby -I. -e 'require "lib/pmdtester"; print PmdTester::VERSION;')"
|
26
|
-
pmd_ci_log_info "======================================================================="
|
27
|
-
pmd_ci_log_info "Building pmd-regression-tester ${version}"
|
28
|
-
pmd_ci_log_info "======================================================================="
|
29
|
-
pmd_ci_utils_determine_build_env pmd/pmd-regression-tester
|
30
|
-
echo
|
31
|
-
|
32
|
-
pmd_ci_log_group_start "Build with rake"
|
33
|
-
bundle exec rake check_manifest
|
34
|
-
bundle exec rake rubocop
|
35
|
-
bundle exec rake clean test
|
36
|
-
pmd_ci_log_group_end
|
37
|
-
|
38
|
-
pmd_ci_log_group_start "Run Integration Tests"
|
39
|
-
bundle exec rake clean integration-test
|
40
|
-
pmd_ci_log_group_end
|
41
|
-
|
42
|
-
pmd_ci_log_group_start "Build Package"
|
43
|
-
bundle exec rake install_gem
|
44
|
-
bundle exec pmdtester -h
|
45
|
-
pmd_ci_log_group_end
|
46
|
-
|
47
|
-
if pmd_ci_utils_is_fork_or_pull_request; then
|
48
|
-
# builds on forks or builds for pull requests stop here
|
49
|
-
exit 0
|
50
|
-
fi
|
51
|
-
|
52
|
-
# only builds on pmd/pmd-regression-tester continue here
|
53
|
-
pmd_ci_log_group_start "Setup environment"
|
54
|
-
pmd_ci_setup_secrets_private_env
|
55
|
-
pmd_ci_log_group_end
|
56
|
-
|
57
|
-
if isReleaseBuild "$version"; then
|
58
|
-
pmd_ci_log_group_start "Publish to rubygems"
|
59
|
-
gem build pmdtester.gemspec
|
60
|
-
local gempkgfile
|
61
|
-
gempkgfile="$(echo pmdtester-*.gem)"
|
62
|
-
gem push "${gempkgfile}"
|
63
|
-
pmd_ci_log_group_end
|
64
|
-
|
65
|
-
pmd_ci_log_group_start "Update Github Releases"
|
66
|
-
# create a draft github release
|
67
|
-
pmd_ci_gh_releases_createDraftRelease "${PMD_CI_TAG}" "$(git rev-list -n 1 "${PMD_CI_TAG}")"
|
68
|
-
GH_RELEASE="$RESULT"
|
69
|
-
|
70
|
-
# Deploy to github releases
|
71
|
-
pmd_ci_gh_releases_uploadAsset "$GH_RELEASE" "${gempkgfile}"
|
72
|
-
|
73
|
-
# extract the release notes
|
74
|
-
RELEASE_NAME="${version}"
|
75
|
-
BEGIN_LINE=$(grep -n "^# " History.md|head -1|cut -d ":" -f 1)
|
76
|
-
BEGIN_LINE=$((BEGIN_LINE + 1))
|
77
|
-
END_LINE=$(grep -n "^# " History.md|head -2|tail -1|cut -d ":" -f 1)
|
78
|
-
END_LINE=$((END_LINE - 1))
|
79
|
-
RELEASE_BODY="$(head -$END_LINE History.md | tail -$((END_LINE - BEGIN_LINE)))"
|
80
|
-
|
81
|
-
pmd_ci_gh_releases_updateRelease "$GH_RELEASE" "$RELEASE_NAME" "$RELEASE_BODY"
|
82
|
-
|
83
|
-
# Publish release - this sends out notifications on github
|
84
|
-
pmd_ci_gh_releases_publishRelease "$GH_RELEASE"
|
85
|
-
pmd_ci_log_group_end
|
86
|
-
fi
|
87
|
-
}
|
88
|
-
|
89
|
-
function isReleaseBuild() {
|
90
|
-
local version="$1"
|
91
|
-
|
92
|
-
if [[ "${version}" != *-SNAPSHOT && "${PMD_CI_TAG}" != "" ]]; then
|
93
|
-
return 0
|
94
|
-
fi
|
95
|
-
|
96
|
-
return 1
|
97
|
-
}
|
98
|
-
|
99
|
-
build
|
@@ -1,19 +0,0 @@
|
|
1
|
-
#!/usr/bin/env bash
|
2
|
-
|
3
|
-
function fetch_ci_scripts() {
|
4
|
-
local inc_dir
|
5
|
-
local inc_url
|
6
|
-
inc_dir="$(dirname "$0")/inc"
|
7
|
-
inc_url="${PMD_CI_SCRIPTS_URL:-https://raw.githubusercontent.com/pmd/build-tools/master/scripts}/inc"
|
8
|
-
|
9
|
-
mkdir -p "${inc_dir}"
|
10
|
-
|
11
|
-
for f in ${SCRIPT_INCLUDES}; do
|
12
|
-
if [ ! -e "${inc_dir}/$f" ]; then
|
13
|
-
curl -sSL "${inc_url}/$f" > "${inc_dir}/$f"
|
14
|
-
fi
|
15
|
-
[ "$PMD_CI_DEBUG" = "true" ] && echo "loading ${inc_dir}/$f in ${MODULE:-$0}"
|
16
|
-
# shellcheck source=/dev/null
|
17
|
-
source "${inc_dir}/$f" || exit 1
|
18
|
-
done
|
19
|
-
}
|
@@ -1,37 +0,0 @@
|
|
1
|
-
#!/usr/bin/env bash
|
2
|
-
|
3
|
-
# Exit this script immediately if a command/function exits with a non-zero status.
|
4
|
-
set -e
|
5
|
-
|
6
|
-
SCRIPT_INCLUDES="log.bash utils.bash openjdk.bash"
|
7
|
-
# shellcheck source=inc/fetch_ci_scripts.bash
|
8
|
-
source "$(dirname "$0")/inc/fetch_ci_scripts.bash" && fetch_ci_scripts
|
9
|
-
|
10
|
-
function build() {
|
11
|
-
pmd_ci_log_group_start "Install OpenJDK 8+11"
|
12
|
-
pmd_ci_openjdk_install_adoptium 11
|
13
|
-
pmd_ci_openjdk_install_adoptium 8
|
14
|
-
pmd_ci_openjdk_setdefault 11
|
15
|
-
pmd_ci_log_group_end
|
16
|
-
|
17
|
-
pmd_ci_log_group_start "Install dependencies"
|
18
|
-
gem install --user-install bundler
|
19
|
-
bundle config set --local path vendor/bundle
|
20
|
-
bundle install
|
21
|
-
pmd_ci_log_group_end
|
22
|
-
|
23
|
-
echo
|
24
|
-
local version
|
25
|
-
version="$(bundle exec ruby -I. -e 'require "lib/pmdtester"; print PmdTester::VERSION;')"
|
26
|
-
pmd_ci_log_info "======================================================================="
|
27
|
-
pmd_ci_log_info "Building pmd-regression-tester ${version}"
|
28
|
-
pmd_ci_log_info "======================================================================="
|
29
|
-
pmd_ci_utils_determine_build_env pmd/pmd-regression-tester
|
30
|
-
echo
|
31
|
-
|
32
|
-
pmd_ci_log_group_start "Run Manual Integration Tests"
|
33
|
-
bundle exec ruby -I test test/manual_integration_tests.rb
|
34
|
-
pmd_ci_log_group_end
|
35
|
-
}
|
36
|
-
|
37
|
-
build
|
data/.ruby-version
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
2.7
|