pmdtester 1.0.1 → 1.1.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/.ci/build.sh +91 -0
- data/.ci/files/env.gpg +1 -0
- data/.github/workflows/build.yml +39 -0
- data/.gitignore +9 -0
- data/.hoerc +1 -1
- data/.rubocop.yml +6 -2
- data/.ruby-version +1 -0
- data/History.md +40 -0
- data/Manifest.txt +24 -9
- data/README.rdoc +45 -30
- data/Rakefile +5 -3
- data/config/all-java.xml +1 -1
- data/config/design.xml +1 -1
- data/config/projectlist_1_0_0.xsd +2 -1
- data/config/projectlist_1_1_0.xsd +31 -0
- data/lib/pmdtester.rb +8 -7
- data/lib/pmdtester/builders/liquid_renderer.rb +73 -0
- data/lib/pmdtester/builders/pmd_report_builder.rb +102 -78
- data/lib/pmdtester/builders/project_builder.rb +100 -0
- data/lib/pmdtester/builders/project_hasher.rb +126 -0
- data/lib/pmdtester/builders/rule_set_builder.rb +92 -47
- data/lib/pmdtester/builders/simple_progress_logger.rb +4 -4
- data/lib/pmdtester/builders/summary_report_builder.rb +62 -131
- data/lib/pmdtester/collection_by_file.rb +55 -0
- data/lib/pmdtester/parsers/options.rb +19 -0
- data/lib/pmdtester/parsers/pmd_report_document.rb +74 -29
- data/lib/pmdtester/parsers/projects_parser.rb +2 -4
- data/lib/pmdtester/pmd_branch_detail.rb +29 -19
- data/lib/pmdtester/pmd_configerror.rb +23 -24
- data/lib/pmdtester/pmd_error.rb +34 -34
- data/lib/pmdtester/pmd_report_detail.rb +9 -12
- data/lib/pmdtester/pmd_tester_utils.rb +55 -0
- data/lib/pmdtester/pmd_violation.rb +66 -28
- data/lib/pmdtester/project.rb +21 -48
- data/lib/pmdtester/report_diff.rb +179 -111
- data/lib/pmdtester/resource_locator.rb +4 -0
- data/lib/pmdtester/runner.rb +66 -64
- data/pmdtester.gemspec +27 -36
- data/resources/_includes/diff_pill_row.html +6 -0
- data/resources/css/bootstrap.min.css +7 -0
- data/resources/css/datatables.min.css +36 -0
- data/resources/css/pmd-tester.css +131 -0
- data/resources/js/bootstrap.min.js +7 -0
- data/resources/js/code-snippets.js +66 -0
- data/resources/js/datatables.min.js +726 -0
- data/resources/js/jquery-3.2.1.slim.min.js +4 -0
- data/resources/js/jquery.min.js +2 -0
- data/resources/js/popper.min.js +5 -0
- data/resources/js/project-report.js +136 -0
- data/resources/project_diff_report.html +205 -0
- data/resources/project_index.html +102 -0
- metadata +64 -20
- data/.travis.yml +0 -40
- data/lib/pmdtester/builders/diff_builder.rb +0 -31
- data/lib/pmdtester/builders/diff_report/configerrors.rb +0 -50
- data/lib/pmdtester/builders/diff_report/errors.rb +0 -71
- data/lib/pmdtester/builders/diff_report/violations.rb +0 -77
- data/lib/pmdtester/builders/diff_report_builder.rb +0 -99
- data/lib/pmdtester/builders/html_report_builder.rb +0 -56
- data/resources/css/maven-base.css +0 -155
- data/resources/css/maven-theme.css +0 -171
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e64c3cfe9a13d470c09fee954176bda926c290cf1c518f889cac6ed8581a2ccd
|
4
|
+
data.tar.gz: '091269caea70c24b02b138a6eb1b5292896c7fd7fffe3f3c38c8811dfa951db9'
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 744b359c60b9ac0f8349c0b94ebbd8923f09fdd06aea2ad5d88f8d983ea86f33f9a9105385efc9f553b35690c30dbac8533577a68301ef1ef5700e01964212a1
|
7
|
+
data.tar.gz: 6ee40e8927802f6e70e299629bec1b950feb0c388ced3e74a8982a014d4895f3dd76c04c055e91d4ef9881c037c189c9cfbbafe9cfc252c9a760cf9aaf0c17b0
|
data/.ci/build.sh
ADDED
@@ -0,0 +1,91 @@
|
|
1
|
+
#!/usr/bin/env bash
|
2
|
+
|
3
|
+
set -e
|
4
|
+
|
5
|
+
|
6
|
+
function build_regression_tester() {
|
7
|
+
echo "::group::Install OpenJDK 8+11"
|
8
|
+
install_openjdk 8
|
9
|
+
install_openjdk 11 # last one is the default
|
10
|
+
echo "::endgroup::"
|
11
|
+
|
12
|
+
echo "::group::Install dependencies"
|
13
|
+
gem install bundler
|
14
|
+
bundle config set --local path vendor/bundle
|
15
|
+
bundle install
|
16
|
+
echo "::endgroup::"
|
17
|
+
|
18
|
+
echo "::group::Build with rake"
|
19
|
+
bundle exec rake check_manifest
|
20
|
+
bundle exec rake rubocop
|
21
|
+
bundle exec rake clean test
|
22
|
+
echo "::endgroup::"
|
23
|
+
|
24
|
+
echo "::group::Run Integration Tests"
|
25
|
+
bundle exec rake clean integration-test
|
26
|
+
echo "::endgroup::"
|
27
|
+
|
28
|
+
echo "::group::Build Package"
|
29
|
+
bundle exec rake install_gem
|
30
|
+
bundle exec pmdtester -h
|
31
|
+
echo "::endgroup::"
|
32
|
+
|
33
|
+
# builds on forks or builds for pull requests stop here
|
34
|
+
if [[ "${PMD_CI_REPO}" != "pmd/pmd-regression-tester" || -n "${PMD_CI_PULL_REQUEST_NUMBER}" ]]; then
|
35
|
+
exit 0
|
36
|
+
fi
|
37
|
+
|
38
|
+
# if this is a release build from a tag...
|
39
|
+
if [[ "${PMD_CI_REPO}" == "pmd/pmd-regression-tester" && "${PMD_CI_GIT_REF}" == refs/tags/* ]]; then
|
40
|
+
echo "::group::Publish to rubygems"
|
41
|
+
setup_secrets
|
42
|
+
|
43
|
+
git stash --all
|
44
|
+
gem build pmdtester.gemspec
|
45
|
+
gem push pmdtester-*.gem
|
46
|
+
echo "::endgroup::"
|
47
|
+
fi
|
48
|
+
|
49
|
+
}
|
50
|
+
|
51
|
+
## helper functions
|
52
|
+
|
53
|
+
function install_openjdk() {
|
54
|
+
OPENJDK_VERSION=$1
|
55
|
+
echo "Installing OpenJDK ${OPENJDK_VERSION}"
|
56
|
+
JDK_OS=linux
|
57
|
+
COMPONENTS_TO_STRIP=1 # e.g. openjdk-11.0.3+7/bin/java
|
58
|
+
DOWNLOAD_URL=$(curl --silent -X GET "https://api.adoptopenjdk.net/v3/assets/feature_releases/${OPENJDK_VERSION}/ga?architecture=x64&heap_size=normal&image_type=jdk&jvm_impl=hotspot&os=${JDK_OS}&page=0&page_size=1&project=jdk&sort_method=DEFAULT&sort_order=DESC&vendor=adoptopenjdk" \
|
59
|
+
-H "accept: application/json" \
|
60
|
+
| jq -r ".[0].binaries[0].package.link")
|
61
|
+
OPENJDK_ARCHIVE=$(basename ${DOWNLOAD_URL})
|
62
|
+
CACHE_DIR=${HOME}/.cache/openjdk
|
63
|
+
TARGET_DIR=${HOME}/openjdk${OPENJDK_VERSION}
|
64
|
+
mkdir -p ${CACHE_DIR}
|
65
|
+
mkdir -p ${TARGET_DIR}
|
66
|
+
if [ ! -e ${CACHE_DIR}/${OPENJDK_ARCHIVE} ]; then
|
67
|
+
echo "Downloading from ${DOWNLOAD_URL} to ${CACHE_DIR}"
|
68
|
+
curl --location --output ${CACHE_DIR}/${OPENJDK_ARCHIVE} "${DOWNLOAD_URL}"
|
69
|
+
else
|
70
|
+
echo "Skipped download, file ${CACHE_DIR}/${OPENJDK_ARCHIVE} already exists"
|
71
|
+
fi
|
72
|
+
tar --extract --file ${CACHE_DIR}/${OPENJDK_ARCHIVE} -C ${TARGET_DIR} --strip-components=${COMPONENTS_TO_STRIP}
|
73
|
+
export JAVA_HOME="${TARGET_DIR}"
|
74
|
+
export PATH="${TARGET_DIR}/bin:${PATH}"
|
75
|
+
java -version
|
76
|
+
echo "Java is available at ${TARGET_DIR}"
|
77
|
+
}
|
78
|
+
|
79
|
+
function setup_secrets() {
|
80
|
+
echo "Setting up secrets..."
|
81
|
+
# Required secrets are: GEM_HOST_API_KEY
|
82
|
+
local -r env_file=".ci/files/env"
|
83
|
+
printenv PMD_CI_SECRET_PASSPHRASE | gpg --batch --yes --decrypt \
|
84
|
+
--passphrase-fd 0 \
|
85
|
+
--output ${env_file} ${env_file}.gpg
|
86
|
+
source ${env_file} >/dev/null 2>&1
|
87
|
+
rm ${env_file}
|
88
|
+
}
|
89
|
+
|
90
|
+
|
91
|
+
build_regression_tester
|
data/.ci/files/env.gpg
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
�
|
@@ -0,0 +1,39 @@
|
|
1
|
+
name: build
|
2
|
+
|
3
|
+
on:
|
4
|
+
push:
|
5
|
+
branches: [ master ]
|
6
|
+
tags:
|
7
|
+
- '**'
|
8
|
+
pull_request:
|
9
|
+
branches: [ master ]
|
10
|
+
|
11
|
+
jobs:
|
12
|
+
build:
|
13
|
+
runs-on: ubuntu-latest
|
14
|
+
continue-on-error: false
|
15
|
+
if: ${{ !contains(github.event.head_commit.message, '[skip ci]') }}
|
16
|
+
steps:
|
17
|
+
- uses: actions/checkout@v2
|
18
|
+
- uses: actions/cache@v2
|
19
|
+
with:
|
20
|
+
path: |
|
21
|
+
~/.m2/repository
|
22
|
+
~/.cache
|
23
|
+
vendor/bundle
|
24
|
+
key: ${{ runner.os }}-${{ hashFiles('pmdtester.gemspec') }}
|
25
|
+
restore-keys: |
|
26
|
+
${{ runner.os }}-
|
27
|
+
- name: Set up Ruby
|
28
|
+
uses: ruby/setup-ruby@v1
|
29
|
+
with:
|
30
|
+
ruby-version: 2.7
|
31
|
+
- name: Build
|
32
|
+
run: .ci/build.sh
|
33
|
+
shell: bash
|
34
|
+
env:
|
35
|
+
MAVEN_OPTS: -Dmaven.wagon.httpconnectionManager.ttlSeconds=180 -Dmaven.wagon.http.retryHandler.count=3
|
36
|
+
PMD_CI_SECRET_PASSPHRASE: ${{ secrets.PMD_CI_SECRET_PASSPHRASE }}
|
37
|
+
PMD_CI_REPO: ${{ github.repository }}
|
38
|
+
PMD_CI_PULL_REQUEST_NUMBER: ${{ github.event.pull_request.number }}
|
39
|
+
PMD_CI_GIT_REF: ${{ github.ref }}
|
data/.gitignore
ADDED
data/.hoerc
CHANGED
@@ -1 +1 @@
|
|
1
|
-
exclude: !ruby/regexp /tmp$|\.(git|idea
|
1
|
+
exclude: !ruby/regexp /tmp$|\.(git|idea)\/|\.project|target|test\/|Gemfile\.lock|\.bundle\/|vendor\/bundle|localtests/
|
data/.rubocop.yml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
inherit_from: .rubocop_todo.yml
|
2
2
|
|
3
3
|
AllCops:
|
4
|
-
TargetRubyVersion: 2.
|
4
|
+
TargetRubyVersion: 2.7
|
5
5
|
Include:
|
6
6
|
- 'lib/**/*'
|
7
7
|
- 'test/**/*'
|
@@ -14,12 +14,16 @@ AllCops:
|
|
14
14
|
- 'vendor/**/*'
|
15
15
|
|
16
16
|
Metrics/LineLength:
|
17
|
-
Max:
|
17
|
+
Max: 120
|
18
18
|
|
19
19
|
Metrics/MethodLength:
|
20
20
|
Exclude:
|
21
21
|
- 'lib/pmdtester/parsers/options.rb'
|
22
22
|
|
23
|
+
Metrics/ClassLength:
|
24
|
+
Exclude:
|
25
|
+
- '**/*'
|
26
|
+
|
23
27
|
Metrics/BlockLength:
|
24
28
|
Exclude:
|
25
29
|
- 'lib/pmdtester/parsers/options.rb'
|
data/.ruby-version
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
2.7
|
data/History.md
CHANGED
@@ -1,3 +1,43 @@
|
|
1
|
+
# 1.1.0 / 2020-12-05
|
2
|
+
|
3
|
+
## New and Noteworthy
|
4
|
+
|
5
|
+
* At least ruby 2.7 is required.
|
6
|
+
|
7
|
+
* Typeresolution is now supported by two new tags in the project-list.xml file:
|
8
|
+
`build-command` and `auxclasspath-command`. For details, see pull request [#72](https://github.com/pmd/pmd-regression-tester/pull/72).
|
9
|
+
|
10
|
+
* As part of [#74](https://github.com/pmd/pmd-regression-tester/pull/74) runner now returns a single hash
|
11
|
+
with the summarized values instead of multiple numbers:
|
12
|
+
|
13
|
+
```
|
14
|
+
summary = PmdTester::Runner.new(argv).run
|
15
|
+
puts summary
|
16
|
+
# {:errors=>{:new=>0, :removed=>0}, :violations=>{:new=>0, :removed=>0, :changed=>0}, :configerrors=>{:new=>0, :removed=>0}}
|
17
|
+
```
|
18
|
+
|
19
|
+
* As part of [#73](https://github.com/pmd/pmd-regression-tester/issues/73) and [#78](https://github.com/pmd/pmd-regression-tester/pull/78)
|
20
|
+
a improved HTML report is now generated with the following features:
|
21
|
+
* searchable table for violations with filters by rule/file/kind (added, removed, changed)
|
22
|
+
* summary of changes by rule
|
23
|
+
* code snippets for the violations
|
24
|
+
|
25
|
+
## Fixed Issues
|
26
|
+
|
27
|
+
* [#48](https://github.com/pmd/pmd-regression-tester/issues/48): Support auxclasspath / typeresolution
|
28
|
+
* [#67](https://github.com/pmd/pmd-regression-tester/pull/67): Report contains errors having nil filename
|
29
|
+
* [#68](https://github.com/pmd/pmd-regression-tester/pull/68): Don't generate a dynamic ruleset if not needed
|
30
|
+
* [#69](https://github.com/pmd/pmd-regression-tester/pull/69): Detect single rules with auto-gen-config
|
31
|
+
* [#70](https://github.com/pmd/pmd-regression-tester/pull/70): Add link to PR on github in HTML report
|
32
|
+
* [#73](https://github.com/pmd/pmd-regression-tester/issues/73): Better HTML presentation for diff report
|
33
|
+
* [#74](https://github.com/pmd/pmd-regression-tester/pull/74): Merge violations that have just changed messages
|
34
|
+
* [#75](https://github.com/pmd/pmd-regression-tester/pull/75): Add new option "--error-recovery"
|
35
|
+
* [#76](https://github.com/pmd/pmd-regression-tester/pull/76): Speedup XML parsing
|
36
|
+
* [#79](https://github.com/pmd/pmd-regression-tester/pull/79): Add new configuration option "--baseline-download-url"
|
37
|
+
* [#80](https://github.com/pmd/pmd-regression-tester/pull/80): Cache and reuse pmd builds
|
38
|
+
|
39
|
+
## External Contributions
|
40
|
+
|
1
41
|
# 1.0.1 / 2020-07-08
|
2
42
|
|
3
43
|
This is a bugfix release.
|
data/Manifest.txt
CHANGED
@@ -1,7 +1,11 @@
|
|
1
|
+
.ci/build.sh
|
2
|
+
.ci/files/env.gpg
|
3
|
+
.github/workflows/build.yml
|
4
|
+
.gitignore
|
1
5
|
.hoerc
|
2
6
|
.rubocop.yml
|
3
7
|
.rubocop_todo.yml
|
4
|
-
.
|
8
|
+
.ruby-version
|
5
9
|
Gemfile
|
6
10
|
History.md
|
7
11
|
LICENSE
|
@@ -13,18 +17,17 @@ config/all-java.xml
|
|
13
17
|
config/design.xml
|
14
18
|
config/project-list.xml
|
15
19
|
config/projectlist_1_0_0.xsd
|
20
|
+
config/projectlist_1_1_0.xsd
|
16
21
|
lib/pmdtester.rb
|
17
|
-
lib/pmdtester/builders/
|
18
|
-
lib/pmdtester/builders/diff_report/configerrors.rb
|
19
|
-
lib/pmdtester/builders/diff_report/errors.rb
|
20
|
-
lib/pmdtester/builders/diff_report/violations.rb
|
21
|
-
lib/pmdtester/builders/diff_report_builder.rb
|
22
|
-
lib/pmdtester/builders/html_report_builder.rb
|
22
|
+
lib/pmdtester/builders/liquid_renderer.rb
|
23
23
|
lib/pmdtester/builders/pmd_report_builder.rb
|
24
|
+
lib/pmdtester/builders/project_builder.rb
|
25
|
+
lib/pmdtester/builders/project_hasher.rb
|
24
26
|
lib/pmdtester/builders/rule_set_builder.rb
|
25
27
|
lib/pmdtester/builders/simple_progress_logger.rb
|
26
28
|
lib/pmdtester/builders/summary_report_builder.rb
|
27
29
|
lib/pmdtester/cmd.rb
|
30
|
+
lib/pmdtester/collection_by_file.rb
|
28
31
|
lib/pmdtester/parsers/options.rb
|
29
32
|
lib/pmdtester/parsers/pmd_report_document.rb
|
30
33
|
lib/pmdtester/parsers/projects_parser.rb
|
@@ -32,11 +35,23 @@ lib/pmdtester/pmd_branch_detail.rb
|
|
32
35
|
lib/pmdtester/pmd_configerror.rb
|
33
36
|
lib/pmdtester/pmd_error.rb
|
34
37
|
lib/pmdtester/pmd_report_detail.rb
|
38
|
+
lib/pmdtester/pmd_tester_utils.rb
|
35
39
|
lib/pmdtester/pmd_violation.rb
|
36
40
|
lib/pmdtester/project.rb
|
37
41
|
lib/pmdtester/report_diff.rb
|
38
42
|
lib/pmdtester/resource_locator.rb
|
39
43
|
lib/pmdtester/runner.rb
|
40
44
|
pmdtester.gemspec
|
41
|
-
resources/
|
42
|
-
resources/css/
|
45
|
+
resources/_includes/diff_pill_row.html
|
46
|
+
resources/css/bootstrap.min.css
|
47
|
+
resources/css/datatables.min.css
|
48
|
+
resources/css/pmd-tester.css
|
49
|
+
resources/js/bootstrap.min.js
|
50
|
+
resources/js/code-snippets.js
|
51
|
+
resources/js/datatables.min.js
|
52
|
+
resources/js/jquery-3.2.1.slim.min.js
|
53
|
+
resources/js/jquery.min.js
|
54
|
+
resources/js/popper.min.js
|
55
|
+
resources/js/project-report.js
|
56
|
+
resources/project_diff_report.html
|
57
|
+
resources/project_index.html
|
data/README.rdoc
CHANGED
@@ -4,7 +4,9 @@ home :: https://pmd.github.io
|
|
4
4
|
code :: https://github.com/pmd/pmd-regression-tester
|
5
5
|
bugs :: https://github.com/pmd/pmd-regression-tester/issues
|
6
6
|
|
7
|
-
build-status :: {<img src="https://
|
7
|
+
build-status :: {<img src="https://github.com/pmd/pmd-regression-tester/workflows/build/badge.svg?branch=master" alt="Build Status" />}[https://github.com/pmd/pmd-regression-tester/actions?query=workflow%3Abuild]
|
8
|
+
|
9
|
+
gem-version :: {<img src="https://badge.fury.io/rb/pmdtester.svg" alt="Gem Version" />}[https://rubygems.org/gems/pmdtester]
|
8
10
|
|
9
11
|
== DESCRIPTION:
|
10
12
|
|
@@ -18,24 +20,27 @@ on a list of standard projects(Spring Framework, Hibernate, Solr, etc.)
|
|
18
20
|
== SYNOPSIS:
|
19
21
|
|
20
22
|
=== Options:
|
21
|
-
-r, --local-git-repo
|
22
|
-
-b, --base-branch
|
23
|
-
-p, --patch-branch
|
24
|
-
-bc, --base-config
|
25
|
-
-pc, --patch-config
|
26
|
-
-c, --config
|
27
|
-
-l, --list-of-project
|
28
|
-
-m, --mode
|
23
|
+
-r, --local-git-repo path to the local PMD repository
|
24
|
+
-b, --base-branch name of the base branch in local PMD repository
|
25
|
+
-p, --patch-branch name of the patch branch in local PMD repository
|
26
|
+
-bc, --base-config path to the base PMD configuration file default:PMDTESTER_INSTALLED_DIR/config/all-java.xml
|
27
|
+
-pc, --patch-config path to the patch PMD configuration file default:PMDTESTER_INSTALLED_DIR/config/all-java.xml
|
28
|
+
-c, --config path to the base and patch PMD configuration file
|
29
|
+
-l, --list-of-project path to the file which contains the list of standard projects default:PMDTESTER_INSTALLED_DIR/config/project-list.xml
|
30
|
+
-m, --mode the mode of the tool: 'local', 'online' or 'single'
|
29
31
|
single: Set this option to 'single' if your patch branch contains changes
|
30
32
|
for any option that can't work on master/base branch
|
31
33
|
online: Set this option to 'online' if you want to download
|
32
34
|
the PMD report of master/base branch rather than generating it locally
|
33
35
|
local: Default option is 'local', PMD reports for the base and patch branches are generated locally.
|
34
36
|
|
35
|
-
-t, --threads
|
36
|
-
-f, --html-flag
|
37
|
-
-a, --auto-gen-config
|
38
|
-
-
|
37
|
+
-t, --threads Sets the number of threads used by PMD. Set threads to 0 to disable multi-threading processing. default:1
|
38
|
+
-f, --html-flag whether to not generate the html diff report in single mode
|
39
|
+
-a, --auto-gen-config whether to generate configurations automatically based on branch differences,this option only works in online and local mode
|
40
|
+
--keep-reports whether to keep old reports and skip running PMD again if possible
|
41
|
+
-d, --debug whether change log level to DEBUG to see more information
|
42
|
+
--error-recovery enable error recovery mode when executing PMD. Might help to analyze errors.
|
43
|
+
--baseline-download-url download url prefix from where to download the baseline in online mode default:https://sourceforge.net/projects/pmd/files/pmd-regression-tester/
|
39
44
|
-v, --version
|
40
45
|
-h, --help
|
41
46
|
|
@@ -60,19 +65,24 @@ The tool creates the following folders:
|
|
60
65
|
│ ├── PROJECT_NAME_1
|
61
66
|
│ ├── ......
|
62
67
|
│ └── PROJECT_NAME_n
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
68
|
+
├── reports
|
69
|
+
│ ├── BASE_BRANCH_NAME <- the base baseline is placed here
|
70
|
+
│ ├── PATCH_BRANCH_NAME <- the patch baseline is placed here
|
71
|
+
│ └── diff
|
72
|
+
│ ├── index.html <- the summary report of diff reports
|
73
|
+
│ ├── base_config.xml <- pmd config from the base branch
|
74
|
+
│ ├── patch_config.xml <- pmd config from the patch branch
|
75
|
+
│ ├── css <- css resources are placed here
|
76
|
+
│ ├── js <- js resources
|
77
|
+
│ ├── PROJECT_NAME_1
|
78
|
+
│ │ ├── project_data.js <- contains the violations as js/json
|
79
|
+
│ │ └── index.html <- the diff report of PROJECT_1
|
80
|
+
│ ├── .......
|
81
|
+
│ └── PROJECT_NAME_n
|
82
|
+
│ ├── project_data.js <- contains the violations as js/json
|
83
|
+
│ └── index.xml <- the diff report of PROJECT_N
|
84
|
+
├── pmd-bin-<version>-<branch_name>-<sha1> <- cached pmd builds that are reused
|
85
|
+
└── pmd-bin-....
|
76
86
|
|
77
87
|
==== The baseline format
|
78
88
|
branch_name
|
@@ -90,7 +100,7 @@ The tool creates the following folders:
|
|
90
100
|
|
91
101
|
== REQUIREMENTS:
|
92
102
|
|
93
|
-
* Ruby 2.
|
103
|
+
* Ruby 2.7 or higher
|
94
104
|
|
95
105
|
=== Runtime dependency
|
96
106
|
|
@@ -133,6 +143,11 @@ The tool creates the following folders:
|
|
133
143
|
|
134
144
|
* Update +History.md+ (version and date)
|
135
145
|
* Update +lib/pmdtester.rb+ (version)
|
136
|
-
*
|
137
|
-
*
|
138
|
-
|
146
|
+
* Run "bundle exec rake verify" and add new +pmdtester.gemspec+ (new version)
|
147
|
+
* Commit ("Prepare release x.y.z").
|
148
|
+
* Tag this commit ("git tag vx.y.z").
|
149
|
+
* Update History.md and lib/pmdtester.rb for the next development version,
|
150
|
+
run again "bundle exec rake verify"
|
151
|
+
* Commit ("Prepare next development version x.y.z-SNAPSHOT").
|
152
|
+
* Push to master.
|
153
|
+
* Push the tag. Github Actions will build and publish the new gem
|
data/Rakefile
CHANGED
@@ -16,10 +16,12 @@ hoe = Hoe.spec 'pmdtester' do
|
|
16
16
|
|
17
17
|
developer 'Andreas Dangel', 'andreas.dangel@pmd-code.org'
|
18
18
|
developer 'Binguo Bao', 'djydewang@gmail.com'
|
19
|
+
developer 'Clément Fournier', 'clement.fournier76@gmail.com'
|
19
20
|
|
20
|
-
self.clean_globs = %w[target/reports/**/* target/test/**/* Gemfile.lock]
|
21
|
+
self.clean_globs = %w[target/reports/**/* target/test/**/* target/dynamic-config.xml Gemfile.lock]
|
21
22
|
self.extra_deps += [['nokogiri', '~> 1.8'], ['slop', '~> 4.6'], ['differ', '~> 0.1'],
|
22
|
-
['rufus-scheduler', '~> 3.5']]
|
23
|
+
['rufus-scheduler', '~> 3.5'], ['logger-colors', '~> 1.0'],
|
24
|
+
['liquid', '>= 4.0']]
|
23
25
|
self.extra_dev_deps += [
|
24
26
|
['hoe-bundler', '~> 1.5'],
|
25
27
|
['hoe-git', '~> 1.6'],
|
@@ -30,7 +32,7 @@ hoe = Hoe.spec 'pmdtester' do
|
|
30
32
|
['test-unit', '~> 3.2'],
|
31
33
|
['rdoc', ['>= 4.0', '< 7']]
|
32
34
|
]
|
33
|
-
spec_extras[:required_ruby_version] = '>= 2.
|
35
|
+
spec_extras[:required_ruby_version] = '>= 2.7'
|
34
36
|
|
35
37
|
license 'BSD-2-Clause'
|
36
38
|
end
|
data/config/all-java.xml
CHANGED
@@ -3,7 +3,7 @@
|
|
3
3
|
<ruleset name="All Java Rules"
|
4
4
|
xmlns="http://pmd.sourceforge.net/ruleset/2.0.0"
|
5
5
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
6
|
-
xsi:schemaLocation="http://pmd.sourceforge.net/ruleset/2.0.0
|
6
|
+
xsi:schemaLocation="http://pmd.sourceforge.net/ruleset/2.0.0 https://pmd.sourceforge.io/ruleset_2_0_0.xsd">
|
7
7
|
<description>Every Java Rule in PMD</description>
|
8
8
|
|
9
9
|
<rule ref="category/java/bestpractices.xml" />
|
data/config/design.xml
CHANGED
@@ -3,7 +3,7 @@
|
|
3
3
|
<ruleset name="Design"
|
4
4
|
xmlns="http://pmd.sourceforge.net/ruleset/2.0.0"
|
5
5
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
6
|
-
xsi:schemaLocation="http://pmd.sourceforge.net/ruleset/2.0.0
|
6
|
+
xsi:schemaLocation="http://pmd.sourceforge.net/ruleset/2.0.0 https://pmd.sourceforge.io/ruleset_2_0_0.xsd">
|
7
7
|
|
8
8
|
<description>
|
9
9
|
The Design ruleset contains rules that flag suboptimal code implementations. Alternate approaches
|