pmdtester 1.5.5 → 1.6.1
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 +152 -0
- data/.rubocop.yml +2 -1
- data/.rubocop_todo.yml +72 -10
- data/History.md +51 -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 +6 -5
- 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 +88 -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,16 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pmdtester
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.6.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Andreas Dangel
|
8
8
|
- Binguo Bao
|
9
9
|
- Clément Fournier
|
10
|
-
autorequire:
|
10
|
+
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date:
|
13
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: nokogiri
|
@@ -18,28 +18,28 @@ dependencies:
|
|
18
18
|
requirements:
|
19
19
|
- - "~>"
|
20
20
|
- !ruby/object:Gem::Version
|
21
|
-
version: '1.
|
21
|
+
version: '1.18'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
24
|
version_requirements: !ruby/object:Gem::Requirement
|
25
25
|
requirements:
|
26
26
|
- - "~>"
|
27
27
|
- !ruby/object:Gem::Version
|
28
|
-
version: '1.
|
28
|
+
version: '1.18'
|
29
29
|
- !ruby/object:Gem::Dependency
|
30
30
|
name: slop
|
31
31
|
requirement: !ruby/object:Gem::Requirement
|
32
32
|
requirements:
|
33
33
|
- - "~>"
|
34
34
|
- !ruby/object:Gem::Version
|
35
|
-
version: '4.
|
35
|
+
version: '4.10'
|
36
36
|
type: :runtime
|
37
37
|
prerelease: false
|
38
38
|
version_requirements: !ruby/object:Gem::Requirement
|
39
39
|
requirements:
|
40
40
|
- - "~>"
|
41
41
|
- !ruby/object:Gem::Version
|
42
|
-
version: '4.
|
42
|
+
version: '4.10'
|
43
43
|
- !ruby/object:Gem::Dependency
|
44
44
|
name: differ
|
45
45
|
requirement: !ruby/object:Gem::Requirement
|
@@ -60,14 +60,14 @@ dependencies:
|
|
60
60
|
requirements:
|
61
61
|
- - "~>"
|
62
62
|
- !ruby/object:Gem::Version
|
63
|
-
version: '3.
|
63
|
+
version: '3.9'
|
64
64
|
type: :runtime
|
65
65
|
prerelease: false
|
66
66
|
version_requirements: !ruby/object:Gem::Requirement
|
67
67
|
requirements:
|
68
68
|
- - "~>"
|
69
69
|
- !ruby/object:Gem::Version
|
70
|
-
version: '3.
|
70
|
+
version: '3.9'
|
71
71
|
- !ruby/object:Gem::Dependency
|
72
72
|
name: logger-colors
|
73
73
|
requirement: !ruby/object:Gem::Requirement
|
@@ -88,14 +88,56 @@ dependencies:
|
|
88
88
|
requirements:
|
89
89
|
- - "~>"
|
90
90
|
- !ruby/object:Gem::Version
|
91
|
-
version: '5.
|
91
|
+
version: '5.8'
|
92
92
|
type: :runtime
|
93
93
|
prerelease: false
|
94
94
|
version_requirements: !ruby/object:Gem::Requirement
|
95
95
|
requirements:
|
96
96
|
- - "~>"
|
97
97
|
- !ruby/object:Gem::Version
|
98
|
-
version: '5.
|
98
|
+
version: '5.8'
|
99
|
+
- !ruby/object:Gem::Dependency
|
100
|
+
name: base64
|
101
|
+
requirement: !ruby/object:Gem::Requirement
|
102
|
+
requirements:
|
103
|
+
- - "~>"
|
104
|
+
- !ruby/object:Gem::Version
|
105
|
+
version: '0.3'
|
106
|
+
type: :runtime
|
107
|
+
prerelease: false
|
108
|
+
version_requirements: !ruby/object:Gem::Requirement
|
109
|
+
requirements:
|
110
|
+
- - "~>"
|
111
|
+
- !ruby/object:Gem::Version
|
112
|
+
version: '0.3'
|
113
|
+
- !ruby/object:Gem::Dependency
|
114
|
+
name: bigdecimal
|
115
|
+
requirement: !ruby/object:Gem::Requirement
|
116
|
+
requirements:
|
117
|
+
- - "~>"
|
118
|
+
- !ruby/object:Gem::Version
|
119
|
+
version: '3.2'
|
120
|
+
type: :runtime
|
121
|
+
prerelease: false
|
122
|
+
version_requirements: !ruby/object:Gem::Requirement
|
123
|
+
requirements:
|
124
|
+
- - "~>"
|
125
|
+
- !ruby/object:Gem::Version
|
126
|
+
version: '3.2'
|
127
|
+
- !ruby/object:Gem::Dependency
|
128
|
+
name: logger
|
129
|
+
requirement: !ruby/object:Gem::Requirement
|
130
|
+
requirements:
|
131
|
+
- - "~>"
|
132
|
+
- !ruby/object:Gem::Version
|
133
|
+
version: '1.7'
|
134
|
+
type: :runtime
|
135
|
+
prerelease: false
|
136
|
+
version_requirements: !ruby/object:Gem::Requirement
|
137
|
+
requirements:
|
138
|
+
- - "~>"
|
139
|
+
- !ruby/object:Gem::Version
|
140
|
+
version: '1.7'
|
99
141
|
- !ruby/object:Gem::Dependency
|
100
142
|
name: hoe-bundler
|
101
143
|
requirement: !ruby/object:Gem::Requirement
|
@@ -130,84 +172,98 @@ dependencies:
|
|
130
172
|
requirements:
|
131
173
|
- - "~>"
|
132
174
|
- !ruby/object:Gem::Version
|
133
|
-
version: '5.
|
175
|
+
version: '5.25'
|
134
176
|
type: :development
|
135
177
|
prerelease: false
|
136
178
|
version_requirements: !ruby/object:Gem::Requirement
|
137
179
|
requirements:
|
138
180
|
- - "~>"
|
139
181
|
- !ruby/object:Gem::Version
|
140
|
-
version: '5.
|
182
|
+
version: '5.25'
|
141
183
|
- !ruby/object:Gem::Dependency
|
142
184
|
name: mocha
|
143
185
|
requirement: !ruby/object:Gem::Requirement
|
144
186
|
requirements:
|
145
187
|
- - "~>"
|
146
188
|
- !ruby/object:Gem::Version
|
147
|
-
version: '
|
189
|
+
version: '2.7'
|
148
190
|
type: :development
|
149
191
|
prerelease: false
|
150
192
|
version_requirements: !ruby/object:Gem::Requirement
|
151
193
|
requirements:
|
152
194
|
- - "~>"
|
153
195
|
- !ruby/object:Gem::Version
|
154
|
-
version: '
|
196
|
+
version: '2.7'
|
155
197
|
- !ruby/object:Gem::Dependency
|
156
198
|
name: rubocop
|
157
199
|
requirement: !ruby/object:Gem::Requirement
|
158
200
|
requirements:
|
159
201
|
- - "~>"
|
160
202
|
- !ruby/object:Gem::Version
|
161
|
-
version: '
|
203
|
+
version: '1.79'
|
162
204
|
type: :development
|
163
205
|
prerelease: false
|
164
206
|
version_requirements: !ruby/object:Gem::Requirement
|
165
207
|
requirements:
|
166
208
|
- - "~>"
|
167
209
|
- !ruby/object:Gem::Version
|
168
|
-
version: '
|
210
|
+
version: '1.79'
|
169
211
|
- !ruby/object:Gem::Dependency
|
170
212
|
name: test-unit
|
171
213
|
requirement: !ruby/object:Gem::Requirement
|
172
214
|
requirements:
|
173
215
|
- - "~>"
|
174
216
|
- !ruby/object:Gem::Version
|
175
|
-
version: '3.
|
217
|
+
version: '3.7'
|
176
218
|
type: :development
|
177
219
|
prerelease: false
|
178
220
|
version_requirements: !ruby/object:Gem::Requirement
|
179
221
|
requirements:
|
180
222
|
- - "~>"
|
181
223
|
- !ruby/object:Gem::Version
|
182
|
-
version: '3.
|
224
|
+
version: '3.7'
|
183
225
|
- !ruby/object:Gem::Dependency
|
184
226
|
name: rdoc
|
185
227
|
requirement: !ruby/object:Gem::Requirement
|
186
228
|
requirements:
|
187
229
|
- - "~>"
|
188
230
|
- !ruby/object:Gem::Version
|
189
|
-
version: '6.
|
231
|
+
version: '6.12'
|
232
|
+
type: :development
|
233
|
+
prerelease: false
|
234
|
+
version_requirements: !ruby/object:Gem::Requirement
|
235
|
+
requirements:
|
236
|
+
- - "~>"
|
237
|
+
- !ruby/object:Gem::Version
|
238
|
+
version: '6.12'
|
239
|
+
- !ruby/object:Gem::Dependency
|
240
|
+
name: rake
|
241
|
+
requirement: !ruby/object:Gem::Requirement
|
242
|
+
requirements:
|
243
|
+
- - "~>"
|
244
|
+
- !ruby/object:Gem::Version
|
245
|
+
version: '13.3'
|
190
246
|
type: :development
|
191
247
|
prerelease: false
|
192
248
|
version_requirements: !ruby/object:Gem::Requirement
|
193
249
|
requirements:
|
194
250
|
- - "~>"
|
195
251
|
- !ruby/object:Gem::Version
|
196
|
-
version: '
|
252
|
+
version: '13.3'
|
197
253
|
- !ruby/object:Gem::Dependency
|
198
254
|
name: hoe
|
199
255
|
requirement: !ruby/object:Gem::Requirement
|
200
256
|
requirements:
|
201
257
|
- - "~>"
|
202
258
|
- !ruby/object:Gem::Version
|
203
|
-
version: '
|
259
|
+
version: '4.2'
|
204
260
|
type: :development
|
205
261
|
prerelease: false
|
206
262
|
version_requirements: !ruby/object:Gem::Requirement
|
207
263
|
requirements:
|
208
264
|
- - "~>"
|
209
265
|
- !ruby/object:Gem::Version
|
210
|
-
version: '
|
266
|
+
version: '4.2'
|
211
267
|
description: A regression testing tool ensure that new problems and unexpected behaviors
|
212
268
|
will not be introduced to PMD project after fixing an issue , and new rules can
|
213
269
|
work as expected.
|
@@ -224,16 +280,16 @@ extra_rdoc_files:
|
|
224
280
|
- README.rdoc
|
225
281
|
- resources/js/README.md
|
226
282
|
files:
|
227
|
-
- ".
|
228
|
-
- ".
|
229
|
-
- ".
|
283
|
+
- ".github/workflows/build-pr.yml"
|
284
|
+
- ".github/workflows/build-release.yml"
|
285
|
+
- ".github/workflows/build-snapshot.yml"
|
230
286
|
- ".github/workflows/build.yml"
|
231
287
|
- ".github/workflows/manual-integration-tests.yml"
|
288
|
+
- ".github/workflows/publish-release.yml"
|
232
289
|
- ".gitignore"
|
233
290
|
- ".hoerc"
|
234
291
|
- ".rubocop.yml"
|
235
292
|
- ".rubocop_todo.yml"
|
236
|
-
- ".ruby-version"
|
237
293
|
- Gemfile
|
238
294
|
- History.md
|
239
295
|
- LICENSE
|
@@ -283,6 +339,7 @@ files:
|
|
283
339
|
- resources/js/jquery-3.6.4.slim.min.js
|
284
340
|
- resources/js/popper-2.11.7.min.js
|
285
341
|
- resources/js/project-report.js
|
342
|
+
- resources/maven-settings.xml
|
286
343
|
- resources/project_diff_report.html
|
287
344
|
- resources/project_index.html
|
288
345
|
- resources/project_pmd_report.html
|
@@ -293,7 +350,7 @@ metadata:
|
|
293
350
|
bug_tracker_uri: https://github.com/pmd/pmd-regression-tester/issues
|
294
351
|
homepage_uri: https://pmd.github.io
|
295
352
|
source_code_uri: https://github.com/pmd/pmd-regression-tester
|
296
|
-
post_install_message:
|
353
|
+
post_install_message:
|
297
354
|
rdoc_options:
|
298
355
|
- "--main"
|
299
356
|
- README.rdoc
|
@@ -303,15 +360,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
303
360
|
requirements:
|
304
361
|
- - ">="
|
305
362
|
- !ruby/object:Gem::Version
|
306
|
-
version: '
|
363
|
+
version: '3.3'
|
307
364
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
308
365
|
requirements:
|
309
366
|
- - ">="
|
310
367
|
- !ruby/object:Gem::Version
|
311
368
|
version: '0'
|
312
369
|
requirements: []
|
313
|
-
rubygems_version: 3.
|
314
|
-
signing_key:
|
370
|
+
rubygems_version: 3.5.22
|
371
|
+
signing_key:
|
315
372
|
specification_version: 4
|
316
373
|
summary: A regression testing tool ensure that new problems and unexpected behaviors
|
317
374
|
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
|