[pmd-devel] [ANNOUNCE] PMD 6.28.0 Released
A source code analyzer
Brought to you by:
adangel,
juansotuyo
|
From: Andreas D. <and...@pm...> - 2020-09-26 09:08:42
|
* Downloads: https://github.com/pmd/pmd/releases/tag/pmd_releases%2F6.28.0 * Documentation: https://pmd.github.io/pmd-6.28.0/ 26-September-2020 - 6.28.0 The PMD team is pleased to announce PMD 6.28.0. This is a minor release. Table Of Contents * New and noteworthy <https://sourceforge.net/p/pmd/news/2020/09/pmd-6280-released/#new-and-noteworthy> o CPD's AnyTokenizer has been improved <https://sourceforge.net/p/pmd/news/2020/09/pmd-6280-released/#cpd's-anytokenizer-has-been-improved> * Fixed Issues <https://sourceforge.net/p/pmd/news/2020/09/pmd-6280-released/#fixed-issues> * API Changes <https://sourceforge.net/p/pmd/news/2020/09/pmd-6280-released/#api-changes> o Deprecated API <https://sourceforge.net/p/pmd/news/2020/09/pmd-6280-released/#deprecated-api> + For removal <https://sourceforge.net/p/pmd/news/2020/09/pmd-6280-released/#for-removal> * External Contributions <https://sourceforge.net/p/pmd/news/2020/09/pmd-6280-released/#external-contributions> * Stats <https://sourceforge.net/p/pmd/news/2020/09/pmd-6280-released/#stats> New and noteworthy CPD's AnyTokenizer has been improved The AnyTokenizer is used for languages, that don't have an own lexer/grammar based tokenizer. AnyTokenizer now handles string literals and end-of-line comments. Fortran, Perl and Ruby have been updated to use AnyTokenizer instead of their old custom tokenizer based on AbstractTokenizer. See #2758 <https://github.com/pmd/pmd/pull/2758> for details. AbstractTokenizer and the custom tokenizers of Fortran, Perl and Ruby are deprecated now. Fixed Issues * cpd o #2758 <https://github.com/pmd/pmd/pull/2758>: [cpd] Improve AnyTokenizer o #2760 <https://github.com/pmd/pmd/issues/2760>: [cpd] AnyTokenizer doesn't count columns correctly * apex-security o #2774 <https://github.com/pmd/pmd/issues/2774>: [apex] ApexSharingViolations does not correlate sharing settings with class that contains data access * java o #2738 <https://github.com/pmd/pmd/issues/2738>: [java] Custom rule with @ExhaustiveEnumSwitch throws NPE o #2755 <https://github.com/pmd/pmd/issues/2755>: [java] [6.27.0] Exception applying rule CloseResource on file ... java.lang.NullPointerException o #2756 <https://github.com/pmd/pmd/issues/2756>: [java] TypeTestUtil fails with NPE for anonymous class o #2767 <https://github.com/pmd/pmd/issues/2767>: [java] IndexOutOfBoundsException when parsing an initializer BlockStatement o #2783 <https://github.com/pmd/pmd/issues/2783>: [java] Error while parsing with lambda of custom interface * java-bestpractices o #2759 <https://github.com/pmd/pmd/issues/2759>: [java] False positive in UnusedAssignment * java-design o #2708 <https://github.com/pmd/pmd/issues/2708>: [java] False positive FinalFieldCouldBeStatic when using lombok Builder.Default API Changes Deprecated API For removal * |net.sourceforge.pmd.RuleViolationComparator| <https://docs.pmd-code.org/apidocs/pmd-core/6.28.0/net/sourceforge/pmd/RuleViolationComparator.html#>. Use |RuleViolation#DEFAULT_COMPARATOR| <https://docs.pmd-code.org/apidocs/pmd-core/6.28.0/net/sourceforge/pmd/RuleViolation.html#DEFAULT_COMPARATOR> instead. * |net.sourceforge.pmd.cpd.AbstractTokenizer| <https://docs.pmd-code.org/apidocs/pmd-core/6.28.0/net/sourceforge/pmd/cpd/AbstractTokenizer.html#>. Use |net.sourceforge.pmd.cpd.AnyTokenizer| <https://docs.pmd-code.org/apidocs/pmd-core/6.28.0/net/sourceforge/pmd/cpd/AnyTokenizer.html#> instead. * |net.sourceforge.pmd.cpd.FortranTokenizer| <https://docs.pmd-code.org/apidocs/pmd-fortran/6.28.0/net/sourceforge/pmd/cpd/FortranTokenizer.html#>. Was replaced by an |AnyTokenizer| <https://docs.pmd-code.org/apidocs/pmd-core/6.28.0/net/sourceforge/pmd/cpd/AnyTokenizer.html#>. Use |FortranLanguage#getTokenizer| <https://docs.pmd-code.org/apidocs/pmd-fortran/6.28.0/net/sourceforge/pmd/cpd/FortranLanguage.html#getTokenizer()> anyway. * |net.sourceforge.pmd.cpd.PerlTokenizer| <https://docs.pmd-code.org/apidocs/pmd-perl/6.28.0/net/sourceforge/pmd/cpd/PerlTokenizer.html#>. Was replaced by an |AnyTokenizer| <https://docs.pmd-code.org/apidocs/pmd-core/6.28.0/net/sourceforge/pmd/cpd/AnyTokenizer.html#>. Use |PerlLanguage#getTokenizer| <https://docs.pmd-code.org/apidocs/pmd-perl/6.28.0/net/sourceforge/pmd/cpd/PerlLanguage.html#getTokenizer()> anyway. * |net.sourceforge.pmd.cpd.RubyTokenizer| <https://docs.pmd-code.org/apidocs/pmd-ruby/6.28.0/net/sourceforge/pmd/cpd/RubyTokenizer.html#>. Was replaced by an |AnyTokenizer| <https://docs.pmd-code.org/apidocs/pmd-core/6.28.0/net/sourceforge/pmd/cpd/AnyTokenizer.html#>. Use |RubyLanguage#getTokenizer| <https://docs.pmd-code.org/apidocs/pmd-ruby/6.28.0/net/sourceforge/pmd/cpd/RubyLanguage.html#getTokenizer()> anyway. * |RuleReference#getOverriddenLanguage| <https://docs.pmd-code.org/apidocs/pmd-core/6.28.0/net/sourceforge/pmd/lang/rule/RuleReference.html#getOverriddenLanguage()> and |RuleReference#setLanguage| <https://docs.pmd-code.org/apidocs/pmd-core/6.28.0/net/sourceforge/pmd/lang/rule/RuleReference.html#setLanguage(net.sourceforge.pmd.lang.Language)> * Antlr4 generated lexers: o |net.sourceforge.pmd.lang.cs.antlr4.CSharpLexer| <https://docs.pmd-code.org/apidocs/pmd-cs/6.28.0/net/sourceforge/pmd/lang/cs/antlr4/CSharpLexer.html#> will be moved to package |net.sourceforge.pmd.lang.cs.ast| with PMD 7. o |net.sourceforge.pmd.lang.dart.antlr4.Dart2Lexer| <https://docs.pmd-code.org/apidocs/pmd-dart/6.28.0/net/sourceforge/pmd/lang/dart/antlr4/Dart2Lexer.html#> will be renamed to |DartLexer| and moved to package |net.sourceforge.pmd.lang.dart.ast| with PMD 7. All other classes in the old package will be removed. o |net.sourceforge.pmd.lang.go.antlr4.GolangLexer| <https://docs.pmd-code.org/apidocs/pmd-go/6.28.0/net/sourceforge/pmd/lang/go/antlr4/GolangLexer.html#> will be moved to package |net.sourceforge.pmd.lang.go.ast| with PMD 7. All other classes in the old package will be removed. o |net.sourceforge.pmd.lang.kotlin.antlr4.Kotlin| <https://docs.pmd-code.org/apidocs/pmd-kotlin/6.28.0/net/sourceforge/pmd/lang/kotlin/antlr4/Kotlin.html#> will be renamed to |KotlinLexer| and moved to package |net.sourceforge.pmd.lang.kotlin.ast| with PMD 7. o |net.sourceforge.pmd.lang.lua.antlr4.LuaLexer| <https://docs.pmd-code.org/apidocs/pmd-lua/6.28.0/net/sourceforge/pmd/lang/lua/antlr4/LuaLexer.html#> will be moved to package |net.sourceforge.pmd.lang.lua.ast| with PMD 7. All other classes in the old package will be removed. External Contributions * #2735 <https://github.com/pmd/pmd/pull/2735>: [ci] Add github actions for a fast view of pr succeed/not - XenoAmess <https://github.com/XenoAmess> * #2747 <https://github.com/pmd/pmd/pull/2747>: [java] Don't trigger FinalFieldCouldBeStatic when field is annotated with lombok @Builder.Default - Ollie Abbey <https://github.com/ollieabbey> * #2773 <https://github.com/pmd/pmd/pull/2773>: [java] issue-2738: Adding null check to avoid npe when switch case is default - Nimit Patel <https://github.com/nimit-patel> * #2789 <https://github.com/pmd/pmd/pull/2789>: Add badge for reproducible build - Dan Rollo <https://github.com/bhamail> * #2791 <https://github.com/pmd/pmd/pull/2791>: [apex] Analyze inner classes for sharing violations - Jeff Bartolotta <https://github.com/jbartolotta-sfdc> Stats * 58 commits * 24 closed tickets & PRs * Days since last release: 25 |