pmd/docs/pages/release_notes.md

109 lines
6.5 KiB
Markdown
Raw Normal View History

---
title: PMD Release Notes
permalink: pmd_release_notes.html
keywords: changelog, release notes
---
2018-09-02 14:30:21 +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-09-30 10:47:07 +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
2019-02-18 19:46:06 +01:00
#### Call For Logo
PMDs logo was great for a long time. But now we want to take the opportunity with the next major release to change
our logo in order to use a more "politically correct" one.
Learn more about how to participate on [github issue 1663](https://github.com/pmd/pmd/issues/1663).
#### CPD Suppression for Antlr-based languages
2019-02-17 18:50:32 -03:00
[ITBA](https://www.itba.edu.ar/) students [Matías Fraga](https://github.com/matifraga),
[Tomi De Lucca](https://github.com/tomidelucca) and [Lucas Soncini](https://github.com/lsoncini)
keep working on bringing full Antlr support to PMD. For this release, they have implemented
token filtering in an equivalent way as we did for JavaCC languages, adding support for CPD
suppressions through `CPD-OFF` and `CPD-ON` comments for all Antlr-based languages.
This means, you can now ignore arbitrary blocks of code on:
* Go
* Kotlin
* Swift
Simply start the suppression with any comment (single or multiline) containing `CPD-OFF`,
and resume again with a comment containing `CPD-ON`.
More information is available in [the user documentation](pmd_userdocs_cpd.html#suppression).
2019-02-16 22:17:23 +01:00
#### PL/SQL Grammar improvements
* In this release, many more parser bugs in our PL/SQL support have been fixed. This adds more complete
support for UPDATE statements and subqueries and hierarchical queries in SELECT statements.
* Support for analytic functions such as LISTAGG has been added.
* Conditions in WHERE clauses support now REGEX_LIKE and multiset conditions.
#### New Rules
* The new Java rule {% rule "java/bestpractices/UseTryWithResources" %) (`java-bestpractices`) searches
for try-blocks, that could be changed to a try-with-resources statement. This statement ensures that
each resource is closed at the end of the statement and is available since Java 7.
2019-02-05 23:32:52 -03:00
#### Modified Rules
* The Apex rule {% rule "apex/codestyle/MethodNamingConventions" %} (apex-codestyle) has a new
property `skipTestMethodUnderscores`, which is by default disabled. The new property allows for ignoring
all test methods, either using the `testMethod` modifier or simply annotating them `@isTest`.
2016-12-13 13:38:59 -03:00
### Fixed Issues
2018-09-05 01:16:04 -03:00
* all
* [#1462](https://github.com/pmd/pmd/issues/1462): \[core] Failed build on Windows with source zip archive
2019-02-17 16:33:33 -03:00
* [#1559](https://github.com/pmd/pmd/issues/1559): \[core] CPD: Lexical error in file (no file name provided)
2019-01-28 23:59:30 -03:00
* java-bestpractices
2019-02-02 13:58:00 -03:00
* [#808](https://github.com/pmd/pmd/issues/808): \[java] AccessorMethodGeneration false positives with compile time constants
* [#1405](https://github.com/pmd/pmd/issues/1405): \[java] New Rule: UseTryWithResources - Replace close and IOUtils.closeQuietly with try-with-resources
2019-01-28 23:59:30 -03:00
* [#1555](https://github.com/pmd/pmd/issues/1555): \[java] UnusedImports false positive for method parameter type in @see Javadoc
2019-01-28 23:46:03 -03:00
* java-codestyle
2019-01-29 00:03:44 -03:00
* [#1543](https://github.com/pmd/pmd/issues/1543): \[java] LinguisticNaming should ignore overriden methods
2019-01-28 23:46:03 -03:00
* [#1547](https://github.com/pmd/pmd/issues/1547): \[java] AtLeastOneConstructorRule: false-positive with lombok.AllArgsConstructor
2019-02-09 13:12:47 -03:00
* [#1624](https://github.com/pmd/pmd/issues/1624): \[java] UseDiamondOperator false positive with var initializer
2019-02-01 19:25:35 -03:00
* java-design
* [#1641](https://github.com/pmd/pmd/issues/1641): \[java] False-positive with Lombok and inner classes
2019-01-30 12:26:17 -03:00
* java-errorprone
* [#780](https://github.com/pmd/pmd/issues/780): \[java] BeanMembersShouldSerializeRule does not recognize lombok accessors
2019-01-30 12:15:53 -03:00
* java-multithreading
* [#1633](https://github.com/pmd/pmd/issues/1633): \[java] UnsynchronizedStaticFormatter reports commons lang FastDateFormat
2019-02-05 22:52:54 -03:00
* java-performance
* [#1632](https://github.com/pmd/pmd/issues/1632): \[java] ConsecutiveLiteralAppends false positive over catch
* plsql
2019-02-16 22:17:23 +01:00
* [#1587](https://github.com/pmd/pmd/issues/1587): \[plsql] ParseException with EXISTS
* [#1589](https://github.com/pmd/pmd/issues/1589): \[plsql] ParseException with subqueries in WHERE clause
2019-02-10 09:17:42 +01:00
* [#1590](https://github.com/pmd/pmd/issues/1590): \[plsql] ParseException when using hierarchical query clause
2019-02-16 22:17:23 +01:00
* [#1656](https://github.com/pmd/pmd/issues/1656): \[plsql] ParseException with analytic functions, trim and subqueries
2019-02-20 13:41:02 +01:00
* designer
* [#1679](https://github.com/pmd/pmd/issues/1679): \[ui] No default language version selected
2019-01-28 23:46:03 -03:00
2018-04-29 09:57:56 +02:00
### API Changes
2017-12-20 23:24:37 -03:00
### External Contributions
2018-06-09 01:52:45 +02:00
2019-01-28 23:46:03 -03:00
* [#1623](https://github.com/pmd/pmd/pull/1623): \[java] Fix lombok.AllArgsConstructor support - [Bobby Wertman](https://github.com/CasualSuperman)
2019-01-28 23:59:30 -03:00
* [#1625](https://github.com/pmd/pmd/pull/1625): \[java] UnusedImports false positive for method parameter type in @see Javadoc - [Shubham](https://github.com/Shubham-2k17)
2019-01-29 00:03:44 -03:00
* [#1628](https://github.com/pmd/pmd/pull/1628): \[java] LinguisticNaming should ignore overriden methods - [Shubham](https://github.com/Shubham-2k17)
2019-01-30 12:26:17 -03:00
* [#1634](https://github.com/pmd/pmd/pull/1634): \[java] BeanMembersShouldSerializeRule does not recognize lombok accessors - [Shubham](https://github.com/Shubham-2k17)
2019-01-30 12:15:53 -03:00
* [#1635](https://github.com/pmd/pmd/pull/1635): \[java] UnsynchronizedStaticFormatter reports commons lang FastDateFormat - [Shubham](https://github.com/Shubham-2k17)
2019-02-02 13:58:00 -03:00
* [#1637](https://github.com/pmd/pmd/pull/1637): \[java] Compile time constants initialized by literals avoided by AccessorMethodGenerationRule - [Shubham](https://github.com/Shubham-2k17)
2019-02-01 19:25:35 -03:00
* [#1640](https://github.com/pmd/pmd/pull/1640): \[java] Update instead of override classHasLombokAnnotation flag - [Phokham Nonava](https://github.com/fluxroot)
2019-02-05 23:32:52 -03:00
* [#1644](https://github.com/pmd/pmd/pull/1644): \[apex] Add property to allow apex test methods to contain underscores - [Tom](https://github.com/tomdaly)
2019-02-05 22:52:54 -03:00
* [#1645](https://github.com/pmd/pmd/pull/1645): \[java] ConsecutiveLiteralAppends false positive - [Shubham](https://github.com/Shubham-2k17)
2019-02-09 13:12:47 -03:00
* [#1646](https://github.com/pmd/pmd/pull/1646): \[java] UseDiamondOperator doesn't work with var - [Shubham](https://github.com/Shubham-2k17)
2019-02-17 18:50:32 -03:00
* [#1654](https://github.com/pmd/pmd/pull/1654): \[core] Antlr token filter - [Tomi De Lucca](https://github.com/tomidelucca)
2019-02-17 23:34:15 -03:00
* [#1655](https://github.com/pmd/pmd/pull/1655): \[kotlin] Kotlin tokenizer refactor - [Lucas Soncini](https://github.com/lsoncini)
2019-01-28 23:46:03 -03:00
2018-08-18 16:44:45 +02:00
{% endtocmaker %}
2018-09-02 14:30:21 +02:00