[pmd-devel] [ANNOUNCE] PMD 7.21.0 released
A source code analyzer
Brought to you by:
adangel,
juansotuyo
|
From: Andreas D. <and...@pm...> - 2026-01-30 09:58:41
|
* Downloads: https://github.com/pmd/pmd/releases/tag/pmd_releases%2F7.21.0 * Documentation: https://docs.pmd-code.org/pmd-doc-7.21.0/ 30-January-2026 - 7.21.0 The PMD team is pleased to announce PMD 7.21.0. This is a minor release. Table Of Contents * ๐๏ธ New and noteworthy <https://sourceforge.net/p/pmd/news/2026/01/pmd-7210-30-january-2026-released/#new-and-noteworthy> o ๐๏ธ New: Java 26 Support <https://sourceforge.net/p/pmd/news/2026/01/pmd-7210-30-january-2026-released/#new-java-26-support> o Build Requirement is Java 21 <https://sourceforge.net/p/pmd/news/2026/01/pmd-7210-30-january-2026-released/#build-requirement-is-java-21> o CPD <https://sourceforge.net/p/pmd/news/2026/01/pmd-7210-30-january-2026-released/#cpd> * ๐๏ธ New and Changed Rules <https://sourceforge.net/p/pmd/news/2026/01/pmd-7210-30-january-2026-released/#new-and-changed-rules> o New Rules <https://sourceforge.net/p/pmd/news/2026/01/pmd-7210-30-january-2026-released/#new-rules> o Changed Rules <https://sourceforge.net/p/pmd/news/2026/01/pmd-7210-30-january-2026-released/#changed-rules> o Deprecated Rules <https://sourceforge.net/p/pmd/news/2026/01/pmd-7210-30-january-2026-released/#deprecated-rules> * ๐๏ธ Fixed Issues <https://sourceforge.net/p/pmd/news/2026/01/pmd-7210-30-january-2026-released/#fixed-issues> * ๐จ๏ธ API Changes <https://sourceforge.net/p/pmd/news/2026/01/pmd-7210-30-january-2026-released/#api-changes> o Deprecations <https://sourceforge.net/p/pmd/news/2026/01/pmd-7210-30-january-2026-released/#deprecations> * โจ๏ธ Merged pull requests <https://sourceforge.net/p/pmd/news/2026/01/pmd-7210-30-january-2026-released/#merged-pull-requests> * ๐ฆ๏ธ Dependency updates <https://sourceforge.net/p/pmd/news/2026/01/pmd-7210-30-january-2026-released/#dependency-updates> * ๐๏ธ Stats <https://sourceforge.net/p/pmd/news/2026/01/pmd-7210-30-january-2026-released/#stats> ๐๏ธ New and noteworthy ๐๏ธ New: Java 26 Support This release of PMD brings support for Java 26. There are no new standard language features. There is one preview language feature: * JEP 530: Primitive Types in Patterns, instanceof, and switch (Fourth Preview) <https://openjdk.org/jeps/530> In order to analyze a project with PMD that uses these preview language features, you'll need to select the new language version |26-preview|: |pmd check --use-version java-26-preview ... | Note: Support for Java 24 preview language features have been removed. The version "24-preview" is no longer available. Build Requirement is Java 21 From now on, Java 21 or newer is required to build PMD. PMD itself still remains compatible with Java 8, so that it still can be used in a pure Java 8 environment. This allows us to use the latest checkstyle version during the build. CPD * The Apex module now supports suppression <https://docs.pmd-code.org/latest/pmd_userdocs_cpd.html#suppression> through |CPD-ON|/|CPD-OFF| comment pairs. See #6417 <https://github.com/pmd/pmd/pull/6417> ๐๏ธ New and Changed Rules New Rules * The new Java rule |PublicMemberInNonPublicType| <https://docs.pmd-code.org/pmd-doc-7.21.0/pmd_rules_java_design.html#publicmemberinnonpublictype> detects public members (such as methods or fields) within non-public types. Non-public types should not declare public members, as their effective visibility is limited, and using the |public| modifier can create confusion. * The new Java rule |UnsupportedJdkApiUsage| <https://docs.pmd-code.org/pmd-doc-7.21.0/pmd_rules_java_errorprone.html#unsupportedjdkapiusage> flags the use of unsupported and non-portable JDK APIs, including |sun.*| packages, |sun.misc.Unsafe|, and |jdk.internal.misc.Unsafe|. These APIs are unstable, intended for internal use, and may change or be removed. The rule complements Java compiler warnings by highlighting such usage during code reviews and encouraging migration to official APIs like VarHandle and the Foreign Function & Memory API. Changed Rules The following rules have been changed to use a consistent implementation of enum based rule properties: * The property |checkAddressTypes| of rule |AvoidUsingHardCodedIP| <https://docs.pmd-code.org/pmd-doc-7.21.0/pmd_rules_java_bestpractices.html#avoidusinghardcodedip> has changed: * Instead of |IPv4| use |ipv4| * Instead of |IPv6| use |ipv6| * Instead of |IPv4 mapped IPv6| use |ipv4MappedIpv6| * The old values still work, but you'll see a deprecation warning. * The property |nullCheckBranch| of rule |ConfusingTernary| <https://docs.pmd-code.org/pmd-doc-7.21.0/pmd_rules_java_codestyle.html#confusingternary> has changed: * Instead of |Any| use |any| * Instead of |Then| use |then| * Instead of |Else| use |else| * The old values still work, but you'll see a deprecation warning. * The property |typeAnnotations| of rule |ModifierOrder| <https://docs.pmd-code.org/pmd-doc-7.21.0/pmd_rules_java_codestyle.html#modifierorder> has changed: * Instead of |ontype| use |onType| * Instead of |ondecl| use |onDecl| * The old values still work, but you'll see a deprecation warning. * The values of the properties of rule |CommentRequired| <https://docs.pmd-code.org/pmd-doc-7.21.0/pmd_rules_java_documentation.html#commentrequired> have changed: * Instead of |Required| use |required| * Instead of |Ignored| use |ignored| * Instead of |Unwanted| use |unwanted| * The old values still work, but you'll see a deprecation warning. Deprecated Rules * The Java rule |DontImportSun| <https://docs.pmd-code.org/pmd-doc-7.21.0/pmd_rules_java_errorprone.html#dontimportsun> has been deprecated. It is replaced by |UnsupportedJdkApiUsage| <https://docs.pmd-code.org/pmd-doc-7.21.0/pmd_rules_java_errorprone.html#unsupportedjdkapiusage>. ๐๏ธ Fixed Issues * core * #6184 <https://github.com/pmd/pmd/issues/6184>: [core] Consistent implementation of enum properties * apex * #6417 <https://github.com/pmd/pmd/issues/6417>: [apex] Support CPD suppression with "CPD-OFF" & "CPD-ON" * apex-codestyle * #6349 <https://github.com/pmd/pmd/issues/6349>: [apex] FieldDeclarationsShouldBeAtStart: False positive with properties * cli * #6290 <https://github.com/pmd/pmd/issues/6290>: [cli] Improve Designer start script * java * #5871 <https://github.com/pmd/pmd/issues/5871>: [java] Support Java 26 * #6364 <https://github.com/pmd/pmd/issues/6364>: [java] Parse error with yield lambda inside switch * java-design * #6231 <https://github.com/pmd/pmd/issues/6231>: [java] New Rule: PublicMemberInNonPublicType * java-errorprone * #3601 <https://github.com/pmd/pmd/issues/3601>: [java] InvalidLogMessageFormat: False positive when final parameter is Supplier<Throwable> * #5882 <https://github.com/pmd/pmd/issues/5882>: [java] UnconditionalIfStatement: False negative when true/false is not literal but local variable * #5923 <https://github.com/pmd/pmd/issues/5923>: [java] New Rule: Catch usages of sun.misc.Unsafe or jdk.internal.misc.Unsafe * java-performance * #3857 <https://github.com/pmd/pmd/issues/3857>: [java] InsufficientStringBufferDeclaration: False negatives with String constants ๐จ๏ธ API Changes Deprecations * core * |MetricOption#valueName| <https://docs.pmd-code.org/apidocs/pmd-core/7.21.0/net/sourceforge/pmd/lang/metrics/MetricOption.html#valueName()>: When metrics are used for (rule) properties, then the conventional enum mapping (from SCREAMING_SNAKE_CASE to camelCase) will be used for the enum values. See |conventionalEnumListProperty| <https://docs.pmd-code.org/apidocs/pmd-core/7.21.0/net/sourceforge/pmd/properties/PropertyFactory.html#conventionalEnumListProperty(java.lang.String,java.lang.Class)>. * In |PropertyFactory| <https://docs.pmd-code.org/apidocs/pmd-core/7.21.0/net/sourceforge/pmd/properties/PropertyFactory.html#>: o |enumProperty(String, Map)| <https://docs.pmd-code.org/apidocs/pmd-core/7.21.0/net/sourceforge/pmd/properties/PropertyFactory.html#enumProperty(java.lang.String,java.util.Map)>. Use |conventionalEnumProperty| <https://docs.pmd-code.org/apidocs/pmd-core/7.21.0/net/sourceforge/pmd/properties/PropertyFactory.html#conventionalEnumProperty(java.lang.String,java.lang.Class)> instead. o |enumProperty(String, Class)| <https://docs.pmd-code.org/apidocs/pmd-core/7.21.0/net/sourceforge/pmd/properties/PropertyFactory.html#enumProperty(java.lang.String,java.lang.Class)>. Use |conventionalEnumProperty| <https://docs.pmd-code.org/apidocs/pmd-core/7.21.0/net/sourceforge/pmd/properties/PropertyFactory.html#conventionalEnumProperty(java.lang.String,java.lang.Class)> instead. o |enumProperty(String, Class, Function)| <https://docs.pmd-code.org/apidocs/pmd-core/7.21.0/net/sourceforge/pmd/properties/PropertyFactory.html#enumProperty(java.lang.String,java.lang.Class,java.util.function.Function)>. Use |conventionalEnumProperty| <https://docs.pmd-code.org/apidocs/pmd-core/7.21.0/net/sourceforge/pmd/properties/PropertyFactory.html#conventionalEnumProperty(java.lang.String,java.lang.Class)> instead. o |enumListProperty(String, Map)| <https://docs.pmd-code.org/apidocs/pmd-core/7.21.0/net/sourceforge/pmd/properties/PropertyFactory.html#enumListProperty(java.lang.String,java.util.Map)>. Use |conventionalEnumListProperty| <https://docs.pmd-code.org/apidocs/pmd-core/7.21.0/net/sourceforge/pmd/properties/PropertyFactory.html#conventionalEnumListProperty(java.lang.String,java.lang.Class)> instead. o |enumListProperty(String, Class, Function)| <https://docs.pmd-code.org/apidocs/pmd-core/7.21.0/net/sourceforge/pmd/properties/PropertyFactory.html#enumListProperty(java.lang.String,java.lang.Class,java.util.function.Function)>. Use |conventionalEnumListProperty| <https://docs.pmd-code.org/apidocs/pmd-core/7.21.0/net/sourceforge/pmd/properties/PropertyFactory.html#conventionalEnumListProperty(java.lang.String,java.lang.Class)> instead. * java * |AvoidBranchingStatementAsLastInLoopRule#CHECK_FOR| <https://docs.pmd-code.org/apidocs/pmd-java/7.21.0/net/sourceforge/pmd/lang/java/rule/errorprone/AvoidBranchingStatementAsLastInLoopRule.html#CHECK_FOR>. This constant should have never been public. * |AvoidBranchingStatementAsLastInLoopRule#CHECK_DO| <https://docs.pmd-code.org/apidocs/pmd-java/7.21.0/net/sourceforge/pmd/lang/java/rule/errorprone/AvoidBranchingStatementAsLastInLoopRule.html#CHECK_DO>. This constant should have never been public. * |AvoidBranchingStatementAsLastInLoopRule#CHECK_WHILE| <https://docs.pmd-code.org/apidocs/pmd-java/7.21.0/net/sourceforge/pmd/lang/java/rule/errorprone/AvoidBranchingStatementAsLastInLoopRule.html#CHECK_WHILE>. This constant should have never been public. * |AvoidBranchingStatementAsLastInLoopRule#CHECK_BREAK_LOOP_TYPES| <https://docs.pmd-code.org/apidocs/pmd-java/7.21.0/net/sourceforge/pmd/lang/java/rule/errorprone/AvoidBranchingStatementAsLastInLoopRule.html#CHECK_BREAK_LOOP_TYPES>. This property descriptor should have been private. It won't be used anymore. Use |getPropertyDescriptor| <https://docs.pmd-code.org/apidocs/pmd-core/7.21.0/net/sourceforge/pmd/properties/AbstractPropertySource.html#getPropertyDescriptor(java.lang.String)> on the rule to retrieve the property descriptor. * |AvoidBranchingStatementAsLastInLoopRule#CHECK_CONTINUE_LOOP_TYPES| <https://docs.pmd-code.org/apidocs/pmd-java/7.21.0/net/sourceforge/pmd/lang/java/rule/errorprone/AvoidBranchingStatementAsLastInLoopRule.html#CHECK_CONTINUE_LOOP_TYPES>. This property descriptor should have been private. It won't be used anymore. Use |getPropertyDescriptor| <https://docs.pmd-code.org/apidocs/pmd-core/7.21.0/net/sourceforge/pmd/properties/AbstractPropertySource.html#getPropertyDescriptor(java.lang.String)> on the rule to retrieve the property descriptor. * |AvoidBranchingStatementAsLastInLoopRule#CHECK_RETURN_LOOP_TYPES| <https://docs.pmd-code.org/apidocs/pmd-java/7.21.0/net/sourceforge/pmd/lang/java/rule/errorprone/AvoidBranchingStatementAsLastInLoopRule.html#CHECK_RETURN_LOOP_TYPES>. This property descriptor should have been private. It won't be used anymore. Use |getPropertyDescriptor| <https://docs.pmd-code.org/apidocs/pmd-core/7.21.0/net/sourceforge/pmd/properties/AbstractPropertySource.html#getPropertyDescriptor(java.lang.String)> on the rule to retrieve the property descriptor. * |AvoidBranchingStatementAsLastInLoopRule#check| <https://docs.pmd-code.org/apidocs/pmd-java/7.21.0/net/sourceforge/pmd/lang/java/rule/errorprone/AvoidBranchingStatementAsLastInLoopRule.html#check(net.sourceforge.pmd.properties.PropertyDescriptor,net.sourceforge.pmd.lang.ast.Node,java.lang.Object)>. This method should have been private and will be internalized. * |AvoidBranchingStatementAsLastInLoopRule#hasPropertyValue| <https://docs.pmd-code.org/apidocs/pmd-java/7.21.0/net/sourceforge/pmd/lang/java/rule/errorprone/AvoidBranchingStatementAsLastInLoopRule.html#hasPropertyValue(net.sourceforge.pmd.properties.PropertyDescriptor,java.lang.String)>. This method should have been private and will be internalized. * |AvoidBranchingStatementAsLastInLoopRule#checksNothing| <https://docs.pmd-code.org/apidocs/pmd-java/7.21.0/net/sourceforge/pmd/lang/java/rule/errorprone/AvoidBranchingStatementAsLastInLoopRule.html#checksNothing()>. This method should have been private and will be internalized. * |ClassFanOutOption#valueName| <https://docs.pmd-code.org/apidocs/pmd-java/7.21.0/net/sourceforge/pmd/lang/java/metrics/JavaMetrics.ClassFanOutOption.html#valueName()>, |CycloOption#valueName| <https://docs.pmd-code.org/apidocs/pmd-java/7.21.0/net/sourceforge/pmd/lang/java/metrics/JavaMetrics.CycloOption.html#valueName()>, |NcssOption#valueName| <https://docs.pmd-code.org/apidocs/pmd-java/7.21.0/net/sourceforge/pmd/lang/java/metrics/JavaMetrics.NcssOption.html#valueName()> * lang-test * |AbstractMetricTestRule#optionMappings| <https://docs.pmd-code.org/apidocs/pmd-lang-test/7.21.0/net/sourceforge/pmd/lang/test/AbstractMetricTestRule.html#optionMappings()>. No extra mapping is required anymore. The |MetricOption| <https://docs.pmd-code.org/apidocs/pmd-core/7.21.0/net/sourceforge/pmd/lang/metrics/MetricOption.html#> enum values are used. See |AbstractMetricTestRule(Metric, Class)| <https://docs.pmd-code.org/apidocs/pmd-lang-test/7.21.0/net/sourceforge/pmd/lang/test/AbstractMetricTestRule.html#AbstractMetricTestRule(net.sourceforge.pmd.lang.metrics.Metric,java.lang.Class)> to provide the enum at construction time. โจ๏ธ Merged pull requests * #6231 <https://github.com/pmd/pmd/pull/6231>: [java] New Rule: PublicMemberInNonPublicType - Andreas Dangel <https://github.com/adangel> (@adangel <https://sourceforge.net/u/adangel/profile/>) * #6232 <https://github.com/pmd/pmd/pull/6232>: [java] New Rule: UnsupportedJdkApiUsage - Thomas Leplus <https://github.com/thomasleplus> (@thomasleplus <https://sourceforge.net/u/thomasleplus/profile/>) * #6233 <https://github.com/pmd/pmd/pull/6233>: [core] Fix #6184: More consistent enum properties - Andreas Dangel <https://github.com/adangel> (@adangel <https://sourceforge.net/u/adangel/profile/>) * #6290 <https://github.com/pmd/pmd/pull/6290>: [cli] Improve Designer start script - Andreas Dangel <https://github.com/adangel> (@adangel <https://sourceforge.net/u/adangel/profile/>) * #6315 <https://github.com/pmd/pmd/pull/6315>: [java] Fix #5882: UnconditionalIfStatement false-negative if true/false is not literal - Marcel <https://github.com/mrclmh> (@mrclmh) * #6362 <https://github.com/pmd/pmd/pull/6362>: chore: Fix typos - Zbynek Konecny <https://github.com/zbynek> (@zbynek <https://sourceforge.net/u/zbynek/profile/>) * #6366 <https://github.com/pmd/pmd/pull/6366>: [java] Fix #3857: InsufficientStringBufferDeclaration should consider constant Strings - Lukas Grรคf <https://github.com/lukasgraef> (@lukasgraef) * #6373 <https://github.com/pmd/pmd/pull/6373>: [java] Support Java 26 - Andreas Dangel <https://github.com/adangel> (@adangel <https://sourceforge.net/u/adangel/profile/>) * #6377 <https://github.com/pmd/pmd/pull/6377>: [doc] chore: update last_updated - Andreas Dangel <https://github.com/adangel> (@adangel <https://sourceforge.net/u/adangel/profile/>) * #6384 <https://github.com/pmd/pmd/pull/6384>: chore: helper script check-all-contributors.sh - Andreas Dangel <https://github.com/adangel> (@adangel <https://sourceforge.net/u/adangel/profile/>) * #6386 <https://github.com/pmd/pmd/pull/6386>: [core] chore: Bump minimum Java version required for building to 21 - Andreas Dangel <https://github.com/adangel> (@adangel <https://sourceforge.net/u/adangel/profile/>) * #6387 <https://github.com/pmd/pmd/pull/6387>: [ci] publish-pull-requests: download latest build result - Andreas Dangel <https://github.com/adangel> (@adangel <https://sourceforge.net/u/adangel/profile/>) * #6389 <https://github.com/pmd/pmd/pull/6389>: chore: update javadoc deprecated tags - Andreas Dangel <https://github.com/adangel> (@adangel <https://sourceforge.net/u/adangel/profile/>) * #6390 <https://github.com/pmd/pmd/pull/6390>: chore: update javadoc experimental tags - Andreas Dangel <https://github.com/adangel> (@adangel <https://sourceforge.net/u/adangel/profile/>) * #6391 <https://github.com/pmd/pmd/pull/6391>: chore: update javadoc internal API tags - Andreas Dangel <https://github.com/adangel> (@adangel <https://sourceforge.net/u/adangel/profile/>) * #6392 <https://github.com/pmd/pmd/pull/6392>: [doc] ADR 3: Clarify javadoc tags - Andreas Dangel <https://github.com/adangel> (@adangel <https://sourceforge.net/u/adangel/profile/>) * #6394 <https://github.com/pmd/pmd/pull/6394>: [apex] Fix #6349: FieldDeclarationsShouldBeAtStart false positive with properties - Mohamed Hamed <https://github.com/mdhamed238> (@mdhamed238) * #6407 <https://github.com/pmd/pmd/pull/6407>: [java] Fix #3601: InvalidLogMessageFormat: False positive when final parameter is Supplier<throwable> - Lukas Grรคf <https://github.com/lukasgraef> (@lukasgraef)</throwable> * #6417 <https://github.com/pmd/pmd/pull/6417>: [apex] Support CPD suppression with "CPD-OFF" & "CPD-ON" - Jade <https://github.com/goto-dev-null> (@goto-dev-null) * #6428 <https://github.com/pmd/pmd/pull/6428>: [ci] chore: run extensive integration tests under linux only - Andreas Dangel <https://github.com/adangel> (@adangel <https://sourceforge.net/u/adangel/profile/>) * #6429 <https://github.com/pmd/pmd/pull/6429>: [doc] chore: add keywords for auxclasspath in Java documentation - Andreas Dangel <https://github.com/adangel> (@adangel <https://sourceforge.net/u/adangel/profile/>) * #6430 <https://github.com/pmd/pmd/pull/6430>: [java] Fix #6364: Parse error with yield lambda - Andreas Dangel <https://github.com/adangel> (@adangel <https://sourceforge.net/u/adangel/profile/>) ๐ฆ๏ธ Dependency updates * #6367 <https://github.com/pmd/pmd/pull/6367>: Bump PMD from 7.19.0 to 7.20.0 * #6369 <https://github.com/pmd/pmd/pull/6369>: chore(deps): bump ruby/setup-ruby from 1.275.0 to 1.277.0 * #6370 <https://github.com/pmd/pmd/pull/6370>: chore(deps): bump org.apache.groovy:groovy from 5.0.2 to 5.0.3 * #6371 <https://github.com/pmd/pmd/pull/6371>: chore(deps-dev): bump net.bytebuddy:byte-buddy from 1.18.2 to 1.18.3 * #6372 <https://github.com/pmd/pmd/pull/6372>: chore(deps): bump org.codehaus.mojo:exec-maven-plugin from 3.6.2 to 3.6.3 * #6375 <https://github.com/pmd/pmd/pull/6375>: chore: Bump maven from 3.9.11 to 3.9.12 * #6378 <https://github.com/pmd/pmd/pull/6378>: chore(deps): bump ruby/setup-ruby from 1.277.0 to 1.279.0 * #6379 <https://github.com/pmd/pmd/pull/6379>: chore(deps): bump scalameta.version from 4.14.2 to 4.14.4 * #6380 <https://github.com/pmd/pmd/pull/6380>: chore(deps): bump junit.version from 6.0.1 to 6.0.2 * #6381 <https://github.com/pmd/pmd/pull/6381>: chore(deps): bump org.jsoup:jsoup from 1.21.2 to 1.22.1 * #6382 <https://github.com/pmd/pmd/pull/6382>: chore(deps): bump org.checkerframework:checker-qual from 3.52.1 to 3.53.0 * #6383 <https://github.com/pmd/pmd/pull/6383>: chore(deps): bump com.puppycrawl.tools:checkstyle from 12.3.0 to 13.0.0 * #6385 <https://github.com/pmd/pmd/pull/6385>: chore(deps): bump uri from 1.0.3 to 1.0.4 in /docs * #6399 <https://github.com/pmd/pmd/pull/6399>: chore(deps): bump ruby/setup-ruby from 1.279.0 to 1.282.0 * #6400 <https://github.com/pmd/pmd/pull/6400>: chore(deps): bump com.github.siom79.japicmp:japicmp-maven-plugin from 0.25.1 to 0.25.4 * #6401 <https://github.com/pmd/pmd/pull/6401>: chore(deps): bump org.sonatype.central:central-publishing-maven-plugin from 0.9.0 to 0.10.0 * #6403 <https://github.com/pmd/pmd/pull/6403>: chore(deps): bump com.google.protobuf:protobuf-java from 4.33.2 to 4.33.4 * #6410 <https://github.com/pmd/pmd/pull/6410>: chore(deps): bump ruby/setup-ruby from 1.282.0 to 1.285.0 * #6411 <https://github.com/pmd/pmd/pull/6411>: chore(deps): bump actions/cache from 5.0.1 to 5.0.2 * #6412 <https://github.com/pmd/pmd/pull/6412>: chore(deps): bump scalameta.version from 4.14.4 to 4.14.5 * #6413 <https://github.com/pmd/pmd/pull/6413>: chore(deps-dev): bump net.bytebuddy:byte-buddy from 1.18.3 to 1.18.4 * #6414 <https://github.com/pmd/pmd/pull/6414>: chore(deps-dev): bump org.codehaus.mojo:versions-maven-plugin from 2.20.1 to 2.21.0 * #6415 <https://github.com/pmd/pmd/pull/6415>: chore(deps-dev): bump net.bytebuddy:byte-buddy-agent from 1.18.3 to 1.18.4 * #6419 <https://github.com/pmd/pmd/pull/6419>: chore(deps-dev): bump lodash from 4.17.21 to 4.17.23 * #6421 <https://github.com/pmd/pmd/pull/6421>: chore(deps): bump actions/setup-java from 5.1.0 to 5.2.0 * #6422 <https://github.com/pmd/pmd/pull/6422>: chore(deps): bump actions/checkout from 6.0.1 to 6.0.2 * #6423 <https://github.com/pmd/pmd/pull/6423>: chore(deps): bump scalameta.version from 4.14.5 to 4.14.6 * #6424 <https://github.com/pmd/pmd/pull/6424>: chore(deps-dev): bump org.assertj:assertj-core from 3.27.6 to 3.27.7 * #6425 <https://github.com/pmd/pmd/pull/6425>: chore(deps): bump org.apache.groovy:groovy from 5.0.3 to 5.0.4 ๐๏ธ Stats * 146 commits * 30 closed tickets & PRs * Days since last release: 30 |