pmd icon indicating copy to clipboard operation
pmd copied to clipboard

PMD 7 Miscellaneous Tasks

Open adangel opened this issue 5 years ago • 0 comments

  • [x] [java,apex] Remove deprecated and unused rules #2022

  • [x] [all] Use slf4j #896 - see #3789

  • [ ] [all] Use JUnit5 #3797

  • [ ] Code update to Java8

    • Switch to Java 8 as minimum runtime. Code upgrade to use Java 8…
    • e.g using lambdas, streams, where useful
    • that's a general task
  • [ ] Minor license switch: From "BSD-style" to standard BSD license

    These are the changes:

    • Use "PMD Development Team" as copyright owner instead of InfoEther

    • Remove the "advertising clause" that requests to mention "This product includes software developed in part by support from the Defense Advanced Research Project Agency (DARPA)". That's long history.

    • Adjust file headers to use SPDX identifier, see https://spdx.org/licenses/ and https://spdx.dev/ids/

      Example: `// SPDX-License-Identifier: BSD-3-Clause

    • Possible Licenses: https://spdx.org/licenses/BSD-3-Clause.html or https://spdx.org/licenses/BSD-2-Clause.html

    • See also https://github.com/pmd/pmd/discussions/3050

    • See also https://opensource.stackexchange.com/questions/11556/can-i-use-apache-2-0-licensed-project-inside-my-bsd-3-clause-licensed-project

  • [ ] [plsql] Document DBURI data source possibility

    It is possible to check code that is stored in the database directly with PMD. That feature is however not document and it is untested.

  • [x] [javascript] Update Rhino library #699

    • :x: replaced by #3242 for PMD 6.x
  • [x] [apex] Apex should only have a single RootNode #1937

  • [ ] [apex] AST cleanups

    • make ApexNode.getNode() package-private
    • On ASTLiteralExpression.getLiteralType(), we expose a Jorje-internal Enum. Using this, makes the rule again dependent on jorje. Same with ASTBooleanExpression.getOperator().
    • the class apex.rule.security.Helper provides many utility methods for generating a fully qualified name of variables, fields, methods. They use the format "<defining_type>:". I'm wondering, whether this actually works here in PMD, if Class A references Class B, but we let parse the files separately. I guess, the parser then doesn't resolve this?
    • Expose the "definingType" on the AbstractApexNode: Each jorje node has a reference to its defining type, which holds information about the compilation unit name.
    • AnnotationSuppressionUtil, similar like #1927 [java] Refactor annotation suppression, since CanSuppressWarnings is deprecated.
  • [ ] Migration Tool PMD 6 --> 7

    That depends on [[PMD 7.0.0 Documentation|PMD-7.0.0-Documentation]] / Migration Guide. If something can be automated, it's maybe worth it. But maybe, we don't need it, if most of the simple stuff can be done already on PMD 6 by fixing deprecation warnings.

  • [ ] Remove unnecessary property color and system property pmd.color in TextColorRenderer (from #2450)

  • [ ] Cleanup dependencies, like in #710 / #2629 . Move PMDTask into separate module, to get rid of general ant dependency.

Out of Scope

That probably out of scope for PMD 7

adangel avatar May 23 '20 16:05 adangel