Releases: xvik/gradle-quality-plugin
Releases · xvik/gradle-quality-plugin
4.2.0
- Fix gradle configuration fail: "Cannot access last() element from an empty List"
(project with explicit quality configuration fails to open in the new IDEA) - Fix concurrent default configs initialization clash (#22)
- Update spotbugs 3.1.12 -> 4.0.1
- Spotbugs classpath changes ("spotbugs" configuration):
- Removed
sl4j-simple
dependency: you will see default slf4j warnings
but everything will work in all cases and will no more fail due to sl4j version class with gradle's own sl4j (#20) asm
7.3.1 is directly specified to force 7.3.1 because otherwise gradle (5.6) downgrades it to 7.2 (which leads to execution fails "no class def found").
- Removed
- Update codenarc 1.4 -> 1.5
- Update codenarc config:
- Disable new rule ImplicitClosureParameter
- Fix codenarc link in console report (docs moved from sourceforge to github)
- Update checkstyle 8.29 -> 8.31
- Update checkstyle rules:
- New rule UnnecessarySemicolonAfterOuterTypeDeclaration
- Disable new rule AvoidDoubleBraceInitialization
- Update NewlineAtEndOfFile
lineSeparator configuration to default (lf_cr_crlf) because rule fixed in 8.30 and now may cause too many violations
- Fix checkstyle link in console report (sourceforge.net changed to sourceforge.io to avoid redirect)
- Update pmd 6.21 -> 6.22
WARNING (spotbugs related):
- If you want to downgrade spotbugs version (with
quality.spotbugsVersion = ..
) then you'll have
to also force correct asm version on spotbugs configuration. - If you need to see spotbugs logs, then manually add
slf4j-simple
dependency to spotbugs configuration.
(normally, spotbugs logs are not important and removing dependency fixes some environments) - If you don't want to see sl4j default warnings then simply put
slf4j-nop
dependency into spotbugs
configuration. I can't do it automatically because I may introduce new sl4j compatibility problems due to incorrect version. - I know, there is a new spotbugs plugin 4.0.5,
but it is conceptually different, so old version would be used for some time. (I tried to upgrade, but it requires time to resolve all issues) - BUT with all this, spotbugs 4 should work without problems for everyone!
4.1.0
- Fix disabled plugin execution with no-tasks gradle run (pure initialization) (#21)
- Update checkstyle 8.26 -> 8.29
- Update checkstyle config:
- Update pmd 6.17.0 -> 6.21.0
- Update pmd config:
- Disabled rule
InvalidSlf4jMessageFormat
name changed toInvalidLogMessageFormat
- Disabled rule
4.0.0
- Gradle 6.0 compatibility
- (breaking) Removed findbugs plugin support because it was removed in gradle 6
- (breaking) Minimal required gradle is now 5.1
- Update spotbugs 3.1.11 -> 3.1.12
- Update com.github.spotbugs plugin: 1.6.5 -> 2.0.1
- Note that plugin group changed: gradle.plugin.com.github.spotbugs -> com.github.spotbugs
- Add spotbugs-related options:
- spotbugsMaxHeapSize setting may be used to increase default spotbugs memory (reduced to 512mb in gradle 5).
Option does not override maxHeapSize manually set on spotbugs task (to not break working builds) (#12) - spotbugsMaxRank setting allows to filter low-ranked rules (ranks are different from priorities!) (#15)
Option modifies excludes.xml file (the only way to apply rank threshold) - spotbugsPlugin shortcut method to simplify plugins declaration (without afterEvaluate block or manual spotbugs plugin declaration)
- spotbugsMaxHeapSize setting may be used to increase default spotbugs memory (reduced to 512mb in gradle 5).
- Spotbugs console report changes:
- Show both rule rank and priority :
[priority 2 / rank 14]
- Identify rules from plugins:
[fb-contrib project | Correctness | FCBL_FIELD_COULD_BE_LOCAL]
- Show both rule rank and priority :
- Update codenarc 1.3 -> 1.4
- Update checkstyle 8.17 -> 8.26
- Update checkstyle config:
- Disable TrailingComment
as not useful and contradicting with PMD suppression syntax (// NOPMD
) - Add new checks:
- Disable new checks:
- Disable TrailingComment
- Update pmd 6.11.0 -> 6.17.0
NOTE: 6.18 or 6.19 can't be used due to regression (should be fixed in 6.20) - Update pmd config:
- Add 1 as allowed "magic number" for AvoidLiteralsInIfCondition
- Disable new rule AvoidUncheckedExceptionsInSignatures
because it produces false positives for implemented interfaces (and generally not useful) - Remove
java.lang.AutoCloseable
in CloseResource rule
because it produces too many false positives
- Add
pmdIncremental
option - shortcut for gradle'spmd.incrementalAnalysis
option. Disabled by default. - Add PMD's CPD tool support through de.aaschmid.cpd plugin. (#4)
- CPD gradle plugin must be applied manually: no automatic plugin enabling
- Sets pmd version and silent mode.
- Sources configured according to quality configuration. Exclusions (source and pattern) are supported too
- Html report generated (using style recommended by pmd; style file added as overridable config)
- Full console report (like for other quality plugins)
- Support for multi-module projects (where cpd plugin applied in root project and quality in subprojects)
- Use gradle configuration avoidance to prevent not used quality tasks creation
- Use compilerArgumentProviders instead of direct options modification (JavaCompile.options.compilerArgs) to workaround
possible immutable list usage in options (#19)
3.4.0
- Fix source files root detection (#13)
- Set spotbugs tasks default heap size to 1g to mimic old behaviour in gradle 5 (#12)
- Update pmd 6.9.0 -> 6.11.0
- Update checkstyle 8.14 -> 8.17
- Update spotbugs 3.1.9 -> 3.1.11
- Update codenarc 1.2.1 -> 1.3
- Update codenarc config:
- Add new ruleset Comments
- Disable new rule ClassStartsWithBlankLine
- Disable new rule ClassEndsWithBlankLine
NOTE com.github.spotbugs plugin not updated to more recent version (1.6.9) because
it breaks gradle 4.0-4.6 compatibility (versions from 1.6.6) and build cache support
3.3.0
- Update pmd config:
- Allow camel cased enum constants for FieldNamingConventions
- Update spotbugs 3.1.6 -> 3.1.9
- Update com.github.spotbugs plugin 1.6.3 -> 1.6.5
- Update checkstyle 8.12 -> 8.14
- Update pmd 6.7.0 -> 6.9.0
3.2.0
3.1.1
3.1.0
- Gradle 4.8 compatibility:
- updated com.github.spotbugs plugin 1.6.1 -> 1.6.2
- fix exclusions support
- Update checkstyle 8.8 -> 8.11
- Update checkstyle config:
- New check LambdaParameterName
- Update pmd 6.1.0 -> 6.5.0
- Update pmd config:
- Disable ClassNamingConventions
- Update spotbugs 3.1.2 -> 3.1.5
- Update codenarc 1.1 -> 1.2
- Update codenarc config:
- Disable new check NoJavaUtilDate
- Option to disable html reports: quality.htmlReports=false (#5)
3.0.0
- Update codenarc 1.0 -> 1.1
- Update checkstyle 8.2 -> 8.8
- Update pmd 5.8.1 -> 6.1.0
- Update pmd config:
- (breaking) All rules reordered according to new groups
- Disable CommentDefaultAccessModifier as not useful
- Disable ExcessiveClassLength
and ExcessiveMethodLength
in favor of new rule NcssCount (which counts lengths without empty lines and comments) - Defaults for NcssCount (which counts length without empty lines and comments) changed:
30 lines for method and 300 for class (with previous Excessive* rules it was 50 and 500 accordingly) - Disable new rule DataClass as too strict for general cases
- Switch from ModifiedCyclomaticComplexity (deprecated) to
CyclomaticComplexity with ignoreBooleanPaths option
- (breaking) use Spotbugs (3.1.2) instead of Findbugs by default (as successor)
- com.github.spotbugs external plugin applied (quality plugin brings it as a dependency)
- Spotbugs plugin will use configs from different folder (spotbugs/), so if custom findbugs configs were used move them to spotbugs/ folder
- Findbugs support is deprecated and will be removed someday (but not soon).
- To use findbugs (as before): disable spotbugs support (quality.spotbugs = false)
or enable findbugs plugin manually (in this case spotbugs plugin will not be registered)
- Update spotbugs exclusions:
- Exclude NP_METHOD_PARAMETER_TIGHTENS_ANNOTATION
check as it prevents @nullable override, which may be required for guava functions - Exclude NP_NULL_ON_SOME_PATH_FROM_RETURN_VALUE
check as misleading and not useful
- Exclude NP_METHOD_PARAMETER_TIGHTENS_ANNOTATION
2.4.0
- Support gradle 4.2 (#3)
- Update checkstyle 8.0 -> 8.2
- Update codenarc 0.27.0 -> 1.0
- Update checkstyle config:
- Move SuppressionCommentFilter inside TreeWalker (8.1 breaking change)
- Remove FileContentsHolder (8.2 breaking change)
- New check AnnotationOnSameLine (added in 8.2) added to config, but disabled