pmd/docs/pages/release_notes.md

103 lines
6.8 KiB
Markdown
Raw Normal View History

---
title: PMD Release Notes
permalink: pmd_release_notes.html
keywords: changelog, release notes
---
2018-08-27 02:40:41 +02:00
# {{ site.pmd.date }} - {{ site.pmd.version }}
The PMD team is pleased to announce PMD {{ site.pmd.version }}.
2016-07-27 22:03:51 +02:00
This is a {{ site.pmd.release_type }} release.
2016-07-07 20:48:01 +02:00
2018-08-18 20:30:19 +02:00
{% tocmaker is_release_notes_processor %}
2017-04-29 20:22:28 +02:00
2018-01-21 16:45:02 +01:00
### New and noteworthy
2018-01-01 16:33:35 +01:00
2018-08-27 04:14:12 -03:00
#### Modified Rules
* The Java rule {% rule java/bestpractices/OneDeclarationPerLine %} (`java-bestpractices`) has been revamped to
consider not only local variable declarations, but field declarations too.
2018-07-15 17:48:06 -03:00
#### New Rules
2018-08-15 03:32:47 +02:00
* The new Java rule {% rule java/codestyle/LinguisticNaming %} (`java-codestyle`)
detects cases, when a method name indicates it returns a boolean (such as `isSmall()`) but it doesn't.
Besides method names, the rule also checks field and variable names. It also checks, that getters return
something but setters won't. The rule has several properties with which it can be customized.
2018-08-15 03:32:47 +02:00
* The new PL/SQL rule {% rule plsql/codestyle/ForLoopNaming %} (`plsql-codestyle`)
enforces a naming convention for "for loops". Both "cursor for loops" and "index for loops" are covered.
The rule can be customized via patterns. By default, short variable names are reported.
2018-08-17 15:56:39 +02:00
* The new Java rule {% rule java/codestyle/FieldNamingConventions %} (`java-codestyle`)
2018-08-13 01:21:47 +02:00
detects field names that don't comply to a given convention. It defaults to standard Java convention of using camelCase,
but can be configured with ease for e.g. constants or static fields.
2018-08-27 03:03:39 -03:00
* The new Apex rule {% rule apex/codestyle/OneDeclarationPerLine %} (`apex-codestyle`) enforces declaring a
single field / variable per line; or per statement if the `strictMode` property is set.
It's an Apex equivalent of the already existing Java rule of the same name.
2018-09-02 14:19:37 +02:00
#### Deprecated Rules
* The Java rules {% rule java/codestyle/VariableNamingConventions %}, {% rule java/codestyle/MIsLeadingVariableName %},
{% rule java/codestyle/SuspiciousConstantFieldName %}, and {% rule java/codestyle/AvoidPrefixingMethodParameters %} are
now deprecated, and will be removed with version 7.0.0. They are replaced by the more general
{% rule java/codestyle/FieldNamingConventions %}, {% rule java/codestyle/FormalParameterNamingConventions %}, and
{% rule java/codestyle/LocalVariableNamingConventions %}.
2016-12-13 13:38:59 -03:00
### Fixed Issues
2016-06-25 13:51:03 +02:00
* core
* [#1191](https://github.com/pmd/pmd/issues/1191): \[core] Test Framework: Sort violations by line/column
* [#1283](https://github.com/pmd/pmd/issues/1283): \[core] Deprecate ReportTree
* [#1288](https://github.com/pmd/pmd/issues/1288): \[core] No supported build listeners found with Gradle
* [#1300](https://github.com/pmd/pmd/issues/1300): \[core] PMD stops processing file completely, if one rule in a rule chain fails
* [#1317](https://github.com/pmd/pmd/issues/1317): \[ci] Coveralls hasn't built the project since June 25th
2018-08-06 09:09:09 +02:00
* java-bestpractices
* [#940](https://github.com/pmd/pmd/issues/940): \[java] JUnit 4 false positives for JUnit 5 tests
2018-08-06 09:09:09 +02:00
* [#1267](https://github.com/pmd/pmd/pull/1267): \[java] MissingOverrideRule: Avoid NoClassDefFoundError with incomplete classpath
2018-08-30 14:11:10 -03:00
* [#1323](https://github.com/pmd/pmd/issues/1323): \[java] AvoidUsingHardCodedIP ignores match pattern
2018-09-01 21:21:03 +02:00
* [#1327](https://github.com/pmd/pmd/pull/1327): \[java] AvoidUsingHardCodedIP false positive for ":bee"
* java-codestyle
* [#1255](https://github.com/pmd/pmd/issues/1255): \[java] UnnecessaryFullyQualifiedName false positive: static method on shadowed implicitly imported class
* [#1258](https://github.com/pmd/pmd/issues/1285): \[java] False positive "UselessParentheses" for parentheses that contain assignment
2018-07-30 00:13:48 -03:00
* java-errorprone
* [#1078](https://github.com/pmd/pmd/issues/1078): \[java] MissingSerialVersionUID rule does not seem to catch inherited classes
* java-performance
* [#1291](https://github.com/pmd/pmd/issues/1291): \[java] InvalidSlf4jMessageFormat false positive: too many arguments with string concatenation operator
* [#1298](https://github.com/pmd/pmd/issues/1298): \[java] RedundantFieldInitializer - NumberFormatException with Long
2018-08-04 18:02:27 -03:00
* jsp
2018-08-06 09:40:04 +02:00
* [#1274](https://github.com/pmd/pmd/issues/1274): \[jsp] Support EL in tag attributes
2018-08-04 18:02:27 -03:00
* [#1276](https://github.com/pmd/pmd/issues/1276): \[jsp] add support for jspf and tag extensions
2018-07-15 19:38:08 +02:00
* plsql
2018-07-20 15:26:48 +02:00
* [#681](https://github.com/pmd/pmd/issues/681): \[plsql] Parse error with Cursor For Loop
2018-07-30 00:13:48 -03:00
2018-04-29 09:57:56 +02:00
### API Changes
* All classes in the package `net.sourceforge.pmd.lang.dfa.report` have been deprecated and will be removed
with PMD 7.0.0. This includes the class `net.sourceforge.pmd.lang.dfa.report.ReportTree`. The reason is,
that this class is very specific to Java and not suitable for other languages. It has only been used for
`YAHTMLRenderer`, which has been rewritten to work without these classes.
2018-08-20 18:35:46 +02:00
* The nodes RUNSIGNEDSHIFT and RSIGNEDSHIFT are deprecated and will be removed from the AST with PMD 7.0.0.
These represented the operator of ShiftExpression in two cases out of three, but they're not needed and
make ShiftExpression inconsistent. The operator of a ShiftExpression is now accessible through
ShiftExpression#getOperator.
2017-12-20 23:24:37 -03:00
### External Contributions
2018-06-09 01:52:45 +02:00
* [#109](https://github.com/pmd/pmd/pull/109): \[java] Add two linguistics rules under naming - [Arda Aslan](https://github.com/ardaasln)
2018-07-30 10:44:23 +02:00
* [#1254](https://github.com/pmd/pmd/pull/1254): \[ci] \[GSoC] Integrating the danger and pmdtester to travis CI - [BBG](https://github.com/djydewang)
2018-07-30 10:46:11 +02:00
* [#1258](https://github.com/pmd/pmd/pull/1258): \[java] Use typeof in MissingSerialVersionUID - [krichter722](https://github.com/krichter722)
* [#1264](https://github.com/pmd/pmd/pull/1264): \[cpp] Fix NullPointerException in CPPTokenizer:99 - [Rafael Cortês](https://github.com/mrfyda)
2018-08-04 18:02:27 -03:00
* [#1277](https://github.com/pmd/pmd/pull/1277): \[jsp] #1276 add support for jspf and tag extensions - [Jordi Llach](https://github.com/jordillachmrf)
2018-08-06 09:41:42 +02:00
* [#1275](https://github.com/pmd/pmd/pull/1275): \[jsp] Issue #1274 - Support EL in tag attributes - [Jordi Llach](https://github.com/jordillachmrf)
2018-08-02 19:08:55 +02:00
* [#1278](https://github.com/pmd/pmd/pull/1278): \[ci] \[GSoC] Use pmdtester 1.0.0.pre.beta3 - [BBG](https://github.com/djydewang)
* [#1289](https://github.com/pmd/pmd/pull/1289): \[java] UselessParentheses: Fix false positive with assignments - [cobratbq](https://github.com/cobratbq)
2018-08-08 08:30:05 +02:00
* [#1290](https://github.com/pmd/pmd/pull/1290): \[docs] \[GSoC] Create the documentation about pmdtester - [BBG](https://github.com/djydewang)
* [#1256](https://github.com/pmd/pmd/pull/1256): \[java] #940 Avoid JUnit 4 false positives for JUnit 5 tests - [Alex Shesterov](https://github.com/vovkss)
2018-08-27 03:03:39 -03:00
* [#1315](https://github.com/pmd/pmd/pull/1315): \[apex] Add OneDeclarationPerStatement rule - [Jeff Hube](https://github.com/jeffhube)
2018-08-18 16:44:45 +02:00
{% endtocmaker %}