5.3 KiB
title, permalink, keywords
title | permalink | keywords |
---|---|---|
PMD Release Notes | pmd_release_notes.html | changelog, release notes |
{{ site.pmd.date }} - {{ site.pmd.version }}
The PMD team is pleased to announce PMD {{ site.pmd.version }}.
This is a {{ site.pmd.release_type }} release.
{% tocmaker is_release_notes_processor %}
New and noteworthy
Call For Logo
We are still searching for a new logo for PMD for the next major release.
Learn more about how to participate on github issue 1663.
Quickstart Ruleset for Apex
PMD provides now a quickstart ruleset for Salesforce.com Apex, which you can use as a base ruleset to
get your custom ruleset started. You can reference it with rulesets/apex/quickstart.xml
.
You are strongly encouraged to create your own ruleset
though.
The quickstart ruleset has the intention, to be useful out-of-the-box for many projects. Therefore it references only rules, that are most likely to apply everywhere.
Any feedback would be greatly appreciated.
PMD Designer
The rule designer's codebase has been moved out of the main repository and will be developed at pmd/pmd-designer from now on. The maven coordinates will stay the same for the time being. The designer will still be shipped with PMD's binaries.
New Rules
-
The new Java rule {% rule "java/design/AvoidUncheckedExceptionsInSignatures" %} (
java-design
) finds methods or constructors that declare unchecked exceptions in theirthrows
clause. This forces the caller to handle the exception, even though it is a runtime exception. -
The new Java rule {% rule "java/errorprone/DetachedTestCase" %} (
java-errorprone
) searches for public methods in test classes, which are not annotated with@Test
. These methods might be test cases where the annotation has been forgotten. Because of that those test cases are never executed. -
The new Java rule {% rule "java/bestpractices/WhileLoopWithLiteralBoolean" %} (
java-bestpractices
) finds Do-While-Loops and While-Loops that can be simplified since they use simplytrue
orfalse
as their loop condition. -
The new Apex rule {% rule "apex/bestpractices/ApexAssertionsShouldIncludeMessage" %} (
apex-bestpractices
) searches for assertions in unit tests and checks, whether they use a message argument. -
The new Apex rule {% rule "apex/bestpractices/ApexUnitTestMethodShouldHaveIsTestAnnotation" %} (
apex-bestpractices
) searches for methods in test classes, which are missing the@IsTest
annotation. -
The new PLSQL rule {% rule "plsql/codestyle/AvoidTabCharacter" %} (
plsql-codestyle
) checks, that there are no tab characters ("\t") in the source file. -
The new PLSQL rule {% rule "plsql/codestyle/LineLength" %} (
plsql-codestyle
) helps to enforce a maximum line length.
Fixed Issues
- doc
- #1721: [doc] Documentation provides an invalid property configuration example
- java-bestpractices
- #1701: [java] UseTryWithResources does not handle multiple argument close methods
- java-codestyle
- #1674: [java] documentation of CommentDefaultAccessModifier is wrong
- plsql
- #1716: [plsql] Support access to whole plsql code
API Changes
Deprecated API
-
{% jdoc core::renderers.CodeClimateRule %} is deprecated in 7.0.0 because it was unused for 2 years and created an unwanted dependency. Properties "cc_categories", "cc_remediation_points_multiplier", "cc_block_highlighting" will also be removed. See #1702 for more.
-
The Apex ruleset
rulesets/apex/ruleset.xml
has been deprecated and will be removed in 7.0.0. Please use the new quickstart rulesetrulesets/apex/quickstart.xml
instead.
External Contributions
- #1694: [apex] New rules for test method and assert statements - triandicAnt
- #1697: [doc] Update CPD documentation - Matías Fraga
- #1704: [java] Added AvoidUncheckedExceptionsInSignatures Rule - Bhanu Prakash Pamidi
- #1706: [java] Add DetachedTestCase rule - David Burström
- #1709: [java] Detect while loops with literal booleans conditions - David Burström
- #1717: [java] Fix false positive in useTryWithResources when using a custom close method with multiple arguments - Rishabh Jain
- #1724: [doc] Correct property override example - Felix W. Dekker
- #1737: [java] fix escaping of CommentDefaultAccessModifier documentation - itaigilo
{% endtocmaker %}