From 00bf6fe2f7e67e75cd4db863378a50e0533952b0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juan=20Mart=C3=ADn=20Sotuyo=20Dodero?= Date: Sun, 6 Oct 2024 17:21:30 -0300 Subject: [PATCH 01/24] Fix @since for @Generated --- .../src/main/java/net/sourceforge/pmd/annotation/Generated.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pmd-core/src/main/java/net/sourceforge/pmd/annotation/Generated.java b/pmd-core/src/main/java/net/sourceforge/pmd/annotation/Generated.java index ab9b46f465..7dc0d2a253 100644 --- a/pmd-core/src/main/java/net/sourceforge/pmd/annotation/Generated.java +++ b/pmd-core/src/main/java/net/sourceforge/pmd/annotation/Generated.java @@ -11,7 +11,7 @@ import java.lang.annotation.RetentionPolicy; /** * Marks a class as generated code, and therefore to be ignored for code coverage purposes. * - * @since 7.6.0 + * @since 7.7.0 */ @Retention(RetentionPolicy.CLASS) @Documented From 93a019765dd8031b3ee13b9f76c0a7af6afc3eb9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juan=20Mart=C3=ADn=20Sotuyo=20Dodero?= Date: Sun, 6 Oct 2024 17:24:42 -0300 Subject: [PATCH 02/24] Fix incorrect properties --- antlr4-wrapper.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/antlr4-wrapper.xml b/antlr4-wrapper.xml index 7a82734022..6153c751db 100644 --- a/antlr4-wrapper.xml +++ b/antlr4-wrapper.xml @@ -32,10 +32,10 @@ - + - + From ca71d765538dc00d971050a504a4d2a72b458053 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juan=20Mart=C3=ADn=20Sotuyo=20Dodero?= Date: Sun, 6 Oct 2024 19:48:30 -0300 Subject: [PATCH 03/24] Include up-to-date-check to Antlr4 cpd - Prevent unnecessary re-runs --- antlr4-wrapper.xml | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/antlr4-wrapper.xml b/antlr4-wrapper.xml index 6153c751db..4036aa009a 100644 --- a/antlr4-wrapper.xml +++ b/antlr4-wrapper.xml @@ -15,6 +15,7 @@ --> + @@ -40,6 +41,20 @@ + + + + + + + + + + + + + @@ -72,7 +87,9 @@ tofile="${parser-file}"/> - + + From e3cd599da22e039b282323af44a2d1775a337474 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juan=20Mart=C3=ADn=20Sotuyo=20Dodero?= Date: Sun, 6 Oct 2024 19:58:43 -0300 Subject: [PATCH 04/24] Add @Generated annotations to cpd Antlr languages --- antlr4-wrapper.xml | 78 +++++++++++++++++++++++++++++++++++++++++++++- pmd-cs/pom.xml | 1 + pmd-dart/pom.xml | 1 + pmd-go/pom.xml | 1 + pmd-lua/pom.xml | 1 + pom.xml | 8 +++++ 6 files changed, 89 insertions(+), 1 deletion(-) diff --git a/antlr4-wrapper.xml b/antlr4-wrapper.xml index 4036aa009a..b17002f40a 100644 --- a/antlr4-wrapper.xml +++ b/antlr4-wrapper.xml @@ -12,7 +12,14 @@ See AntlrGeneratedParserBase + It also uses the following maven properties: + - ant.contrib.jar: Location of the ant-contrib jar --> + + + + + @@ -55,6 +62,75 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -87,7 +163,7 @@ tofile="${parser-file}"/> - + diff --git a/pmd-cs/pom.xml b/pmd-cs/pom.xml index 0eec39f809..f4879ed0e7 100644 --- a/pmd-cs/pom.xml +++ b/pmd-cs/pom.xml @@ -30,6 +30,7 @@ + diff --git a/pmd-dart/pom.xml b/pmd-dart/pom.xml index 496115127b..f772795832 100644 --- a/pmd-dart/pom.xml +++ b/pmd-dart/pom.xml @@ -30,6 +30,7 @@ + diff --git a/pmd-go/pom.xml b/pmd-go/pom.xml index 4df297ebc9..cf47e5217c 100644 --- a/pmd-go/pom.xml +++ b/pmd-go/pom.xml @@ -30,6 +30,7 @@ + diff --git a/pmd-lua/pom.xml b/pmd-lua/pom.xml index f3a24be6d3..c8adda151f 100644 --- a/pmd-lua/pom.xml +++ b/pmd-lua/pom.xml @@ -30,6 +30,7 @@ + diff --git a/pom.xml b/pom.xml index 8f0474ab59..0f41e68e7d 100644 --- a/pom.xml +++ b/pom.xml @@ -122,6 +122,9 @@ ${project.build.directory}/generated-sources/javacc ${project.basedir}/../javacc-wrapper.xml + 1.0b3 + ${settings.localRepository}/ant-contrib/ant-contrib/${ant-contrib.version}/ant-contrib-${ant-contrib.version}.jar + ${project.build.directory}/generated-sources/antlr4 ${project.basedir}/../antlr4-wrapper.xml @@ -167,6 +170,11 @@ ant ${ant.version} + + ant-contrib + ant-contrib + ${ant-contrib.version} + From 31018611c65db4f699c0f745a5a65de540214e1e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juan=20Mart=C3=ADn=20Sotuyo=20Dodero?= Date: Sun, 6 Oct 2024 20:07:37 -0300 Subject: [PATCH 05/24] Add missing lexer properties --- antlr4-wrapper.xml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/antlr4-wrapper.xml b/antlr4-wrapper.xml index b17002f40a..da0ed3799e 100644 --- a/antlr4-wrapper.xml +++ b/antlr4-wrapper.xml @@ -48,6 +48,9 @@ + + + From f68130eaf9e95c836b682ef068736e9edd209cc9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juan=20Mart=C3=ADn=20Sotuyo=20Dodero?= Date: Sun, 6 Oct 2024 20:07:47 -0300 Subject: [PATCH 06/24] Annotate Antlr generated classes for PMD languages --- antlr4-wrapper.xml | 4 +++- pmd-kotlin/pom.xml | 1 + pmd-swift/pom.xml | 1 + 3 files changed, 5 insertions(+), 1 deletion(-) diff --git a/antlr4-wrapper.xml b/antlr4-wrapper.xml index da0ed3799e..0832bd9bc0 100644 --- a/antlr4-wrapper.xml +++ b/antlr4-wrapper.xml @@ -179,7 +179,9 @@ public class ${lexer-name}'/> - + + diff --git a/pmd-kotlin/pom.xml b/pmd-kotlin/pom.xml index 40f19513de..5e9dbf2e80 100644 --- a/pmd-kotlin/pom.xml +++ b/pmd-kotlin/pom.xml @@ -43,6 +43,7 @@ + diff --git a/pmd-swift/pom.xml b/pmd-swift/pom.xml index 023fa8dd39..0c50cdc818 100644 --- a/pmd-swift/pom.xml +++ b/pmd-swift/pom.xml @@ -42,6 +42,7 @@ + From 2c1a7f026e6ba4d06d73118b44599b617445fccf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment=20Fournier?= Date: Mon, 7 Oct 2024 16:40:37 +0200 Subject: [PATCH 07/24] Fix NPE with empty pattern list --- pmd-java/etc/grammar/Java.jjt | 4 +- .../java21/RecordPatterns.java | 9 ++ .../jdkversiontests/java21/RecordPatterns.txt | 104 ++++++++++++------ 3 files changed, 79 insertions(+), 38 deletions(-) diff --git a/pmd-java/etc/grammar/Java.jjt b/pmd-java/etc/grammar/Java.jjt index ef9406b9c3..630520f4e7 100644 --- a/pmd-java/etc/grammar/Java.jjt +++ b/pmd-java/etc/grammar/Java.jjt @@ -1889,13 +1889,13 @@ void RecordPattern(): (Annotation())* ReferenceType() RecordStructurePattern() } -void RecordStructurePattern() #void: +void RecordStructurePattern() #PatternList: {} { "(" [ ComponentPatternList() ] ")" } -void ComponentPatternList() #PatternList : +void ComponentPatternList() #void : {} { ComponentPattern() ( "," ComponentPattern() )* diff --git a/pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/ast/jdkversiontests/java21/RecordPatterns.java b/pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/ast/jdkversiontests/java21/RecordPatterns.java index bf944eace8..318c0e0134 100644 --- a/pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/ast/jdkversiontests/java21/RecordPatterns.java +++ b/pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/ast/jdkversiontests/java21/RecordPatterns.java @@ -97,4 +97,13 @@ public class RecordPatterns { System.out.println("String " + s); } } + + + record Empty(){} + void foo(Object o) { + boolean x = o instanceof Empty; + x = o instanceof Empty(); + } + + ; } diff --git a/pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/ast/jdkversiontests/java21/RecordPatterns.txt b/pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/ast/jdkversiontests/java21/RecordPatterns.txt index 04bed57df7..7c71e3a2b4 100644 --- a/pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/ast/jdkversiontests/java21/RecordPatterns.txt +++ b/pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/ast/jdkversiontests/java21/RecordPatterns.txt @@ -1,7 +1,7 @@ +- CompilationUnit[@PackageName = ""] +- ClassDeclaration[@Abstract = false, @Annotation = false, @Anonymous = false, @BinaryName = "RecordPatterns", @CanonicalName = "RecordPatterns", @EffectiveVisibility = Visibility.V_PUBLIC, @Enum = false, @Final = false, @Interface = false, @Local = false, @Nested = false, @PackageName = "", @Record = false, @RegularClass = true, @RegularInterface = false, @SimpleName = "RecordPatterns", @Static = false, @TopLevel = true, @UnnamedToplevelClass = false, @Visibility = Visibility.V_PUBLIC] +- ModifierList[@EffectiveModifiers = (JModifier.PUBLIC), @ExplicitModifiers = (JModifier.PUBLIC)] - +- ClassBody[@Empty = false, @Size = 18] + +- ClassBody[@Empty = false, @Size = 21] +- RecordDeclaration[@Abstract = false, @Annotation = false, @Anonymous = false, @BinaryName = "RecordPatterns$Point", @CanonicalName = "RecordPatterns.Point", @EffectiveVisibility = Visibility.V_PACKAGE, @Enum = false, @Final = true, @Interface = false, @Local = false, @Nested = true, @PackageName = "", @Record = true, @RegularClass = false, @RegularInterface = false, @SimpleName = "Point", @Static = true, @TopLevel = false, @UnnamedToplevelClass = false, @Visibility = Visibility.V_PACKAGE] | +- ModifierList[@EffectiveModifiers = (JModifier.STATIC, JModifier.FINAL), @ExplicitModifiers = ()] | +- RecordComponentList[@Empty = false, @Size = 2, @Varargs = false] @@ -512,38 +512,70 @@ | +- StringLiteral[@CompileTimeConstant = true, @ConstValue = "String ", @Empty = false, @Image = "\"String \"", @Length = 7, @LiteralText = "\"String \"", @ParenthesisDepth = 0, @Parenthesized = false, @TextBlock = false] | +- VariableAccess[@AccessType = AccessType.READ, @CompileTimeConstant = false, @Image = "s", @Name = "s", @ParenthesisDepth = 0, @Parenthesized = false] +- MethodDeclaration[@Abstract = false, @Arity = 1, @EffectiveVisibility = Visibility.V_PACKAGE, @Final = false, @Name = "test4", @Overridden = false, @Static = false, @Varargs = false, @Visibility = Visibility.V_PACKAGE, @Void = true] - +- ModifierList[@EffectiveModifiers = (), @ExplicitModifiers = ()] - +- VoidType[] - +- FormalParameters[@Empty = false, @Size = 1] - | +- FormalParameter[@EffectiveVisibility = Visibility.V_LOCAL, @Final = false, @Varargs = false, @Visibility = Visibility.V_LOCAL] - | +- ModifierList[@EffectiveModifiers = (), @ExplicitModifiers = ()] - | +- ClassType[@FullyQualified = false, @PackageQualifier = null, @SimpleName = "Box"] - | | +- TypeArguments[@Diamond = false, @Empty = false, @Size = 1] - | | +- ClassType[@FullyQualified = false, @PackageQualifier = null, @SimpleName = "Box"] - | | +- TypeArguments[@Diamond = false, @Empty = false, @Size = 1] - | | +- ClassType[@FullyQualified = false, @PackageQualifier = null, @SimpleName = "String"] - | +- VariableId[@ArrayType = false, @EffectiveVisibility = Visibility.V_LOCAL, @EnumConstant = false, @ExceptionBlockParameter = false, @Field = false, @Final = false, @ForLoopVariable = false, @ForeachVariable = false, @FormalParameter = true, @LambdaParameter = false, @LocalVariable = false, @Name = "bo", @PatternBinding = false, @RecordComponent = false, @ResourceDeclaration = false, @Static = false, @TypeInferred = false, @Unnamed = false, @Visibility = Visibility.V_LOCAL] - +- Block[@Empty = false, @Size = 1, @containsComment = false] - +- IfStatement[@Else = false] - +- InfixExpression[@CompileTimeConstant = false, @Operator = BinaryOp.INSTANCEOF, @ParenthesisDepth = 0, @Parenthesized = false] - | +- VariableAccess[@AccessType = AccessType.READ, @CompileTimeConstant = false, @Image = "bo", @Name = "bo", @ParenthesisDepth = 0, @Parenthesized = false] - | +- PatternExpression[@CompileTimeConstant = false, @ParenthesisDepth = 0, @Parenthesized = false] - | +- RecordPattern[] - | +- ClassType[@FullyQualified = false, @PackageQualifier = null, @SimpleName = "Box"] - | +- PatternList[@Empty = false, @Size = 1] - | +- RecordPattern[] - | +- ClassType[@FullyQualified = false, @PackageQualifier = null, @SimpleName = "Box"] - | +- PatternList[@Empty = false, @Size = 1] - | +- TypePattern[@EffectiveVisibility = Visibility.V_PACKAGE, @Visibility = Visibility.V_PACKAGE] - | +- ModifierList[@EffectiveModifiers = (), @ExplicitModifiers = ()] - | +- VariableId[@ArrayType = false, @EffectiveVisibility = Visibility.V_LOCAL, @EnumConstant = false, @ExceptionBlockParameter = false, @Field = false, @Final = false, @ForLoopVariable = false, @ForeachVariable = false, @FormalParameter = false, @LambdaParameter = false, @LocalVariable = false, @Name = "s", @PatternBinding = true, @RecordComponent = false, @ResourceDeclaration = false, @Static = false, @TypeInferred = true, @Unnamed = false, @Visibility = Visibility.V_LOCAL] - +- Block[@Empty = false, @Size = 1, @containsComment = false] - +- ExpressionStatement[] - +- MethodCall[@CompileTimeConstant = false, @Image = "println", @MethodName = "println", @ParenthesisDepth = 0, @Parenthesized = false] - +- FieldAccess[@AccessType = AccessType.READ, @CompileTimeConstant = false, @Image = "out", @Name = "out", @ParenthesisDepth = 0, @Parenthesized = false] - | +- TypeExpression[@CompileTimeConstant = false, @ParenthesisDepth = 0, @Parenthesized = false] - | +- ClassType[@FullyQualified = false, @PackageQualifier = null, @SimpleName = "System"] - +- ArgumentList[@Empty = false, @Size = 1] - +- InfixExpression[@CompileTimeConstant = false, @Operator = BinaryOp.ADD, @ParenthesisDepth = 0, @Parenthesized = false] - +- StringLiteral[@CompileTimeConstant = true, @ConstValue = "String ", @Empty = false, @Image = "\"String \"", @Length = 7, @LiteralText = "\"String \"", @ParenthesisDepth = 0, @Parenthesized = false, @TextBlock = false] - +- VariableAccess[@AccessType = AccessType.READ, @CompileTimeConstant = false, @Image = "s", @Name = "s", @ParenthesisDepth = 0, @Parenthesized = false] + | +- ModifierList[@EffectiveModifiers = (), @ExplicitModifiers = ()] + | +- VoidType[] + | +- FormalParameters[@Empty = false, @Size = 1] + | | +- FormalParameter[@EffectiveVisibility = Visibility.V_LOCAL, @Final = false, @Varargs = false, @Visibility = Visibility.V_LOCAL] + | | +- ModifierList[@EffectiveModifiers = (), @ExplicitModifiers = ()] + | | +- ClassType[@FullyQualified = false, @PackageQualifier = null, @SimpleName = "Box"] + | | | +- TypeArguments[@Diamond = false, @Empty = false, @Size = 1] + | | | +- ClassType[@FullyQualified = false, @PackageQualifier = null, @SimpleName = "Box"] + | | | +- TypeArguments[@Diamond = false, @Empty = false, @Size = 1] + | | | +- ClassType[@FullyQualified = false, @PackageQualifier = null, @SimpleName = "String"] + | | +- VariableId[@ArrayType = false, @EffectiveVisibility = Visibility.V_LOCAL, @EnumConstant = false, @ExceptionBlockParameter = false, @Field = false, @Final = false, @ForLoopVariable = false, @ForeachVariable = false, @FormalParameter = true, @LambdaParameter = false, @LocalVariable = false, @Name = "bo", @PatternBinding = false, @RecordComponent = false, @ResourceDeclaration = false, @Static = false, @TypeInferred = false, @Unnamed = false, @Visibility = Visibility.V_LOCAL] + | +- Block[@Empty = false, @Size = 1, @containsComment = false] + | +- IfStatement[@Else = false] + | +- InfixExpression[@CompileTimeConstant = false, @Operator = BinaryOp.INSTANCEOF, @ParenthesisDepth = 0, @Parenthesized = false] + | | +- VariableAccess[@AccessType = AccessType.READ, @CompileTimeConstant = false, @Image = "bo", @Name = "bo", @ParenthesisDepth = 0, @Parenthesized = false] + | | +- PatternExpression[@CompileTimeConstant = false, @ParenthesisDepth = 0, @Parenthesized = false] + | | +- RecordPattern[] + | | +- ClassType[@FullyQualified = false, @PackageQualifier = null, @SimpleName = "Box"] + | | +- PatternList[@Empty = false, @Size = 1] + | | +- RecordPattern[] + | | +- ClassType[@FullyQualified = false, @PackageQualifier = null, @SimpleName = "Box"] + | | +- PatternList[@Empty = false, @Size = 1] + | | +- TypePattern[@EffectiveVisibility = Visibility.V_PACKAGE, @Visibility = Visibility.V_PACKAGE] + | | +- ModifierList[@EffectiveModifiers = (), @ExplicitModifiers = ()] + | | +- VariableId[@ArrayType = false, @EffectiveVisibility = Visibility.V_LOCAL, @EnumConstant = false, @ExceptionBlockParameter = false, @Field = false, @Final = false, @ForLoopVariable = false, @ForeachVariable = false, @FormalParameter = false, @LambdaParameter = false, @LocalVariable = false, @Name = "s", @PatternBinding = true, @RecordComponent = false, @ResourceDeclaration = false, @Static = false, @TypeInferred = true, @Unnamed = false, @Visibility = Visibility.V_LOCAL] + | +- Block[@Empty = false, @Size = 1, @containsComment = false] + | +- ExpressionStatement[] + | +- MethodCall[@CompileTimeConstant = false, @Image = "println", @MethodName = "println", @ParenthesisDepth = 0, @Parenthesized = false] + | +- FieldAccess[@AccessType = AccessType.READ, @CompileTimeConstant = false, @Image = "out", @Name = "out", @ParenthesisDepth = 0, @Parenthesized = false] + | | +- TypeExpression[@CompileTimeConstant = false, @ParenthesisDepth = 0, @Parenthesized = false] + | | +- ClassType[@FullyQualified = false, @PackageQualifier = null, @SimpleName = "System"] + | +- ArgumentList[@Empty = false, @Size = 1] + | +- InfixExpression[@CompileTimeConstant = false, @Operator = BinaryOp.ADD, @ParenthesisDepth = 0, @Parenthesized = false] + | +- StringLiteral[@CompileTimeConstant = true, @ConstValue = "String ", @Empty = false, @Image = "\"String \"", @Length = 7, @LiteralText = "\"String \"", @ParenthesisDepth = 0, @Parenthesized = false, @TextBlock = false] + | +- VariableAccess[@AccessType = AccessType.READ, @CompileTimeConstant = false, @Image = "s", @Name = "s", @ParenthesisDepth = 0, @Parenthesized = false] + +- RecordDeclaration[@Abstract = false, @Annotation = false, @Anonymous = false, @BinaryName = "RecordPatterns$Empty", @CanonicalName = "RecordPatterns.Empty", @EffectiveVisibility = Visibility.V_PACKAGE, @Enum = false, @Final = true, @Interface = false, @Local = false, @Nested = true, @PackageName = "", @Record = true, @RegularClass = false, @RegularInterface = false, @SimpleName = "Empty", @Static = true, @TopLevel = false, @UnnamedToplevelClass = false, @Visibility = Visibility.V_PACKAGE] + | +- ModifierList[@EffectiveModifiers = (JModifier.STATIC, JModifier.FINAL), @ExplicitModifiers = ()] + | +- RecordComponentList[@Empty = true, @Size = 0, @Varargs = false] + | +- RecordBody[@Empty = true, @Size = 0] + +- MethodDeclaration[@Abstract = false, @Arity = 1, @EffectiveVisibility = Visibility.V_PACKAGE, @Final = false, @Name = "foo", @Overridden = false, @Static = false, @Varargs = false, @Visibility = Visibility.V_PACKAGE, @Void = true] + | +- ModifierList[@EffectiveModifiers = (), @ExplicitModifiers = ()] + | +- VoidType[] + | +- FormalParameters[@Empty = false, @Size = 1] + | | +- FormalParameter[@EffectiveVisibility = Visibility.V_LOCAL, @Final = false, @Varargs = false, @Visibility = Visibility.V_LOCAL] + | | +- ModifierList[@EffectiveModifiers = (), @ExplicitModifiers = ()] + | | +- ClassType[@FullyQualified = false, @PackageQualifier = null, @SimpleName = "Object"] + | | +- VariableId[@ArrayType = false, @EffectiveVisibility = Visibility.V_LOCAL, @EnumConstant = false, @ExceptionBlockParameter = false, @Field = false, @Final = false, @ForLoopVariable = false, @ForeachVariable = false, @FormalParameter = true, @LambdaParameter = false, @LocalVariable = false, @Name = "o", @PatternBinding = false, @RecordComponent = false, @ResourceDeclaration = false, @Static = false, @TypeInferred = false, @Unnamed = false, @Visibility = Visibility.V_LOCAL] + | +- Block[@Empty = false, @Size = 2, @containsComment = false] + | +- LocalVariableDeclaration[@EffectiveVisibility = Visibility.V_LOCAL, @Final = false, @TypeInferred = false, @Visibility = Visibility.V_LOCAL] + | | +- ModifierList[@EffectiveModifiers = (), @ExplicitModifiers = ()] + | | +- PrimitiveType[@Kind = PrimitiveTypeKind.BOOLEAN] + | | +- VariableDeclarator[@Initializer = true, @Name = "x"] + | | +- VariableId[@ArrayType = false, @EffectiveVisibility = Visibility.V_LOCAL, @EnumConstant = false, @ExceptionBlockParameter = false, @Field = false, @Final = false, @ForLoopVariable = false, @ForeachVariable = false, @FormalParameter = false, @LambdaParameter = false, @LocalVariable = true, @Name = "x", @PatternBinding = false, @RecordComponent = false, @ResourceDeclaration = false, @Static = false, @TypeInferred = false, @Unnamed = false, @Visibility = Visibility.V_LOCAL] + | | +- InfixExpression[@CompileTimeConstant = false, @Operator = BinaryOp.INSTANCEOF, @ParenthesisDepth = 0, @Parenthesized = false] + | | +- VariableAccess[@AccessType = AccessType.READ, @CompileTimeConstant = false, @Image = "o", @Name = "o", @ParenthesisDepth = 0, @Parenthesized = false] + | | +- TypeExpression[@CompileTimeConstant = false, @ParenthesisDepth = 0, @Parenthesized = false] + | | +- ClassType[@FullyQualified = false, @PackageQualifier = null, @SimpleName = "Empty"] + | +- ExpressionStatement[] + | +- AssignmentExpression[@CompileTimeConstant = false, @Compound = false, @Operator = AssignmentOp.ASSIGN, @ParenthesisDepth = 0, @Parenthesized = false] + | +- VariableAccess[@AccessType = AccessType.WRITE, @CompileTimeConstant = false, @Image = "x", @Name = "x", @ParenthesisDepth = 0, @Parenthesized = false] + | +- InfixExpression[@CompileTimeConstant = false, @Operator = BinaryOp.INSTANCEOF, @ParenthesisDepth = 0, @Parenthesized = false] + | +- VariableAccess[@AccessType = AccessType.READ, @CompileTimeConstant = false, @Image = "o", @Name = "o", @ParenthesisDepth = 0, @Parenthesized = false] + | +- PatternExpression[@CompileTimeConstant = false, @ParenthesisDepth = 0, @Parenthesized = false] + | +- RecordPattern[] + | +- ClassType[@FullyQualified = false, @PackageQualifier = null, @SimpleName = "Empty"] + | +- PatternList[@Empty = true, @Size = 0] + +- EmptyDeclaration[] From b724b4dd33971ea0bdf45660c9107bd2e2ff95b0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment=20Fournier?= Date: Mon, 7 Oct 2024 18:18:32 +0200 Subject: [PATCH 08/24] Fix DataflowPassTest --- .../java21/RecordPatterns.java | 5 ++- .../jdkversiontests/java21/RecordPatterns.txt | 41 ++++++++++--------- 2 files changed, 25 insertions(+), 21 deletions(-) diff --git a/pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/ast/jdkversiontests/java21/RecordPatterns.java b/pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/ast/jdkversiontests/java21/RecordPatterns.java index 318c0e0134..36b02e94d8 100644 --- a/pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/ast/jdkversiontests/java21/RecordPatterns.java +++ b/pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/ast/jdkversiontests/java21/RecordPatterns.java @@ -101,8 +101,9 @@ public class RecordPatterns { record Empty(){} void foo(Object o) { - boolean x = o instanceof Empty; - x = o instanceof Empty(); + if (o instanceof Empty + || o instanceof Empty()) + System.out.println("Empty " + o); } ; diff --git a/pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/ast/jdkversiontests/java21/RecordPatterns.txt b/pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/ast/jdkversiontests/java21/RecordPatterns.txt index 7c71e3a2b4..44dc24bba6 100644 --- a/pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/ast/jdkversiontests/java21/RecordPatterns.txt +++ b/pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/ast/jdkversiontests/java21/RecordPatterns.txt @@ -559,23 +559,26 @@ | | +- ModifierList[@EffectiveModifiers = (), @ExplicitModifiers = ()] | | +- ClassType[@FullyQualified = false, @PackageQualifier = null, @SimpleName = "Object"] | | +- VariableId[@ArrayType = false, @EffectiveVisibility = Visibility.V_LOCAL, @EnumConstant = false, @ExceptionBlockParameter = false, @Field = false, @Final = false, @ForLoopVariable = false, @ForeachVariable = false, @FormalParameter = true, @LambdaParameter = false, @LocalVariable = false, @Name = "o", @PatternBinding = false, @RecordComponent = false, @ResourceDeclaration = false, @Static = false, @TypeInferred = false, @Unnamed = false, @Visibility = Visibility.V_LOCAL] - | +- Block[@Empty = false, @Size = 2, @containsComment = false] - | +- LocalVariableDeclaration[@EffectiveVisibility = Visibility.V_LOCAL, @Final = false, @TypeInferred = false, @Visibility = Visibility.V_LOCAL] - | | +- ModifierList[@EffectiveModifiers = (), @ExplicitModifiers = ()] - | | +- PrimitiveType[@Kind = PrimitiveTypeKind.BOOLEAN] - | | +- VariableDeclarator[@Initializer = true, @Name = "x"] - | | +- VariableId[@ArrayType = false, @EffectiveVisibility = Visibility.V_LOCAL, @EnumConstant = false, @ExceptionBlockParameter = false, @Field = false, @Final = false, @ForLoopVariable = false, @ForeachVariable = false, @FormalParameter = false, @LambdaParameter = false, @LocalVariable = true, @Name = "x", @PatternBinding = false, @RecordComponent = false, @ResourceDeclaration = false, @Static = false, @TypeInferred = false, @Unnamed = false, @Visibility = Visibility.V_LOCAL] - | | +- InfixExpression[@CompileTimeConstant = false, @Operator = BinaryOp.INSTANCEOF, @ParenthesisDepth = 0, @Parenthesized = false] - | | +- VariableAccess[@AccessType = AccessType.READ, @CompileTimeConstant = false, @Image = "o", @Name = "o", @ParenthesisDepth = 0, @Parenthesized = false] - | | +- TypeExpression[@CompileTimeConstant = false, @ParenthesisDepth = 0, @Parenthesized = false] - | | +- ClassType[@FullyQualified = false, @PackageQualifier = null, @SimpleName = "Empty"] - | +- ExpressionStatement[] - | +- AssignmentExpression[@CompileTimeConstant = false, @Compound = false, @Operator = AssignmentOp.ASSIGN, @ParenthesisDepth = 0, @Parenthesized = false] - | +- VariableAccess[@AccessType = AccessType.WRITE, @CompileTimeConstant = false, @Image = "x", @Name = "x", @ParenthesisDepth = 0, @Parenthesized = false] - | +- InfixExpression[@CompileTimeConstant = false, @Operator = BinaryOp.INSTANCEOF, @ParenthesisDepth = 0, @Parenthesized = false] - | +- VariableAccess[@AccessType = AccessType.READ, @CompileTimeConstant = false, @Image = "o", @Name = "o", @ParenthesisDepth = 0, @Parenthesized = false] - | +- PatternExpression[@CompileTimeConstant = false, @ParenthesisDepth = 0, @Parenthesized = false] - | +- RecordPattern[] - | +- ClassType[@FullyQualified = false, @PackageQualifier = null, @SimpleName = "Empty"] - | +- PatternList[@Empty = true, @Size = 0] + | +- Block[@Empty = false, @Size = 1, @containsComment = false] + | +- IfStatement[@Else = false] + | +- InfixExpression[@CompileTimeConstant = false, @Operator = BinaryOp.CONDITIONAL_OR, @ParenthesisDepth = 0, @Parenthesized = false] + | | +- InfixExpression[@CompileTimeConstant = false, @Operator = BinaryOp.INSTANCEOF, @ParenthesisDepth = 0, @Parenthesized = false] + | | | +- VariableAccess[@AccessType = AccessType.READ, @CompileTimeConstant = false, @Image = "o", @Name = "o", @ParenthesisDepth = 0, @Parenthesized = false] + | | | +- TypeExpression[@CompileTimeConstant = false, @ParenthesisDepth = 0, @Parenthesized = false] + | | | +- ClassType[@FullyQualified = false, @PackageQualifier = null, @SimpleName = "Empty"] + | | +- InfixExpression[@CompileTimeConstant = false, @Operator = BinaryOp.INSTANCEOF, @ParenthesisDepth = 0, @Parenthesized = false] + | | +- VariableAccess[@AccessType = AccessType.READ, @CompileTimeConstant = false, @Image = "o", @Name = "o", @ParenthesisDepth = 0, @Parenthesized = false] + | | +- PatternExpression[@CompileTimeConstant = false, @ParenthesisDepth = 0, @Parenthesized = false] + | | +- RecordPattern[] + | | +- ClassType[@FullyQualified = false, @PackageQualifier = null, @SimpleName = "Empty"] + | | +- PatternList[@Empty = true, @Size = 0] + | +- ExpressionStatement[] + | +- MethodCall[@CompileTimeConstant = false, @Image = "println", @MethodName = "println", @ParenthesisDepth = 0, @Parenthesized = false] + | +- FieldAccess[@AccessType = AccessType.READ, @CompileTimeConstant = false, @Image = "out", @Name = "out", @ParenthesisDepth = 0, @Parenthesized = false] + | | +- TypeExpression[@CompileTimeConstant = false, @ParenthesisDepth = 0, @Parenthesized = false] + | | +- ClassType[@FullyQualified = false, @PackageQualifier = null, @SimpleName = "System"] + | +- ArgumentList[@Empty = false, @Size = 1] + | +- InfixExpression[@CompileTimeConstant = false, @Operator = BinaryOp.ADD, @ParenthesisDepth = 0, @Parenthesized = false] + | +- StringLiteral[@CompileTimeConstant = true, @ConstValue = "Empty ", @Empty = false, @Image = "\"Empty \"", @Length = 6, @LiteralText = "\"Empty \"", @ParenthesisDepth = 0, @Parenthesized = false, @TextBlock = false] + | +- VariableAccess[@AccessType = AccessType.READ, @CompileTimeConstant = false, @Image = "o", @Name = "o", @ParenthesisDepth = 0, @Parenthesized = false] +- EmptyDeclaration[] From 54dfabea9bc70f22d8fe547e4993841d6a1cf739 Mon Sep 17 00:00:00 2001 From: Aryant Tripathi Date: Wed, 9 Oct 2024 10:00:02 +0530 Subject: [PATCH 09/24] Support Boolean wrapper class for BooleanGetMethodName rule (#5253) --- .../main/resources/category/java/codestyle.xml | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/pmd-java/src/main/resources/category/java/codestyle.xml b/pmd-java/src/main/resources/category/java/codestyle.xml index d525b0df9c..7f16e0177d 100644 --- a/pmd-java/src/main/resources/category/java/codestyle.xml +++ b/pmd-java/src/main/resources/category/java/codestyle.xml @@ -172,32 +172,33 @@ public class SomeJNIClass { -Methods that return boolean results should be named as predicate statements to denote this. -I.e, 'isReady()', 'hasValues()', 'canCommit()', 'willFail()', etc. Avoid the use of the 'get' -prefix for these methods. + Methods that return boolean or Boolean results should be named as predicate statements to denote this. + I.e., 'isReady()', 'hasValues()', 'canCommit()', 'willFail()', etc. Avoid the use of the 'get' prefix for these methods. 4 - - From 8b2af2db8a6b3e006a39d38b4f2538012f15f913 Mon Sep 17 00:00:00 2001 From: Aryant Tripathi Date: Thu, 10 Oct 2024 20:44:06 +0530 Subject: [PATCH 10/24] Support wrapper class in BooleanGetMethodName rule (#5253) - Updated XPath rule to include both primitive and wrapper class: (PrimitiveType[@Kind = 'boolean'] or ClassType[pmd-java:typeIs('java.lang.Boolean')]) - Added test cases to ensure that methods returning are also flagged correctly. - Ensured the rule enforces consistent method naming for both primitive and wrapper types. --- .../resources/category/java/codestyle.xml | 2 +- .../codestyle/xml/BooleanGetMethodName.xml | 60 +++++++++++++++++++ 2 files changed, 61 insertions(+), 1 deletion(-) diff --git a/pmd-java/src/main/resources/category/java/codestyle.xml b/pmd-java/src/main/resources/category/java/codestyle.xml index 7f16e0177d..5b382db9bc 100644 --- a/pmd-java/src/main/resources/category/java/codestyle.xml +++ b/pmd-java/src/main/resources/category/java/codestyle.xml @@ -187,7 +187,7 @@ public class SomeJNIClass { //MethodDeclaration [starts-with(@Name, 'get')] [@Arity = 0 or $checkParameterizedMethods = true()] - [ (PrimitiveType[@Kind = 'boolean'] or ReferenceType[@Type = 'Boolean']) and @Overridden = false() ] + [ (PrimitiveType[@Kind = 'boolean'] or ClassType[pmd-java:typeIs('java.lang.Boolean')]) and @Overridden = false() ] ]]> diff --git a/pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/rule/codestyle/xml/BooleanGetMethodName.xml b/pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/rule/codestyle/xml/BooleanGetMethodName.xml index c0eee19a2f..648afbf32b 100644 --- a/pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/rule/codestyle/xml/BooleanGetMethodName.xml +++ b/pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/rule/codestyle/xml/BooleanGetMethodName.xml @@ -34,6 +34,16 @@ public class Foo { ]]> + + Should not match on multiple parameters by default + 0 + + + Should not match on methods annotated with @Override 0 @@ -60,4 +70,54 @@ public class Foo { } ]]> + + + Bad name + 1 + + + + + Good name + 0 + + + + + Should not match on methods annotated with @Override + 0 + + + + + + + Should match on multiple parameters when checkParameterizedMethods = true + true + 1 + + + From fbde9b967f2194975546141a78ffa9df726ea5d3 Mon Sep 17 00:00:00 2001 From: Andreas Dangel Date: Fri, 11 Oct 2024 12:35:19 +0200 Subject: [PATCH 11/24] [doc] Update release notes (#5261, #5264) --- docs/pages/release_notes.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/pages/release_notes.md b/docs/pages/release_notes.md index 197b7a4aec..4b87f9bfae 100644 --- a/docs/pages/release_notes.md +++ b/docs/pages/release_notes.md @@ -32,6 +32,7 @@ The old rule names still work but are deprecated. ### ๐Ÿ› Fixed Issues * java * [#4532](https://github.com/pmd/pmd/issues/4532): \[java] Rule misnomer for JUnit* rules + * [#5261](https://github.com/pmd/pmd/issues/5261): \[java] Record patterns with empty deconstructor lists lead to NPE * java-errorprone * [#5067](https://github.com/pmd/pmd/issues/5067): \[java] CloseResource: False positive for FileSystems.getDefault() @@ -49,6 +50,7 @@ The old rule names still work but are deprecated. * [#4965](https://github.com/pmd/pmd/pull/4965): \[java] Rename JUnit rules with overly restrictive names - [Juan Martรญn Sotuyo Dodero](https://github.com/jsotuyod) (@jsotuyod) * [#5225](https://github.com/pmd/pmd/pull/5225): \[java] Fix #5067: CloseResource: False positive for FileSystems.getDefault() - [Lukas Grรคf](https://github.com/lukasgraef) (@lukasgraef) * [#5241](https://github.com/pmd/pmd/pull/5241): Ignore javacc code in coverage report - [Juan Martรญn Sotuyo Dodero](https://github.com/jsotuyod) (@jsotuyod) +* [#5264](https://github.com/pmd/pmd/pull/5264): \[java] Fix NPE with empty pattern list - [Clรฉment Fournier](https://github.com/oowekyala) (@oowekyala) {% endtocmaker %} From 7655cfc63bb1b7dfdea2298beec0ae30215bb5e5 Mon Sep 17 00:00:00 2001 From: Andreas Dangel Date: Fri, 11 Oct 2024 12:35:45 +0200 Subject: [PATCH 12/24] Add @gudzpoz as a contributor --- .all-contributorsrc | 9 ++++++ docs/pages/pmd/projectdocs/credits.md | 41 ++++++++++++++------------- 2 files changed, 30 insertions(+), 20 deletions(-) diff --git a/.all-contributorsrc b/.all-contributorsrc index 28d946f30a..e04c9b717b 100644 --- a/.all-contributorsrc +++ b/.all-contributorsrc @@ -7819,6 +7819,15 @@ "contributions": [ "bug" ] + }, + { + "login": "gudzpoz", + "name": "gudzpoz", + "avatar_url": "https://avatars.githubusercontent.com/u/14026120?v=4", + "profile": "https://kyo.iroiro.party/", + "contributions": [ + "bug" + ] } ], "contributorsPerLine": 7, diff --git a/docs/pages/pmd/projectdocs/credits.md b/docs/pages/pmd/projectdocs/credits.md index 4795947746..04fbc8f37a 100644 --- a/docs/pages/pmd/projectdocs/credits.md +++ b/docs/pages/pmd/projectdocs/credits.md @@ -930,180 +930,181 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d fsapatin
fsapatin

๐Ÿ› gearsethenry
gearsethenry

๐Ÿ› gracia19
gracia19

๐Ÿ› - guo fei
guo fei

๐Ÿ› + gudzpoz
gudzpoz

๐Ÿ› + guo fei
guo fei

๐Ÿ› gurmsc5
gurmsc5

๐Ÿ› gwilymatgearset
gwilymatgearset

๐Ÿ’ป ๐Ÿ› haigsn
haigsn

๐Ÿ› hemanshu070
hemanshu070

๐Ÿ› henrik242
henrik242

๐Ÿ› hongpuwu
hongpuwu

๐Ÿ› - hvbtup
hvbtup

๐Ÿ’ป ๐Ÿ› + hvbtup
hvbtup

๐Ÿ’ป ๐Ÿ› igniti GmbH
igniti GmbH

๐Ÿ› ilovezfs
ilovezfs

๐Ÿ› imax-erik
imax-erik

๐Ÿ› itaigilo
itaigilo

๐Ÿ› jakivey32
jakivey32

๐Ÿ› jbennett2091
jbennett2091

๐Ÿ› - jcamerin
jcamerin

๐Ÿ› + jcamerin
jcamerin

๐Ÿ› jkeener1
jkeener1

๐Ÿ› jmetertea
jmetertea

๐Ÿ› johnra2
johnra2

๐Ÿ’ป johnzhao9
johnzhao9

๐Ÿ› josemanuelrolon
josemanuelrolon

๐Ÿ’ป ๐Ÿ› kabroxiko
kabroxiko

๐Ÿ’ป ๐Ÿ› - karthikaiyasamy
karthikaiyasamy

๐Ÿ“– + karthikaiyasamy
karthikaiyasamy

๐Ÿ“– karwer
karwer

๐Ÿ› kaulonline
kaulonline

๐Ÿ› kdaemonv
kdaemonv

๐Ÿ› kdebski85
kdebski85

๐Ÿ› ๐Ÿ’ป kenji21
kenji21

๐Ÿ’ป ๐Ÿ› kfranic
kfranic

๐Ÿ› - khalidkh
khalidkh

๐Ÿ› + khalidkh
khalidkh

๐Ÿ› koalalam
koalalam

๐Ÿ› krzyk
krzyk

๐Ÿ› lasselindqvist
lasselindqvist

๐Ÿ› lgemeinhardt
lgemeinhardt

๐Ÿ› lihuaib
lihuaib

๐Ÿ› liqingjun123
liqingjun123

๐Ÿ› - lonelyma1021
lonelyma1021

๐Ÿ› + lonelyma1021
lonelyma1021

๐Ÿ› lpeddy
lpeddy

๐Ÿ› lujiefsi
lujiefsi

๐Ÿ’ป lukelukes
lukelukes

๐Ÿ’ป lyriccoder
lyriccoder

๐Ÿ› marcelmore
marcelmore

๐Ÿ› matchbox
matchbox

๐Ÿ› - matthiaskraaz
matthiaskraaz

๐Ÿ› + matthiaskraaz
matthiaskraaz

๐Ÿ› meandonlyme
meandonlyme

๐Ÿ› mikesive
mikesive

๐Ÿ› milossesic
milossesic

๐Ÿ› mluckam
mluckam

๐Ÿ’ป ๐Ÿ› mohan-chinnappan-n
mohan-chinnappan-n

๐Ÿ’ป mriddell95
mriddell95

๐Ÿ› - mrlzh
mrlzh

๐Ÿ› + mrlzh
mrlzh

๐Ÿ› msloan
msloan

๐Ÿ› mucharlaravalika
mucharlaravalika

๐Ÿ› mvenneman
mvenneman

๐Ÿ› nareshl119
nareshl119

๐Ÿ› nicolas-harraudeau-sonarsource
nicolas-harraudeau-sonarsource

๐Ÿ› noerremark
noerremark

๐Ÿ› - novsirion
novsirion

๐Ÿ› + novsirion
novsirion

๐Ÿ› nwcm
nwcm

๐Ÿ“– ๐Ÿ› ๐Ÿ’ป oggboy
oggboy

๐Ÿ› oinume
oinume

๐Ÿ› orimarko
orimarko

๐Ÿ’ป ๐Ÿ› pablogomez2197
pablogomez2197

๐Ÿ› pacvz
pacvz

๐Ÿ’ป - pallavi agarwal
pallavi agarwal

๐Ÿ› + pallavi agarwal
pallavi agarwal

๐Ÿ› parksungrin
parksungrin

๐Ÿ› patpatpat123
patpatpat123

๐Ÿ› patriksevallius
patriksevallius

๐Ÿ› pbrajesh1
pbrajesh1

๐Ÿ› phoenix384
phoenix384

๐Ÿ› piotrszymanski-sc
piotrszymanski-sc

๐Ÿ’ป - plan3d
plan3d

๐Ÿ› + plan3d
plan3d

๐Ÿ› poojasix
poojasix

๐Ÿ› prabhushrikant
prabhushrikant

๐Ÿ› pujitha8783
pujitha8783

๐Ÿ› r-r-a-j
r-r-a-j

๐Ÿ› raghujayjunk
raghujayjunk

๐Ÿ› rajeshveera
rajeshveera

๐Ÿ› - rajeswarreddy88
rajeswarreddy88

๐Ÿ› + rajeswarreddy88
rajeswarreddy88

๐Ÿ› recdevs
recdevs

๐Ÿ› reudismam
reudismam

๐Ÿ’ป ๐Ÿ› rijkt
rijkt

๐Ÿ› rillig-tk
rillig-tk

๐Ÿ› rmohan20
rmohan20

๐Ÿ’ป ๐Ÿ› rnveach
rnveach

๐Ÿ› - rxmicro
rxmicro

๐Ÿ› + rxmicro
rxmicro

๐Ÿ› ryan-gustafson
ryan-gustafson

๐Ÿ’ป ๐Ÿ› sabi0
sabi0

๐Ÿ› scais
scais

๐Ÿ› schosin
schosin

๐Ÿ› screamingfrog
screamingfrog

๐Ÿ’ต sebbASF
sebbASF

๐Ÿ› - sergeygorbaty
sergeygorbaty

๐Ÿ’ป + sergeygorbaty
sergeygorbaty

๐Ÿ’ป shilko2013
shilko2013

๐Ÿ› shiomiyan
shiomiyan

๐Ÿ“– simeonKondr
simeonKondr

๐Ÿ› snajberk
snajberk

๐Ÿ› sniperrifle2004
sniperrifle2004

๐Ÿ› snuyanzin
snuyanzin

๐Ÿ› ๐Ÿ’ป - soloturn
soloturn

๐Ÿ› + soloturn
soloturn

๐Ÿ› soyodream
soyodream

๐Ÿ› sratz
sratz

๐Ÿ› stonio
stonio

๐Ÿ› sturton
sturton

๐Ÿ’ป ๐Ÿ› sudharmohan
sudharmohan

๐Ÿ› suruchidawar
suruchidawar

๐Ÿ› - svenfinitiv
svenfinitiv

๐Ÿ› + svenfinitiv
svenfinitiv

๐Ÿ› szymanp23
szymanp23

๐Ÿ› ๐Ÿ’ป tashiscool
tashiscool

๐Ÿ› test-git-hook
test-git-hook

๐Ÿ› testation21
testation21

๐Ÿ’ป ๐Ÿ› thanosa
thanosa

๐Ÿ› tiandiyixian
tiandiyixian

๐Ÿ› - tobwoerk
tobwoerk

๐Ÿ› + tobwoerk
tobwoerk

๐Ÿ› tprouvot
tprouvot

๐Ÿ› ๐Ÿ’ป trentchilders
trentchilders

๐Ÿ› triandicAnt
triandicAnt

๐Ÿ› trishul14
trishul14

๐Ÿ› tsui
tsui

๐Ÿ› wangzitom12306
wangzitom12306

๐Ÿ› - winhkey
winhkey

๐Ÿ› + winhkey
winhkey

๐Ÿ› witherspore
witherspore

๐Ÿ› wjljack
wjljack

๐Ÿ› wuchiuwong
wuchiuwong

๐Ÿ› xingsong
xingsong

๐Ÿ› xioayuge
xioayuge

๐Ÿ› xnYi9wRezm
xnYi9wRezm

๐Ÿ’ป ๐Ÿ› - xuanuy
xuanuy

๐Ÿ› + xuanuy
xuanuy

๐Ÿ› xyf0921
xyf0921

๐Ÿ› yalechen-cyw3
yalechen-cyw3

๐Ÿ› yasuharu-sato
yasuharu-sato

๐Ÿ› zenglian
zenglian

๐Ÿ› zgrzyt93
zgrzyt93

๐Ÿ’ป ๐Ÿ› zh3ng
zh3ng

๐Ÿ› - zt_soft
zt_soft

๐Ÿ› + zt_soft
zt_soft

๐Ÿ› ztt79
ztt79

๐Ÿ› zzzzfeng
zzzzfeng

๐Ÿ› รrpรกd Magosรกnyi
รrpรกd Magosรกnyi

๐Ÿ› From 8ac55e7ad706d6095653e5a0e168e5eb4a822411 Mon Sep 17 00:00:00 2001 From: Andreas Dangel Date: Fri, 11 Oct 2024 16:42:42 +0200 Subject: [PATCH 13/24] Bump org.junit from 5.8.2 to 5.11.2 (#5274) Also update junit-platform from 1.10.2 to 1.11.2 - Supersedes and closes #5260 - Supersedes and closes #5259 --- pom.xml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pom.xml b/pom.xml index 8f0474ab59..9d4e2061ab 100644 --- a/pom.xml +++ b/pom.xml @@ -94,7 +94,7 @@ ${maven.compiler.test.target} 1.9.24 5.9.1 - 5.8.2 + 5.11.2 1.9.20 5.0 @@ -963,7 +963,7 @@ org.junit.platform junit-platform-suite - 1.10.2 + 1.11.2 test @@ -1092,13 +1092,13 @@ 3.25.5 - org.junit.platform junit-platform-commons - 1.8.2 + 1.11.2 test From ed6312e3baa48e783cd8e0891b0243af13dc1fd4 Mon Sep 17 00:00:00 2001 From: Aryant Tripathi Date: Fri, 11 Oct 2024 22:29:42 +0530 Subject: [PATCH 14/24] Support wrapper class in BooleanGetMethodName rule (#5253)\n \n - Updated XPath rule to include both primitive and wrapper class:\n (PrimitiveType[@Kind = 'boolean'] or ClassType[pmd-java:typeIs('java.lang.Boolean')])\n - Added test cases to ensure that methods returning are also flagged correctly.\n - Ensured the rule enforces consistent method naming for both primitive and wrapper types. --- .../codestyle/xml/BooleanGetMethodName.xml | 59 ++++++++++++++++--- 1 file changed, 50 insertions(+), 9 deletions(-) diff --git a/pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/rule/codestyle/xml/BooleanGetMethodName.xml b/pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/rule/codestyle/xml/BooleanGetMethodName.xml index 648afbf32b..09e067a271 100644 --- a/pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/rule/codestyle/xml/BooleanGetMethodName.xml +++ b/pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/rule/codestyle/xml/BooleanGetMethodName.xml @@ -35,11 +35,13 @@ public class Foo { - Should not match on multiple parameters by default + Should not match for boxed Boolean on multiple parameters by default (#5253) 0 @@ -72,11 +74,13 @@ public class Foo { - Bad name + Bad name with boxed Boolean (#5253) 1 @@ -86,13 +90,15 @@ public class Foo { 0 - Should not match on methods annotated with @Override + Should not match for boxed Boolean on methods annotated with @Override (#5253) 0 - - - Should match on multiple parameters when checkParameterizedMethods = true + Should match for boxed Boolean on multiple parameters when checkParameterizedMethods = true (#5253) true 1 + + Should match for boxed Boolean on multiple parameters when checkParameterizedMethods = true (#5253) + true + 1 + + + + + Custom Boolean type (#5253) + 0 + + + + + Custom Boolean type with returning value (#5253) + 0 + + + From 9077c6a71f14946285aafaaa81d93dff85000d39 Mon Sep 17 00:00:00 2001 From: Aryant Tripathi Date: Fri, 11 Oct 2024 22:34:07 +0530 Subject: [PATCH 15/24] Support wrapper class in BooleanGetMethodName rule (#5253)\n \n - Updated XPath rule to include both primitive and wrapper class:\n (PrimitiveType[@Kind = 'boolean'] or ClassType[pmd-java:typeIs('java.lang.Boolean')])\n - Added test cases to ensure that methods returning are also flagged correctly.\n - Ensured the rule enforces consistent method naming for both primitive and wrapper types. --- .../pmd/lang/java/rule/codestyle/xml/BooleanGetMethodName.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/rule/codestyle/xml/BooleanGetMethodName.xml b/pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/rule/codestyle/xml/BooleanGetMethodName.xml index 09e067a271..6231601d6d 100644 --- a/pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/rule/codestyle/xml/BooleanGetMethodName.xml +++ b/pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/rule/codestyle/xml/BooleanGetMethodName.xml @@ -86,7 +86,7 @@ public class Foo { - Good name + Good name with boxed Boolean (#5253) 0 Date: Sat, 12 Oct 2024 18:01:21 +0200 Subject: [PATCH 16/24] [doc] Update release notes (#5253, #5269) --- docs/pages/release_notes.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/docs/pages/release_notes.md b/docs/pages/release_notes.md index 4b87f9bfae..e6c419b789 100644 --- a/docs/pages/release_notes.md +++ b/docs/pages/release_notes.md @@ -33,6 +33,8 @@ The old rule names still work but are deprecated. * java * [#4532](https://github.com/pmd/pmd/issues/4532): \[java] Rule misnomer for JUnit* rules * [#5261](https://github.com/pmd/pmd/issues/5261): \[java] Record patterns with empty deconstructor lists lead to NPE +* java-codestyle + * [#5253](https://github.com/pmd/pmd/issues/5253): \[java] BooleanGetMethodName: False-negatives with `Boolean` wrapper * java-errorprone * [#5067](https://github.com/pmd/pmd/issues/5067): \[java] CloseResource: False positive for FileSystems.getDefault() @@ -51,6 +53,7 @@ The old rule names still work but are deprecated. * [#5225](https://github.com/pmd/pmd/pull/5225): \[java] Fix #5067: CloseResource: False positive for FileSystems.getDefault() - [Lukas Grรคf](https://github.com/lukasgraef) (@lukasgraef) * [#5241](https://github.com/pmd/pmd/pull/5241): Ignore javacc code in coverage report - [Juan Martรญn Sotuyo Dodero](https://github.com/jsotuyod) (@jsotuyod) * [#5264](https://github.com/pmd/pmd/pull/5264): \[java] Fix NPE with empty pattern list - [Clรฉment Fournier](https://github.com/oowekyala) (@oowekyala) +* [#5269](https://github.com/pmd/pmd/pull/5269): \[java] Fix #5253: Support Boolean wrapper class for BooleanGetMethodName rule - [Aryant Tripathi](https://github.com/Aryant-Tripathi) (@Aryant-Tripathi) {% endtocmaker %} From 47a59b1810d73572108d0e34e89ae8dccc5fbe16 Mon Sep 17 00:00:00 2001 From: Andreas Dangel Date: Sat, 12 Oct 2024 18:01:45 +0200 Subject: [PATCH 17/24] Add @phansys as a contributor --- .all-contributorsrc | 9 ++ docs/pages/pmd/projectdocs/credits.md | 167 +++++++++++++------------- 2 files changed, 93 insertions(+), 83 deletions(-) diff --git a/.all-contributorsrc b/.all-contributorsrc index e04c9b717b..24f01443b1 100644 --- a/.all-contributorsrc +++ b/.all-contributorsrc @@ -7828,6 +7828,15 @@ "contributions": [ "bug" ] + }, + { + "login": "phansys", + "name": "Javier Spagnoletti", + "avatar_url": "https://avatars.githubusercontent.com/u/1231441?v=4", + "profile": "https://github.com/phansys", + "contributions": [ + "bug" + ] } ], "contributorsPerLine": 7, diff --git a/docs/pages/pmd/projectdocs/credits.md b/docs/pages/pmd/projectdocs/credits.md index 04fbc8f37a..2ea476a44a 100644 --- a/docs/pages/pmd/projectdocs/credits.md +++ b/docs/pages/pmd/projectdocs/credits.md @@ -359,751 +359,752 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d Jason Qiu
Jason Qiu

๐Ÿ’ป ๐Ÿ“– Jason Williams
Jason Williams

๐Ÿ› + Javier Spagnoletti
Javier Spagnoletti

๐Ÿ› Jean-Paul Mayer
Jean-Paul Mayer

๐Ÿ› Jean-Simon Larochelle
Jean-Simon Larochelle

๐Ÿ› Jeff Bartolotta
Jeff Bartolotta

๐Ÿ’ป ๐Ÿ› Jeff Hube
Jeff Hube

๐Ÿ’ป ๐Ÿ› - Jeff Jensen
Jeff Jensen

๐Ÿ› + Jeff Jensen
Jeff Jensen

๐Ÿ› Jeff May
Jeff May

๐Ÿ› Jens Gerdes
Jens Gerdes

๐Ÿ› Jeroen Borgers
Jeroen Borgers

๐Ÿ› ๐Ÿ’ป ๐Ÿ“ข Jeroen Meijer
Jeroen Meijer

๐Ÿ› Jeroen van Wilgenburg
Jeroen van Wilgenburg

๐Ÿ“– Jerome Russ
Jerome Russ

๐Ÿ› - JerritEic
JerritEic

๐Ÿ’ป ๐Ÿ“– ๐Ÿ› + JerritEic
JerritEic

๐Ÿ’ป ๐Ÿ“– ๐Ÿ› Jiri Pejchal
Jiri Pejchal

๐Ÿ› Jithin Sunny
Jithin Sunny

๐Ÿ› Jiล™รญ ล korpil
Jiล™รญ ล korpil

๐Ÿ› Joao Machado
Joao Machado

๐Ÿ› Jochen Krauss
Jochen Krauss

๐Ÿ› Johan Hammar
Johan Hammar

๐Ÿ› - John Karp
John Karp

๐Ÿ› + John Karp
John Karp

๐Ÿ› John Zhang
John Zhang

๐Ÿ› John-Teng
John-Teng

๐Ÿ’ป ๐Ÿ› Jon Moroney
Jon Moroney

๐Ÿ’ป ๐Ÿ› Jonas Geiregat
Jonas Geiregat

๐Ÿ› Jonas KeรŸler
Jonas KeรŸler

๐Ÿ› Jonathan Wiesel
Jonathan Wiesel

๐Ÿ’ป ๐Ÿ› - Jordan
Jordan

๐Ÿ› + Jordan
Jordan

๐Ÿ› Jordi Llach
Jordi Llach

๐Ÿ› Jorge Solรณrzano
Jorge Solรณrzano

๐Ÿ› JorneVL
JorneVL

๐Ÿ› Jose Palafox
Jose Palafox

๐Ÿ› Jose Stovall
Jose Stovall

๐Ÿ› Joseph
Joseph

๐Ÿ’ป - Joseph Heenan
Joseph Heenan

๐Ÿ› + Joseph Heenan
Joseph Heenan

๐Ÿ› Josh Feingold
Josh Feingold

๐Ÿ’ป ๐Ÿ› Josh Holthaus
Josh Holthaus

๐Ÿ› Joshua S Arquilevich
Joshua S Arquilevich

๐Ÿ› Joรฃo Dinis Ferreira
Joรฃo Dinis Ferreira

๐Ÿ“– Joรฃo Ferreira
Joรฃo Ferreira

๐Ÿ’ป ๐Ÿ› Joรฃo Pedro Schmitt
Joรฃo Pedro Schmitt

๐Ÿ› - Juan Martรญn Sotuyo Dodero
Juan Martรญn Sotuyo Dodero

๐Ÿ’ป ๐Ÿ“– ๐Ÿ› ๐Ÿšง + Juan Martรญn Sotuyo Dodero
Juan Martรญn Sotuyo Dodero

๐Ÿ’ป ๐Ÿ“– ๐Ÿ› ๐Ÿšง Juan Pablo Civile
Juan Pablo Civile

๐Ÿ› Julian Voronetsky
Julian Voronetsky

๐Ÿ› Julien
Julien

๐Ÿ› Julius
Julius

๐Ÿ› JustPRV
JustPRV

๐Ÿ› Justin Stroud
Justin Stroud

๐Ÿ’ป - Jรถrn Huxhorn
Jรถrn Huxhorn

๐Ÿ› + Jรถrn Huxhorn
Jรถrn Huxhorn

๐Ÿ› KThompso
KThompso

๐Ÿ› Kai Amundsen
Kai Amundsen

๐Ÿ› Karel Vervaeke
Karel Vervaeke

๐Ÿ› Karl-Andero Mere
Karl-Andero Mere

๐Ÿ› Karl-Philipp Richter
Karl-Philipp Richter

๐Ÿ› Karsten Silz
Karsten Silz

๐Ÿ› - Kazuma Watanabe
Kazuma Watanabe

๐Ÿ› + Kazuma Watanabe
Kazuma Watanabe

๐Ÿ› Kev
Kev

๐Ÿ› Keve Mรผller
Keve Mรผller

๐Ÿ› Kevin Guerra
Kevin Guerra

๐Ÿ’ป Kevin Jones
Kevin Jones

๐Ÿ› ๐Ÿ’ป Kevin Poorman
Kevin Poorman

๐Ÿ› Kevin Wayne
Kevin Wayne

๐Ÿ› - Kieran Black
Kieran Black

๐Ÿ› + Kieran Black
Kieran Black

๐Ÿ› Kirill Zubov
Kirill Zubov

๐Ÿ› Kirk Clemens
Kirk Clemens

๐Ÿ’ป ๐Ÿ› Klaus Hartl
Klaus Hartl

๐Ÿ› Koen Van Looveren
Koen Van Looveren

๐Ÿ› Kris Scheibe
Kris Scheibe

๐Ÿ’ป ๐Ÿ› Krystian Dabrowski
Krystian Dabrowski

๐Ÿ› ๐Ÿ’ป - Kunal Thanki
Kunal Thanki

๐Ÿ› + Kunal Thanki
Kunal Thanki

๐Ÿ› LaLucid
LaLucid

๐Ÿ’ป Larry Diamond
Larry Diamond

๐Ÿ’ป ๐Ÿ› Lars Knickrehm
Lars Knickrehm

๐Ÿ› Laurent Bovet
Laurent Bovet

๐Ÿ› ๐Ÿ’ป Leo Gutierrez
Leo Gutierrez

๐Ÿ› LiGaOg
LiGaOg

๐Ÿ’ป - Liam Sharp
Liam Sharp

๐Ÿ› + Liam Sharp
Liam Sharp

๐Ÿ› Lintsi
Lintsi

๐Ÿ› Linus Fernandes
Linus Fernandes

๐Ÿ› Lixon Lookose
Lixon Lookose

๐Ÿ› Logesh
Logesh

๐Ÿ› Lorenzo Gabriele
Lorenzo Gabriele

๐Ÿ› Loรฏc Ledoyen
Loรฏc Ledoyen

๐Ÿ› - Lucas
Lucas

๐Ÿ› + Lucas
Lucas

๐Ÿ› Lucas Silva
Lucas Silva

๐Ÿ› Lucas Soncini
Lucas Soncini

๐Ÿ’ป ๐Ÿ› Luis Alcantar
Luis Alcantar

๐Ÿ’ป Lukas Grรคf
Lukas Grรคf

๐Ÿ’ป Lukasz Slonina
Lukasz Slonina

๐Ÿ› Lukebray
Lukebray

๐Ÿ› - Lynn
Lynn

๐Ÿ’ป ๐Ÿ› + Lynn
Lynn

๐Ÿ’ป ๐Ÿ› Lyor Goldstein
Lyor Goldstein

๐Ÿ› MCMicS
MCMicS

๐Ÿ› Macarse
Macarse

๐Ÿ› Machine account for PMD
Machine account for PMD

๐Ÿ’ป Maciek Siemczyk
Maciek Siemczyk

๐Ÿ› Maikel Steneker
Maikel Steneker

๐Ÿ’ป ๐Ÿ› - Maksim Moiseikin
Maksim Moiseikin

๐Ÿ› + Maksim Moiseikin
Maksim Moiseikin

๐Ÿ› Manfred Koch
Manfred Koch

๐Ÿ› Manuel Moya Ferrer
Manuel Moya Ferrer

๐Ÿ’ป ๐Ÿ› Manuel Ryan
Manuel Ryan

๐Ÿ› Marat Vyshegorodtsev
Marat Vyshegorodtsev

๐Ÿ› Marcel Hรคrle
Marcel Hรคrle

๐Ÿ› Marcello Fialho
Marcello Fialho

๐Ÿ› - Marcin Dฤ…browski
Marcin Dฤ…browski

๐Ÿ’ป + Marcin Dฤ…browski
Marcin Dฤ…browski

๐Ÿ’ป Marcin Rataj
Marcin Rataj

๐Ÿ› Marcono1234
Marcono1234

๐Ÿ› Mark Adamcin
Mark Adamcin

๐Ÿ› Mark Hall
Mark Hall

๐Ÿ’ป ๐Ÿ› Mark Kolich
Mark Kolich

๐Ÿ› Mark Pritchard
Mark Pritchard

๐Ÿ› - Markus Rathgeb
Markus Rathgeb

๐Ÿ› + Markus Rathgeb
Markus Rathgeb

๐Ÿ› Marquis Wang
Marquis Wang

๐Ÿ› MartGit
MartGit

๐Ÿ› Martin Feldsztejn
Martin Feldsztejn

๐Ÿ› Martin Lehmann
Martin Lehmann

๐Ÿ› Martin Spamer
Martin Spamer

๐Ÿ› Martin Tarjรกnyi
Martin Tarjรกnyi

๐Ÿ› - MatFl
MatFl

๐Ÿ› + MatFl
MatFl

๐Ÿ› Mateusz Stefanski
Mateusz Stefanski

๐Ÿ› Mathieu Gouin
Mathieu Gouin

๐Ÿ› MatiasComercio
MatiasComercio

๐Ÿ’ป ๐Ÿ› Matt Benson
Matt Benson

๐Ÿ› Matt De Poorter
Matt De Poorter

๐Ÿ› Matt Hargett
Matt Hargett

๐Ÿ’ป ๐Ÿ’ต - Matt Harrah
Matt Harrah

๐Ÿ› + Matt Harrah
Matt Harrah

๐Ÿ› Matt Nelson
Matt Nelson

๐Ÿ› Matthew Amos
Matthew Amos

๐Ÿ› Matthew Duggan
Matthew Duggan

๐Ÿ› Matthew Hall
Matthew Hall

๐Ÿ› Matthew Rossner
Matthew Rossner

๐Ÿ› Matรญas Fraga
Matรญas Fraga

๐Ÿ’ป ๐Ÿ› - Maxime Robert
Maxime Robert

๐Ÿ’ป ๐Ÿ› + Maxime Robert
Maxime Robert

๐Ÿ’ป ๐Ÿ› MetaBF
MetaBF

๐Ÿ› Metin Dagcilar
Metin Dagcilar

๐Ÿ› Michael
Michael

๐Ÿ› Michael Bell
Michael Bell

๐Ÿ› Michael Bernstein
Michael Bernstein

๐Ÿ› Michael Clay
Michael Clay

๐Ÿ› - Michael Dombrowski
Michael Dombrowski

๐Ÿ› + Michael Dombrowski
Michael Dombrowski

๐Ÿ› Michael Hausegger
Michael Hausegger

๐Ÿ› Michael Hoefer
Michael Hoefer

๐Ÿ› Michael Kolesnikov
Michael Kolesnikov

๐Ÿ› Michael Mรถbius
Michael Mรถbius

๐Ÿ› Michael N. Lipp
Michael N. Lipp

๐Ÿ› Michael Pellegrini
Michael Pellegrini

๐Ÿ› - Michal Kordas
Michal Kordas

๐Ÿ› + Michal Kordas
Michal Kordas

๐Ÿ› Michaล‚ Borek
Michaล‚ Borek

๐Ÿ› Michaล‚ Kuliล„ski
Michaล‚ Kuliล„ski

๐Ÿ› Miguel Nรบรฑez Dรญaz-Montes
Miguel Nรบรฑez Dรญaz-Montes

๐Ÿ› Mihai Ionut
Mihai Ionut

๐Ÿ› Mikhail Kuchma
Mikhail Kuchma

๐Ÿ› Mirek Hankus
Mirek Hankus

๐Ÿ› - Mitch Spano
Mitch Spano

๐Ÿ› + Mitch Spano
Mitch Spano

๐Ÿ› Mladjan Gadzic
Mladjan Gadzic

๐Ÿ› MrAngry52
MrAngry52

๐Ÿ› Muminur Choudhury
Muminur Choudhury

๐Ÿ› Mykhailo Palahuta
Mykhailo Palahuta

๐Ÿ’ป ๐Ÿ› Nagendra Kumar Singh
Nagendra Kumar Singh

๐Ÿ› Nahuel Barrios
Nahuel Barrios

๐Ÿ› - Nakul Sharma
Nakul Sharma

๐Ÿ› + Nakul Sharma
Nakul Sharma

๐Ÿ› Nathan Braun
Nathan Braun

๐Ÿ› Nathan Reynolds
Nathan Reynolds

๐Ÿ› Nathan Reynolds
Nathan Reynolds

๐Ÿ› Nathanaรซl
Nathanaรซl

๐Ÿ› Naveen
Naveen

๐Ÿ’ป Nazdravi
Nazdravi

๐Ÿ› - Neha-Dhonde
Neha-Dhonde

๐Ÿ› + Neha-Dhonde
Neha-Dhonde

๐Ÿ› Nicholas Doyle
Nicholas Doyle

๐Ÿ› Nick Butcher
Nick Butcher

๐Ÿ› Nico Gallinal
Nico Gallinal

๐Ÿ› Nicola Dal Maso
Nicola Dal Maso

๐Ÿ› Nicolas Filotto
Nicolas Filotto

๐Ÿ’ป Nicolas Vervelle
Nicolas Vervelle

๐Ÿ› - Nicolas Vuillamy
Nicolas Vuillamy

๐Ÿ“– + Nicolas Vuillamy
Nicolas Vuillamy

๐Ÿ“– Nikita Chursin
Nikita Chursin

๐Ÿ› Niklas Baudy
Niklas Baudy

๐Ÿ› Nikolas Havrikov
Nikolas Havrikov

๐Ÿ› Nilesh Virkar
Nilesh Virkar

๐Ÿ› Nimit Patel
Nimit Patel

๐Ÿ› Niranjan Harpale
Niranjan Harpale

๐Ÿ› - Nirvik Patel
Nirvik Patel

๐Ÿ’ป + Nirvik Patel
Nirvik Patel

๐Ÿ’ป Noah Sussman
Noah Sussman

๐Ÿ› Noah0120
Noah0120

๐Ÿ› Noam Tamim
Noam Tamim

๐Ÿ› Noel Grandin
Noel Grandin

๐Ÿ› Olaf Haalstra
Olaf Haalstra

๐Ÿ› Oleg Andreych
Oleg Andreych

๐Ÿ’ป ๐Ÿ› - Oleg Pavlenko
Oleg Pavlenko

๐Ÿ› + Oleg Pavlenko
Oleg Pavlenko

๐Ÿ› Oleksii Dykov
Oleksii Dykov

๐Ÿ’ป ๐Ÿ› Oliver Eikemeier
Oliver Eikemeier

๐Ÿ› Oliver Siegmar
Oliver Siegmar

๐Ÿ’ต Olivier Parent
Olivier Parent

๐Ÿ’ป ๐Ÿ› Ollie Abbey
Ollie Abbey

๐Ÿ’ป ๐Ÿ› Ondrej Kratochvil
Ondrej Kratochvil

๐Ÿ› - OverDrone
OverDrone

๐Ÿ› + OverDrone
OverDrone

๐Ÿ› Ozan Gulle
Ozan Gulle

๐Ÿ’ป ๐Ÿ› PUNEET JAIN
PUNEET JAIN

๐Ÿ› Parbati Bose
Parbati Bose

๐Ÿ› Paul Berg
Paul Berg

๐Ÿ› Paul Guyot
Paul Guyot

๐Ÿ’ป Pavel Bludov
Pavel Bludov

๐Ÿ› - Pavel Miฤka
Pavel Miฤka

๐Ÿ› + Pavel Miฤka
Pavel Miฤka

๐Ÿ› Pedro Nuno Santos
Pedro Nuno Santos

๐Ÿ› Pedro Rijo
Pedro Rijo

๐Ÿ› Pelisse Romain
Pelisse Romain

๐Ÿ’ป ๐Ÿ“– ๐Ÿ› Per Abich
Per Abich

๐Ÿ’ป Pete Davids
Pete Davids

๐Ÿ› Peter Bruin
Peter Bruin

๐Ÿ› - Peter Chittum
Peter Chittum

๐Ÿ’ป ๐Ÿ› + Peter Chittum
Peter Chittum

๐Ÿ’ป ๐Ÿ› Peter Cudmore
Peter Cudmore

๐Ÿ› Peter Kasson
Peter Kasson

๐Ÿ› Peter Kofler
Peter Kofler

๐Ÿ› Peter Paul Bakker
Peter Paul Bakker

๐Ÿ’ป Peter Rader
Peter Rader

๐Ÿ› Pham Hai Trung
Pham Hai Trung

๐Ÿ› - Philip Graf
Philip Graf

๐Ÿ’ป ๐Ÿ› + Philip Graf
Philip Graf

๐Ÿ’ป ๐Ÿ› Philip Hachey
Philip Hachey

๐Ÿ› Philippe Ozil
Philippe Ozil

๐Ÿ› Phinehas Artemix
Phinehas Artemix

๐Ÿ› Phokham Nonava
Phokham Nonava

๐Ÿ› Pim van der Loos
Pim van der Loos

๐Ÿ’ป โš ๏ธ Piotr Szymaล„ski
Piotr Szymaล„ski

๐Ÿ› - Piotrek ลปygieล‚o
Piotrek ลปygieล‚o

๐Ÿ’ป ๐Ÿ› ๐Ÿ“– + Piotrek ลปygieล‚o
Piotrek ลปygieล‚o

๐Ÿ’ป ๐Ÿ› ๐Ÿ“– Pranay Jaiswal
Pranay Jaiswal

๐Ÿ› Prasad Kamath
Prasad Kamath

๐Ÿ› Prasanna
Prasanna

๐Ÿ› Presh-AR
Presh-AR

๐Ÿ› Puneet1726
Puneet1726

๐Ÿ› RBRi
RBRi

๐Ÿ› - Rafael Cortรชs
Rafael Cortรชs

๐Ÿ› + Rafael Cortรชs
Rafael Cortรชs

๐Ÿ› RaheemShaik999
RaheemShaik999

๐Ÿ› RajeshR
RajeshR

๐Ÿ’ป ๐Ÿ› Ramachandra Mohan
Ramachandra Mohan

๐Ÿ› Ramel0921
Ramel0921

๐Ÿ› Raquel Pau
Raquel Pau

๐Ÿ› Ravikiran Janardhana
Ravikiran Janardhana

๐Ÿ› - Reda Benhemmouche
Reda Benhemmouche

๐Ÿ› + Reda Benhemmouche
Reda Benhemmouche

๐Ÿ› Reinhard Schiedermeier
Reinhard Schiedermeier

๐Ÿ› Renato Oliveira
Renato Oliveira

๐Ÿ’ป ๐Ÿ› Rich DiCroce
Rich DiCroce

๐Ÿ› Richard Corfield
Richard Corfield

๐Ÿ’ป Richard Corfield
Richard Corfield

๐Ÿ› ๐Ÿ’ป Riot R1cket
Riot R1cket

๐Ÿ› - Rishabh Jain
Rishabh Jain

๐Ÿ› + Rishabh Jain
Rishabh Jain

๐Ÿ› RishabhDeep Singh
RishabhDeep Singh

๐Ÿ› Rob Baillie
Rob Baillie

๐Ÿ› Robbie Martinus
Robbie Martinus

๐Ÿ’ป ๐Ÿ› Robert Henry
Robert Henry

๐Ÿ› Robert Mihaly
Robert Mihaly

๐Ÿ› Robert Painsi
Robert Painsi

๐Ÿ› - Robert Russell
Robert Russell

๐Ÿ› + Robert Russell
Robert Russell

๐Ÿ› Robert Sรถsemann
Robert Sรถsemann

๐Ÿ’ป ๐Ÿ“– ๐Ÿ“ข ๐Ÿ› Robert Whitebit
Robert Whitebit

๐Ÿ› Robin Richtsfeld
Robin Richtsfeld

๐Ÿ› Robin Stocker
Robin Stocker

๐Ÿ’ป ๐Ÿ› Robin Wils
Robin Wils

๐Ÿ› RochusOest
RochusOest

๐Ÿ› - Rodolfo Noviski
Rodolfo Noviski

๐Ÿ› + Rodolfo Noviski
Rodolfo Noviski

๐Ÿ› Rodrigo Casara
Rodrigo Casara

๐Ÿ› Rodrigo Fernandes
Rodrigo Fernandes

๐Ÿ› Roman Salvador
Roman Salvador

๐Ÿ’ป ๐Ÿ› Ronald Blaschke
Ronald Blaschke

๐Ÿ› Rรณbert Papp
Rรณbert Papp

๐Ÿ› Saikat Sengupta
Saikat Sengupta

๐Ÿ› - Saksham Handu
Saksham Handu

๐Ÿ› + Saksham Handu
Saksham Handu

๐Ÿ› Saladoc
Saladoc

๐Ÿ› Salesforce Bob Lightning
Salesforce Bob Lightning

๐Ÿ› Sam Carlberg
Sam Carlberg

๐Ÿ› Sascha Riemer
Sascha Riemer

๐Ÿ› Sashko
Sashko

๐Ÿ’ป Satoshi Kubo
Satoshi Kubo

๐Ÿ› - Scott Kennedy
Scott Kennedy

๐Ÿ› + Scott Kennedy
Scott Kennedy

๐Ÿ› Scott Wells
Scott Wells

๐Ÿ› ๐Ÿ’ป Scrates1
Scrates1

๐Ÿ› ๐Ÿ’ป Scrsloota
Scrsloota

๐Ÿ’ป Sebastian Bรถgl
Sebastian Bรถgl

๐Ÿ› Sebastian Davids
Sebastian Davids

๐Ÿ› Sebastian Schuberth
Sebastian Schuberth

๐Ÿ› - Sebastian Schwarz
Sebastian Schwarz

๐Ÿ› + Sebastian Schwarz
Sebastian Schwarz

๐Ÿ› Seren
Seren

๐Ÿ› ๐Ÿ’ป Sergey Gorbaty
Sergey Gorbaty

๐Ÿ› Sergey Kozlov
Sergey Kozlov

๐Ÿ› Sergey Yanzin
Sergey Yanzin

๐Ÿ’ป ๐Ÿ› Seth Wilcox
Seth Wilcox

๐Ÿ’ป Shai Bennathan
Shai Bennathan

๐Ÿ› ๐Ÿ’ป - Shubham
Shubham

๐Ÿ’ป ๐Ÿ› + Shubham
Shubham

๐Ÿ’ป ๐Ÿ› Simon Abykov
Simon Abykov

๐Ÿ’ป ๐Ÿ› Simon Xiao
Simon Xiao

๐Ÿ› Srinivasan Venkatachalam
Srinivasan Venkatachalam

๐Ÿ› Stanislav Gromov
Stanislav Gromov

๐Ÿ› Stanislav Myachenkov
Stanislav Myachenkov

๐Ÿ’ป Stefan Birkner
Stefan Birkner

๐Ÿ› - Stefan Bohn
Stefan Bohn

๐Ÿ› + Stefan Bohn
Stefan Bohn

๐Ÿ› Stefan Endrullis
Stefan Endrullis

๐Ÿ› Stefan Klรถss-Schuster
Stefan Klรถss-Schuster

๐Ÿ› Stefan Wolf
Stefan Wolf

๐Ÿ› Stephan H. Wissel
Stephan H. Wissel

๐Ÿ› Stephen
Stephen

๐Ÿ› Stephen Carter
Stephen Carter

๐Ÿ› - Stephen Friedrich
Stephen Friedrich

๐Ÿ› + Stephen Friedrich
Stephen Friedrich

๐Ÿ› Steve Babula
Steve Babula

๐Ÿ’ป Steven Stearns
Steven Stearns

๐Ÿ› ๐Ÿ’ป Stexxe
Stexxe

๐Ÿ› Stian Lรฅgstad
Stian Lรฅgstad

๐Ÿ› StuartClayton5
StuartClayton5

๐Ÿ› Supun Arunoda
Supun Arunoda

๐Ÿ› - Suren Abrahamyan
Suren Abrahamyan

๐Ÿ› + Suren Abrahamyan
Suren Abrahamyan

๐Ÿ› Suvashri
Suvashri

๐Ÿ“– SwatiBGupta1110
SwatiBGupta1110

๐Ÿ› SyedThoufich
SyedThoufich

๐Ÿ› Szymon Sasin
Szymon Sasin

๐Ÿ› T-chuangxin
T-chuangxin

๐Ÿ› TERAI Atsuhiro
TERAI Atsuhiro

๐Ÿ› - TIOBE Software
TIOBE Software

๐Ÿ’ป ๐Ÿ› + TIOBE Software
TIOBE Software

๐Ÿ’ป ๐Ÿ› Tarush Singh
Tarush Singh

๐Ÿ’ป Taylor Smock
Taylor Smock

๐Ÿ› Techeira Damiรกn
Techeira Damiรกn

๐Ÿ’ป ๐Ÿ› Ted Husted
Ted Husted

๐Ÿ› TehBakker
TehBakker

๐Ÿ› The Gitter Badger
The Gitter Badger

๐Ÿ› - Theodoor
Theodoor

๐Ÿ› + Theodoor
Theodoor

๐Ÿ› Thiago Henrique Hรผpner
Thiago Henrique Hรผpner

๐Ÿ› Thibault Meyer
Thibault Meyer

๐Ÿ› Thomas Gรผttler
Thomas Gรผttler

๐Ÿ› Thomas Jones-Low
Thomas Jones-Low

๐Ÿ› Thomas Smith
Thomas Smith

๐Ÿ’ป ๐Ÿ› ThrawnCA
ThrawnCA

๐Ÿ› - Thu Vo
Thu Vo

๐Ÿ› + Thu Vo
Thu Vo

๐Ÿ› Thunderforge
Thunderforge

๐Ÿ’ป ๐Ÿ› Tim van der Lippe
Tim van der Lippe

๐Ÿ› Tobias Weimer
Tobias Weimer

๐Ÿ’ป ๐Ÿ› Tom Copeland
Tom Copeland

๐Ÿ› ๐Ÿ’ป ๐Ÿ“– Tom Daly
Tom Daly

๐Ÿ› Tomas
Tomas

๐Ÿ› - Tomer Figenblat
Tomer Figenblat

๐Ÿ› + Tomer Figenblat
Tomer Figenblat

๐Ÿ› Tomi De Lucca
Tomi De Lucca

๐Ÿ’ป ๐Ÿ› Tony
Tony

๐Ÿ“– Torsten Kleiber
Torsten Kleiber

๐Ÿ› TrackerSB
TrackerSB

๐Ÿ› Tyson Stewart
Tyson Stewart

๐Ÿ› Ullrich Hafner
Ullrich Hafner

๐Ÿ› - Utku Cuhadaroglu
Utku Cuhadaroglu

๐Ÿ’ป ๐Ÿ› + Utku Cuhadaroglu
Utku Cuhadaroglu

๐Ÿ’ป ๐Ÿ› Valentin Brandl
Valentin Brandl

๐Ÿ› Valeria
Valeria

๐Ÿ› Valery Yatsynovich
Valery Yatsynovich

๐Ÿ“– Vasily Anisimov
Vasily Anisimov

๐Ÿ› Vedant Chokshi
Vedant Chokshi

๐Ÿ› Vibhor Goyal
Vibhor Goyal

๐Ÿ› - Vickenty Fesunov
Vickenty Fesunov

๐Ÿ› + Vickenty Fesunov
Vickenty Fesunov

๐Ÿ› Victor Noรซl
Victor Noรซl

๐Ÿ› Vincent Galloy
Vincent Galloy

๐Ÿ’ป Vincent HUYNH
Vincent HUYNH

๐Ÿ› Vincent Maurin
Vincent Maurin

๐Ÿ› Vincent Privat
Vincent Privat

๐Ÿ› Vishhwas
Vishhwas

๐Ÿ› - Vishv_Android
Vishv_Android

๐Ÿ› + Vishv_Android
Vishv_Android

๐Ÿ› Vitaly
Vitaly

๐Ÿ› Vitaly Polonetsky
Vitaly Polonetsky

๐Ÿ› Vojtech Polivka
Vojtech Polivka

๐Ÿ› Vsevolod Zholobov
Vsevolod Zholobov

๐Ÿ› Vyom Yadav
Vyom Yadav

๐Ÿ’ป Wang Shidong
Wang Shidong

๐Ÿ› - Waqas Ahmed
Waqas Ahmed

๐Ÿ› + Waqas Ahmed
Waqas Ahmed

๐Ÿ› Wayne J. Earl
Wayne J. Earl

๐Ÿ› Wchenghui
Wchenghui

๐Ÿ› Wener
Wener

๐Ÿ’ป Will Winder
Will Winder

๐Ÿ› William Brockhus
William Brockhus

๐Ÿ’ป ๐Ÿ› Wilson Kurniawan
Wilson Kurniawan

๐Ÿ› - Wim Deblauwe
Wim Deblauwe

๐Ÿ› + Wim Deblauwe
Wim Deblauwe

๐Ÿ› Woongsik Choi
Woongsik Choi

๐Ÿ› XenoAmess
XenoAmess

๐Ÿ’ป ๐Ÿ› Yang
Yang

๐Ÿ’ป YaroslavTER
YaroslavTER

๐Ÿ› Yasar Shaikh
Yasar Shaikh

๐Ÿ’ป Young Chan
Young Chan

๐Ÿ’ป ๐Ÿ› - YuJin Kim
YuJin Kim

๐Ÿ› + YuJin Kim
YuJin Kim

๐Ÿ› Yuri Dolzhenko
Yuri Dolzhenko

๐Ÿ› Yurii Dubinka
Yurii Dubinka

๐Ÿ› Zoltan Farkas
Zoltan Farkas

๐Ÿ› Zustin
Zustin

๐Ÿ› aaronhurst-google
aaronhurst-google

๐Ÿ› ๐Ÿ’ป alexmodis
alexmodis

๐Ÿ› - andreoss
andreoss

๐Ÿ› + andreoss
andreoss

๐Ÿ› andrey81inmd
andrey81inmd

๐Ÿ’ป ๐Ÿ› anicoara
anicoara

๐Ÿ› arunprasathav
arunprasathav

๐Ÿ› asiercamara
asiercamara

๐Ÿ› astillich-igniti
astillich-igniti

๐Ÿ’ป avesolovksyy
avesolovksyy

๐Ÿ› - avishvat
avishvat

๐Ÿ› + avishvat
avishvat

๐Ÿ› avivmu
avivmu

๐Ÿ› axelbarfod1
axelbarfod1

๐Ÿ› b-3-n
b-3-n

๐Ÿ› balbhadra9
balbhadra9

๐Ÿ› base23de
base23de

๐Ÿ› bergander
bergander

๐Ÿ› ๐Ÿ’ป - berkam
berkam

๐Ÿ’ป ๐Ÿ› + berkam
berkam

๐Ÿ’ป ๐Ÿ› breizh31
breizh31

๐Ÿ› caesarkim
caesarkim

๐Ÿ› carolyujing
carolyujing

๐Ÿ› cbfiddle
cbfiddle

๐Ÿ› cesares-basilico
cesares-basilico

๐Ÿ› chrite
chrite

๐Ÿ› - ciufudean
ciufudean

๐Ÿ“– + ciufudean
ciufudean

๐Ÿ“– cobratbq
cobratbq

๐Ÿ› coladict
coladict

๐Ÿ› cosmoJFH
cosmoJFH

๐Ÿ› cristalp
cristalp

๐Ÿ› crunsk
crunsk

๐Ÿ› cwholmes
cwholmes

๐Ÿ› - cyberjj999
cyberjj999

๐Ÿ› + cyberjj999
cyberjj999

๐Ÿ› cyw3
cyw3

๐Ÿ› ๐Ÿ“– d1ss0nanz
d1ss0nanz

๐Ÿ› dague1
dague1

๐Ÿ“– dalizi007
dalizi007

๐Ÿ’ป danbrycefairsailcom
danbrycefairsailcom

๐Ÿ› dariansanity
dariansanity

๐Ÿ› - darrenmiliband
darrenmiliband

๐Ÿ› + darrenmiliband
darrenmiliband

๐Ÿ› davidburstrom
davidburstrom

๐Ÿ› dbirkman-paloalto
dbirkman-paloalto

๐Ÿ› deepak-patra
deepak-patra

๐Ÿ› dependabot[bot]
dependabot[bot]

๐Ÿ’ป ๐Ÿ› dinesh150
dinesh150

๐Ÿ› diziaq
diziaq

๐Ÿ› - dreaminpast123
dreaminpast123

๐Ÿ› + dreaminpast123
dreaminpast123

๐Ÿ› duanyanan
duanyanan

๐Ÿ› dutt-sanjay
dutt-sanjay

๐Ÿ› duursma
duursma

๐Ÿ’ป dylanleung
dylanleung

๐Ÿ› dzeigler
dzeigler

๐Ÿ› eant60
eant60

๐Ÿ› - ekkirala
ekkirala

๐Ÿ› + ekkirala
ekkirala

๐Ÿ› emersonmoura
emersonmoura

๐Ÿ› emouty
emouty

๐Ÿ’ป eugenepugach
eugenepugach

๐Ÿ› fairy
fairy

๐Ÿ› filiprafalowicz
filiprafalowicz

๐Ÿ’ป flxbl-io
flxbl-io

๐Ÿ’ต - foxmason
foxmason

๐Ÿ› + foxmason
foxmason

๐Ÿ› frankegabor
frankegabor

๐Ÿ› frankl
frankl

๐Ÿ› freafrea
freafrea

๐Ÿ› fsapatin
fsapatin

๐Ÿ› gearsethenry
gearsethenry

๐Ÿ› gracia19
gracia19

๐Ÿ› - gudzpoz
gudzpoz

๐Ÿ› + gudzpoz
gudzpoz

๐Ÿ› guo fei
guo fei

๐Ÿ› gurmsc5
gurmsc5

๐Ÿ› gwilymatgearset
gwilymatgearset

๐Ÿ’ป ๐Ÿ› haigsn
haigsn

๐Ÿ› hemanshu070
hemanshu070

๐Ÿ› henrik242
henrik242

๐Ÿ› - hongpuwu
hongpuwu

๐Ÿ› + hongpuwu
hongpuwu

๐Ÿ› hvbtup
hvbtup

๐Ÿ’ป ๐Ÿ› igniti GmbH
igniti GmbH

๐Ÿ› ilovezfs
ilovezfs

๐Ÿ› imax-erik
imax-erik

๐Ÿ› itaigilo
itaigilo

๐Ÿ› jakivey32
jakivey32

๐Ÿ› - jbennett2091
jbennett2091

๐Ÿ› + jbennett2091
jbennett2091

๐Ÿ› jcamerin
jcamerin

๐Ÿ› jkeener1
jkeener1

๐Ÿ› jmetertea
jmetertea

๐Ÿ› johnra2
johnra2

๐Ÿ’ป johnzhao9
johnzhao9

๐Ÿ› josemanuelrolon
josemanuelrolon

๐Ÿ’ป ๐Ÿ› - kabroxiko
kabroxiko

๐Ÿ’ป ๐Ÿ› + kabroxiko
kabroxiko

๐Ÿ’ป ๐Ÿ› karthikaiyasamy
karthikaiyasamy

๐Ÿ“– karwer
karwer

๐Ÿ› kaulonline
kaulonline

๐Ÿ› kdaemonv
kdaemonv

๐Ÿ› kdebski85
kdebski85

๐Ÿ› ๐Ÿ’ป kenji21
kenji21

๐Ÿ’ป ๐Ÿ› - kfranic
kfranic

๐Ÿ› + kfranic
kfranic

๐Ÿ› khalidkh
khalidkh

๐Ÿ› koalalam
koalalam

๐Ÿ› krzyk
krzyk

๐Ÿ› lasselindqvist
lasselindqvist

๐Ÿ› lgemeinhardt
lgemeinhardt

๐Ÿ› lihuaib
lihuaib

๐Ÿ› - liqingjun123
liqingjun123

๐Ÿ› + liqingjun123
liqingjun123

๐Ÿ› lonelyma1021
lonelyma1021

๐Ÿ› lpeddy
lpeddy

๐Ÿ› lujiefsi
lujiefsi

๐Ÿ’ป lukelukes
lukelukes

๐Ÿ’ป lyriccoder
lyriccoder

๐Ÿ› marcelmore
marcelmore

๐Ÿ› - matchbox
matchbox

๐Ÿ› + matchbox
matchbox

๐Ÿ› matthiaskraaz
matthiaskraaz

๐Ÿ› meandonlyme
meandonlyme

๐Ÿ› mikesive
mikesive

๐Ÿ› milossesic
milossesic

๐Ÿ› mluckam
mluckam

๐Ÿ’ป ๐Ÿ› mohan-chinnappan-n
mohan-chinnappan-n

๐Ÿ’ป - mriddell95
mriddell95

๐Ÿ› + mriddell95
mriddell95

๐Ÿ› mrlzh
mrlzh

๐Ÿ› msloan
msloan

๐Ÿ› mucharlaravalika
mucharlaravalika

๐Ÿ› mvenneman
mvenneman

๐Ÿ› nareshl119
nareshl119

๐Ÿ› nicolas-harraudeau-sonarsource
nicolas-harraudeau-sonarsource

๐Ÿ› - noerremark
noerremark

๐Ÿ› + noerremark
noerremark

๐Ÿ› novsirion
novsirion

๐Ÿ› nwcm
nwcm

๐Ÿ“– ๐Ÿ› ๐Ÿ’ป oggboy
oggboy

๐Ÿ› oinume
oinume

๐Ÿ› orimarko
orimarko

๐Ÿ’ป ๐Ÿ› pablogomez2197
pablogomez2197

๐Ÿ› - pacvz
pacvz

๐Ÿ’ป + pacvz
pacvz

๐Ÿ’ป pallavi agarwal
pallavi agarwal

๐Ÿ› parksungrin
parksungrin

๐Ÿ› patpatpat123
patpatpat123

๐Ÿ› patriksevallius
patriksevallius

๐Ÿ› pbrajesh1
pbrajesh1

๐Ÿ› phoenix384
phoenix384

๐Ÿ› - piotrszymanski-sc
piotrszymanski-sc

๐Ÿ’ป + piotrszymanski-sc
piotrszymanski-sc

๐Ÿ’ป plan3d
plan3d

๐Ÿ› poojasix
poojasix

๐Ÿ› prabhushrikant
prabhushrikant

๐Ÿ› pujitha8783
pujitha8783

๐Ÿ› r-r-a-j
r-r-a-j

๐Ÿ› raghujayjunk
raghujayjunk

๐Ÿ› - rajeshveera
rajeshveera

๐Ÿ› + rajeshveera
rajeshveera

๐Ÿ› rajeswarreddy88
rajeswarreddy88

๐Ÿ› recdevs
recdevs

๐Ÿ› reudismam
reudismam

๐Ÿ’ป ๐Ÿ› rijkt
rijkt

๐Ÿ› rillig-tk
rillig-tk

๐Ÿ› rmohan20
rmohan20

๐Ÿ’ป ๐Ÿ› - rnveach
rnveach

๐Ÿ› + rnveach
rnveach

๐Ÿ› rxmicro
rxmicro

๐Ÿ› ryan-gustafson
ryan-gustafson

๐Ÿ’ป ๐Ÿ› sabi0
sabi0

๐Ÿ› scais
scais

๐Ÿ› schosin
schosin

๐Ÿ› screamingfrog
screamingfrog

๐Ÿ’ต - sebbASF
sebbASF

๐Ÿ› + sebbASF
sebbASF

๐Ÿ› sergeygorbaty
sergeygorbaty

๐Ÿ’ป shilko2013
shilko2013

๐Ÿ› shiomiyan
shiomiyan

๐Ÿ“– simeonKondr
simeonKondr

๐Ÿ› snajberk
snajberk

๐Ÿ› sniperrifle2004
sniperrifle2004

๐Ÿ› - snuyanzin
snuyanzin

๐Ÿ› ๐Ÿ’ป + snuyanzin
snuyanzin

๐Ÿ› ๐Ÿ’ป soloturn
soloturn

๐Ÿ› soyodream
soyodream

๐Ÿ› sratz
sratz

๐Ÿ› stonio
stonio

๐Ÿ› sturton
sturton

๐Ÿ’ป ๐Ÿ› sudharmohan
sudharmohan

๐Ÿ› - suruchidawar
suruchidawar

๐Ÿ› + suruchidawar
suruchidawar

๐Ÿ› svenfinitiv
svenfinitiv

๐Ÿ› szymanp23
szymanp23

๐Ÿ› ๐Ÿ’ป tashiscool
tashiscool

๐Ÿ› test-git-hook
test-git-hook

๐Ÿ› testation21
testation21

๐Ÿ’ป ๐Ÿ› thanosa
thanosa

๐Ÿ› - tiandiyixian
tiandiyixian

๐Ÿ› + tiandiyixian
tiandiyixian

๐Ÿ› tobwoerk
tobwoerk

๐Ÿ› tprouvot
tprouvot

๐Ÿ› ๐Ÿ’ป trentchilders
trentchilders

๐Ÿ› triandicAnt
triandicAnt

๐Ÿ› trishul14
trishul14

๐Ÿ› tsui
tsui

๐Ÿ› - wangzitom12306
wangzitom12306

๐Ÿ› + wangzitom12306
wangzitom12306

๐Ÿ› winhkey
winhkey

๐Ÿ› witherspore
witherspore

๐Ÿ› wjljack
wjljack

๐Ÿ› wuchiuwong
wuchiuwong

๐Ÿ› xingsong
xingsong

๐Ÿ› xioayuge
xioayuge

๐Ÿ› - xnYi9wRezm
xnYi9wRezm

๐Ÿ’ป ๐Ÿ› + xnYi9wRezm
xnYi9wRezm

๐Ÿ’ป ๐Ÿ› xuanuy
xuanuy

๐Ÿ› xyf0921
xyf0921

๐Ÿ› yalechen-cyw3
yalechen-cyw3

๐Ÿ› yasuharu-sato
yasuharu-sato

๐Ÿ› zenglian
zenglian

๐Ÿ› zgrzyt93
zgrzyt93

๐Ÿ’ป ๐Ÿ› - zh3ng
zh3ng

๐Ÿ› + zh3ng
zh3ng

๐Ÿ› zt_soft
zt_soft

๐Ÿ› ztt79
ztt79

๐Ÿ› zzzzfeng
zzzzfeng

๐Ÿ› From 85e0695ca608d35cb2112c9d374add5674b5710b Mon Sep 17 00:00:00 2001 From: Andreas Dangel Date: Sat, 12 Oct 2024 18:02:07 +0200 Subject: [PATCH 18/24] Add @Aryant-Tripathi as a contributor --- .all-contributorsrc | 9 ++ docs/pages/pmd/projectdocs/credits.md | 225 +++++++++++++------------- 2 files changed, 123 insertions(+), 111 deletions(-) diff --git a/.all-contributorsrc b/.all-contributorsrc index 24f01443b1..8d11a3745a 100644 --- a/.all-contributorsrc +++ b/.all-contributorsrc @@ -7837,6 +7837,15 @@ "contributions": [ "bug" ] + }, + { + "login": "Aryant-Tripathi", + "name": "Aryant Tripathi", + "avatar_url": "https://avatars.githubusercontent.com/u/60316716?v=4", + "profile": "https://github.com/Aryant-Tripathi", + "contributions": [ + "code" + ] } ], "contributorsPerLine": 7, diff --git a/docs/pages/pmd/projectdocs/credits.md b/docs/pages/pmd/projectdocs/credits.md index 2ea476a44a..0a1cd02cb0 100644 --- a/docs/pages/pmd/projectdocs/credits.md +++ b/docs/pages/pmd/projectdocs/credits.md @@ -110,1006 +110,1009 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d Artur Bosch
Artur Bosch

๐Ÿ› Artur Dryomov
Artur Dryomov

๐Ÿ› Artur Ossowski
Artur Ossowski

๐Ÿ› + Aryant Tripathi
Aryant Tripathi

๐Ÿ’ป AshTheMash
AshTheMash

๐Ÿ› - Ashish Rana
Ashish Rana

๐Ÿ› + Ashish Rana
Ashish Rana

๐Ÿ› Atul Kaushal
Atul Kaushal

๐Ÿ› August Boland
August Boland

๐Ÿ› Aurel Hudec
Aurel Hudec

๐Ÿ› Austin
Austin

๐Ÿ› Austin Shalit
Austin Shalit

๐Ÿ› Austin Tice
Austin Tice

๐Ÿ› - Ayoub Kaanich
Ayoub Kaanich

๐Ÿ› + Ayoub Kaanich
Ayoub Kaanich

๐Ÿ› BBG
BBG

๐Ÿ’ป ๐Ÿ“– ๐Ÿ› Bailey Tjiong
Bailey Tjiong

๐Ÿ’ป Barthรฉlemy L.
Barthรฉlemy L.

๐Ÿ› Basavaraj K N
Basavaraj K N

๐Ÿ› Basil Peace
Basil Peace

๐Ÿ› Belle
Belle

๐Ÿ› - Ben Lerner
Ben Lerner

๐Ÿ› + Ben Lerner
Ben Lerner

๐Ÿ› Ben Manes
Ben Manes

๐Ÿ› Ben McCann
Ben McCann

๐Ÿ› Bendegรบz Nagy
Bendegรบz Nagy

๐Ÿ› Bennet S Yee
Bennet S Yee

๐Ÿ› Benoit Lacelle
Benoit Lacelle

๐Ÿ› Bernardo Macรชdo
Bernardo Macรชdo

๐Ÿ› - Bernd Farka
Bernd Farka

๐Ÿ› + Bernd Farka
Bernd Farka

๐Ÿ› Betina Cynthia Mamani
Betina Cynthia Mamani

๐Ÿ› Bhanu Prakash Pamidi
Bhanu Prakash Pamidi

๐Ÿ’ป ๐Ÿ› Bhargav Thanki
Bhargav Thanki

๐Ÿ› Binu R J
Binu R J

๐Ÿ› Bjรถrn Kautler
Bjรถrn Kautler

๐Ÿ’ป ๐Ÿ› Blightbuster
Blightbuster

๐Ÿ› - Bo Zhang
Bo Zhang

๐Ÿ› + Bo Zhang
Bo Zhang

๐Ÿ› Bob "Wombat" Hogg
Bob "Wombat" Hogg

๐Ÿ› Bobby Wertman
Bobby Wertman

๐Ÿ› Bolarinwa Saheed Olayemi
Bolarinwa Saheed Olayemi

๐Ÿ’ป ๐Ÿ› Boris Petrov
Boris Petrov

๐Ÿ› Brad Kent
Brad Kent

๐Ÿ› Brandon Mikeska
Brandon Mikeska

๐Ÿ› - Brian Batronis
Brian Batronis

๐Ÿ› + Brian Batronis
Brian Batronis

๐Ÿ› Brian Johnson
Brian Johnson

๐Ÿ› Brice Dutheil
Brice Dutheil

๐Ÿ’ป ๐Ÿ› Bruno Ferreira
Bruno Ferreira

๐Ÿ› Bruno Harbulot
Bruno Harbulot

๐Ÿ› Bruno Ritz
Bruno Ritz

๐Ÿ› BurovnikovEvgeniy
BurovnikovEvgeniy

๐Ÿ› - Cameron Donaldson
Cameron Donaldson

๐Ÿ› + Cameron Donaldson
Cameron Donaldson

๐Ÿ› Carlos Macasaet
Carlos Macasaet

๐Ÿ› Carsten Otto
Carsten Otto

๐Ÿ› Charlie Housh
Charlie Housh

๐Ÿ› Charlie Jonas
Charlie Jonas

๐Ÿ› Chas Honton
Chas Honton

๐Ÿ› ๐Ÿ’ป Chen Yang
Chen Yang

๐Ÿ› - Chotu
Chotu

๐Ÿ› + Chotu
Chotu

๐Ÿ› Chris Smith
Chris Smith

๐Ÿ› Chris Toomey
Chris Toomey

๐Ÿ› Christian Hujer
Christian Hujer

๐Ÿ› Christian Pontesegger
Christian Pontesegger

๐Ÿ› ChristianWulf
ChristianWulf

๐Ÿ› Christofer Dutz
Christofer Dutz

๐Ÿ’ป - Christoffer Anselm
Christoffer Anselm

๐Ÿ› + Christoffer Anselm
Christoffer Anselm

๐Ÿ› Christophe Vidal
Christophe Vidal

๐Ÿ› Christopher Dancy
Christopher Dancy

๐Ÿ› Clemens Prill
Clemens Prill

๐Ÿ› Clint Chester
Clint Chester

๐Ÿ’ป ๐Ÿ› Clรฉment Fournier
Clรฉment Fournier

๐Ÿ’ป ๐Ÿ“– ๐Ÿ› ๐Ÿšง Codacy Badger
Codacy Badger

๐Ÿ› - Code-Nil
Code-Nil

๐Ÿ› + Code-Nil
Code-Nil

๐Ÿ› ColColonCleaner
ColColonCleaner

๐Ÿ› Colin Ingarfield
Colin Ingarfield

๐Ÿ› Craig Andrews
Craig Andrews

๐Ÿ› Craig Muchinsky
Craig Muchinsky

๐Ÿ› Cyril
Cyril

๐Ÿ’ป ๐Ÿ› Dale
Dale

๐Ÿ’ป - Damien Jiang
Damien Jiang

๐Ÿ› + Damien Jiang
Damien Jiang

๐Ÿ› Dan Berindei
Dan Berindei

๐Ÿ› Dan Rollo
Dan Rollo

๐Ÿ› Dan Ziemba
Dan Ziemba

๐Ÿ› Daniel Gredler
Daniel Gredler

๐Ÿ’ป ๐Ÿ› Daniel Jipa
Daniel Jipa

๐Ÿ› Daniel Paul Searles
Daniel Paul Searles

๐Ÿ’ป - Daniel Reigada
Daniel Reigada

๐Ÿ› + Daniel Reigada
Daniel Reigada

๐Ÿ› Danilo Pianini
Danilo Pianini

๐Ÿ› Darko
Darko

๐Ÿ› David
David

๐Ÿ› David Atkinson
David Atkinson

๐Ÿ› David Burstrรถm
David Burstrรถm

๐Ÿ’ป ๐Ÿ› David Goatรฉ
David Goatรฉ

๐Ÿ› - David Golpira
David Golpira

๐Ÿ› + David Golpira
David Golpira

๐Ÿ› David Kovaล™รญk
David Kovaล™รญk

๐Ÿ› David M. Karr (fullname at gmail.com)
David M. Karr (fullname at gmail.com)

๐Ÿ› David Renz
David Renz

๐Ÿ’ป ๐Ÿ› David Renz
David Renz

๐Ÿ› David Schach
David Schach

๐Ÿ› ๐Ÿ’ป ๐Ÿ“– Dawid Ciok
Dawid Ciok

๐Ÿ› ๐Ÿ’ป - Debamoy Datta
Debamoy Datta

๐Ÿ’ป + Debamoy Datta
Debamoy Datta

๐Ÿ’ป Deleted user
Deleted user

๐Ÿ› Dell Green
Dell Green

๐Ÿ› Dem Pilafian
Dem Pilafian

๐Ÿ› Den
Den

๐Ÿ› Denis Borovikov
Denis Borovikov

๐Ÿ’ป ๐Ÿ› Dennie Reniers
Dennie Reniers

๐Ÿ’ป ๐Ÿ› - Dennis Kieselhorst
Dennis Kieselhorst

๐Ÿ› + Dennis Kieselhorst
Dennis Kieselhorst

๐Ÿ› Derek P. Moore
Derek P. Moore

๐Ÿ› Dichotomia
Dichotomia

๐Ÿ› Dionisio Cortรฉs Fernรกndez
Dionisio Cortรฉs Fernรกndez

๐Ÿ’ป ๐Ÿ› Dmitri Bourlatchkov
Dmitri Bourlatchkov

๐Ÿ› Dmitriy Kuzmin
Dmitriy Kuzmin

๐Ÿ› Dmytro Dashenkov
Dmytro Dashenkov

๐Ÿ› - Dr. Christian Kohlschรผtter
Dr. Christian Kohlschรผtter

๐Ÿ› + Dr. Christian Kohlschรผtter
Dr. Christian Kohlschรผtter

๐Ÿ› Drew Hall
Drew Hall

๐Ÿ› Dumitru Postoronca
Dumitru Postoronca

๐Ÿ› Dylan Adams
Dylan Adams

๐Ÿ› Eden Hao
Eden Hao

๐Ÿ› Edward Klimoshenko
Edward Klimoshenko

๐Ÿ› ๐Ÿ’ป Egor Bredikhin
Egor Bredikhin

๐Ÿ› - Elan P. Kugelmass
Elan P. Kugelmass

๐Ÿ› + Elan P. Kugelmass
Elan P. Kugelmass

๐Ÿ› Elder S.
Elder S.

๐Ÿ› Eldrick Wega
Eldrick Wega

๐Ÿ“– Emile
Emile

๐Ÿ› Eric
Eric

๐Ÿ› Eric Kintzer
Eric Kintzer

๐Ÿ› Eric Perret
Eric Perret

๐Ÿ› - Eric Squires
Eric Squires

๐Ÿ› + Eric Squires
Eric Squires

๐Ÿ› Erich L Foster
Erich L Foster

๐Ÿ› Erik Bleske
Erik Bleske

๐Ÿ› Erik C. Thauvin
Erik C. Thauvin

๐Ÿ“– Ernst Reissner
Ernst Reissner

๐Ÿ› Ethan Sargent
Ethan Sargent

๐Ÿ› Ewan Tempero
Ewan Tempero

๐Ÿ› - F.W. Dekker
F.W. Dekker

๐Ÿ› + F.W. Dekker
F.W. Dekker

๐Ÿ› FSchliephacke
FSchliephacke

๐Ÿ› Facundo
Facundo

๐Ÿ› Federico Giust
Federico Giust

๐Ÿ› Fedor Sherstobitov
Fedor Sherstobitov

๐Ÿ› Felix Lampe
Felix Lampe

๐Ÿ› Filip Golonka
Filip Golonka

๐Ÿ› - Filipe Esperandio
Filipe Esperandio

๐Ÿ’ป ๐Ÿ› + Filipe Esperandio
Filipe Esperandio

๐Ÿ’ป ๐Ÿ› Filippo Nova
Filippo Nova

๐Ÿ› Francesco la Torre
Francesco la Torre

๐Ÿ› Francisco Duarte
Francisco Duarte

๐Ÿ› Frieder Bluemle
Frieder Bluemle

๐Ÿ› Frits Jalvingh
Frits Jalvingh

๐Ÿ’ป ๐Ÿ› G. Bazior
G. Bazior

๐Ÿ› - Gabe Henkes
Gabe Henkes

๐Ÿ› + Gabe Henkes
Gabe Henkes

๐Ÿ› Gary Gregory
Gary Gregory

๐Ÿ› Genoud Magloire
Genoud Magloire

๐Ÿ› Geoffrey555
Geoffrey555

๐Ÿ› Georg Romstorfer
Georg Romstorfer

๐Ÿ› Gili Tzabari
Gili Tzabari

๐Ÿ› Gio
Gio

๐Ÿ› - Gol
Gol

๐Ÿ› + Gol
Gol

๐Ÿ› Gold856
Gold856

๐Ÿ› ๐Ÿ’ป Gonzalo Exequiel Ibars Ingman
Gonzalo Exequiel Ibars Ingman

๐Ÿ’ป ๐Ÿ› GooDer
GooDer

๐Ÿ› Gregor Riegler
Gregor Riegler

๐Ÿ› Grzegorz Olszewski
Grzegorz Olszewski

๐Ÿ› Gunther Schrijvers
Gunther Schrijvers

๐Ÿ’ป ๐Ÿ› - Gustavo Krieger
Gustavo Krieger

๐Ÿ› + Gustavo Krieger
Gustavo Krieger

๐Ÿ› Guy Elsmore-Paddock
Guy Elsmore-Paddock

๐Ÿ› Gรถrkem Mรผlayim
Gรถrkem Mรผlayim

๐Ÿ› Hanzel Godinez
Hanzel Godinez

๐Ÿ› Haoliang Chen
Haoliang Chen

๐Ÿ› Harsh Kukreja
Harsh Kukreja

๐Ÿ› Hassan ALAMI
Hassan ALAMI

๐Ÿ› - Heber
Heber

๐Ÿ› + Heber
Heber

๐Ÿ› Henning Schmiedehausen
Henning Schmiedehausen

๐Ÿ’ป ๐Ÿ› Henning von Bargen
Henning von Bargen

๐Ÿ’ป Hervรฉ Boutemy
Hervรฉ Boutemy

๐Ÿ› Himanshu Pandey
Himanshu Pandey

๐Ÿ› Hokwang Lee
Hokwang Lee

๐Ÿ› Hooperbloob
Hooperbloob

๐Ÿ’ป - Hung PHAN
Hung PHAN

๐Ÿ› + Hung PHAN
Hung PHAN

๐Ÿ› IDoCodingStuffs
IDoCodingStuffs

๐Ÿ’ป ๐Ÿ› Iccen Gan
Iccen Gan

๐Ÿ› Ignacio Mariano Tirabasso
Ignacio Mariano Tirabasso

๐Ÿ› Igor Melnichenko
Igor Melnichenko

๐Ÿ› Igor Moreno
Igor Moreno

๐Ÿ› Intelesis-MS
Intelesis-MS

๐Ÿ› - Iroha_
Iroha_

๐Ÿ› + Iroha_
Iroha_

๐Ÿ› Ishan Srivastava
Ishan Srivastava

๐Ÿ› Ivan Vakhrushev
Ivan Vakhrushev

๐Ÿ› Ivano Guerini
Ivano Guerini

๐Ÿ› Ivar Andreas Bonsaksen
Ivar Andreas Bonsaksen

๐Ÿ› Ivo ล mรญd
Ivo ล mรญd

๐Ÿ› JJengility
JJengility

๐Ÿ› - Jake Hemmerle
Jake Hemmerle

๐Ÿ› + Jake Hemmerle
Jake Hemmerle

๐Ÿ› James Harrison
James Harrison

๐Ÿ› ๐Ÿ’ป Jamie Bisotti
Jamie Bisotti

๐Ÿ› Jan
Jan

๐Ÿ› Jan Aertgeerts
Jan Aertgeerts

๐Ÿ’ป ๐Ÿ› Jan Brรผmmer
Jan Brรผmmer

๐Ÿ› Jan Tล™รญska
Jan Tล™รญska

๐Ÿ› - Jan-Lukas Else
Jan-Lukas Else

๐Ÿ› + Jan-Lukas Else
Jan-Lukas Else

๐Ÿ› Jason Qiu
Jason Qiu

๐Ÿ’ป ๐Ÿ“– Jason Williams
Jason Williams

๐Ÿ› Javier Spagnoletti
Javier Spagnoletti

๐Ÿ› Jean-Paul Mayer
Jean-Paul Mayer

๐Ÿ› Jean-Simon Larochelle
Jean-Simon Larochelle

๐Ÿ› Jeff Bartolotta
Jeff Bartolotta

๐Ÿ’ป ๐Ÿ› - Jeff Hube
Jeff Hube

๐Ÿ’ป ๐Ÿ› + Jeff Hube
Jeff Hube

๐Ÿ’ป ๐Ÿ› Jeff Jensen
Jeff Jensen

๐Ÿ› Jeff May
Jeff May

๐Ÿ› Jens Gerdes
Jens Gerdes

๐Ÿ› Jeroen Borgers
Jeroen Borgers

๐Ÿ› ๐Ÿ’ป ๐Ÿ“ข Jeroen Meijer
Jeroen Meijer

๐Ÿ› Jeroen van Wilgenburg
Jeroen van Wilgenburg

๐Ÿ“– - Jerome Russ
Jerome Russ

๐Ÿ› + Jerome Russ
Jerome Russ

๐Ÿ› JerritEic
JerritEic

๐Ÿ’ป ๐Ÿ“– ๐Ÿ› Jiri Pejchal
Jiri Pejchal

๐Ÿ› Jithin Sunny
Jithin Sunny

๐Ÿ› Jiล™รญ ล korpil
Jiล™รญ ล korpil

๐Ÿ› Joao Machado
Joao Machado

๐Ÿ› Jochen Krauss
Jochen Krauss

๐Ÿ› - Johan Hammar
Johan Hammar

๐Ÿ› + Johan Hammar
Johan Hammar

๐Ÿ› John Karp
John Karp

๐Ÿ› John Zhang
John Zhang

๐Ÿ› John-Teng
John-Teng

๐Ÿ’ป ๐Ÿ› Jon Moroney
Jon Moroney

๐Ÿ’ป ๐Ÿ› Jonas Geiregat
Jonas Geiregat

๐Ÿ› Jonas KeรŸler
Jonas KeรŸler

๐Ÿ› - Jonathan Wiesel
Jonathan Wiesel

๐Ÿ’ป ๐Ÿ› + Jonathan Wiesel
Jonathan Wiesel

๐Ÿ’ป ๐Ÿ› Jordan
Jordan

๐Ÿ› Jordi Llach
Jordi Llach

๐Ÿ› Jorge Solรณrzano
Jorge Solรณrzano

๐Ÿ› JorneVL
JorneVL

๐Ÿ› Jose Palafox
Jose Palafox

๐Ÿ› Jose Stovall
Jose Stovall

๐Ÿ› - Joseph
Joseph

๐Ÿ’ป + Joseph
Joseph

๐Ÿ’ป Joseph Heenan
Joseph Heenan

๐Ÿ› Josh Feingold
Josh Feingold

๐Ÿ’ป ๐Ÿ› Josh Holthaus
Josh Holthaus

๐Ÿ› Joshua S Arquilevich
Joshua S Arquilevich

๐Ÿ› Joรฃo Dinis Ferreira
Joรฃo Dinis Ferreira

๐Ÿ“– Joรฃo Ferreira
Joรฃo Ferreira

๐Ÿ’ป ๐Ÿ› - Joรฃo Pedro Schmitt
Joรฃo Pedro Schmitt

๐Ÿ› + Joรฃo Pedro Schmitt
Joรฃo Pedro Schmitt

๐Ÿ› Juan Martรญn Sotuyo Dodero
Juan Martรญn Sotuyo Dodero

๐Ÿ’ป ๐Ÿ“– ๐Ÿ› ๐Ÿšง Juan Pablo Civile
Juan Pablo Civile

๐Ÿ› Julian Voronetsky
Julian Voronetsky

๐Ÿ› Julien
Julien

๐Ÿ› Julius
Julius

๐Ÿ› JustPRV
JustPRV

๐Ÿ› - Justin Stroud
Justin Stroud

๐Ÿ’ป + Justin Stroud
Justin Stroud

๐Ÿ’ป Jรถrn Huxhorn
Jรถrn Huxhorn

๐Ÿ› KThompso
KThompso

๐Ÿ› Kai Amundsen
Kai Amundsen

๐Ÿ› Karel Vervaeke
Karel Vervaeke

๐Ÿ› Karl-Andero Mere
Karl-Andero Mere

๐Ÿ› Karl-Philipp Richter
Karl-Philipp Richter

๐Ÿ› - Karsten Silz
Karsten Silz

๐Ÿ› + Karsten Silz
Karsten Silz

๐Ÿ› Kazuma Watanabe
Kazuma Watanabe

๐Ÿ› Kev
Kev

๐Ÿ› Keve Mรผller
Keve Mรผller

๐Ÿ› Kevin Guerra
Kevin Guerra

๐Ÿ’ป Kevin Jones
Kevin Jones

๐Ÿ› ๐Ÿ’ป Kevin Poorman
Kevin Poorman

๐Ÿ› - Kevin Wayne
Kevin Wayne

๐Ÿ› + Kevin Wayne
Kevin Wayne

๐Ÿ› Kieran Black
Kieran Black

๐Ÿ› Kirill Zubov
Kirill Zubov

๐Ÿ› Kirk Clemens
Kirk Clemens

๐Ÿ’ป ๐Ÿ› Klaus Hartl
Klaus Hartl

๐Ÿ› Koen Van Looveren
Koen Van Looveren

๐Ÿ› Kris Scheibe
Kris Scheibe

๐Ÿ’ป ๐Ÿ› - Krystian Dabrowski
Krystian Dabrowski

๐Ÿ› ๐Ÿ’ป + Krystian Dabrowski
Krystian Dabrowski

๐Ÿ› ๐Ÿ’ป Kunal Thanki
Kunal Thanki

๐Ÿ› LaLucid
LaLucid

๐Ÿ’ป Larry Diamond
Larry Diamond

๐Ÿ’ป ๐Ÿ› Lars Knickrehm
Lars Knickrehm

๐Ÿ› Laurent Bovet
Laurent Bovet

๐Ÿ› ๐Ÿ’ป Leo Gutierrez
Leo Gutierrez

๐Ÿ› - LiGaOg
LiGaOg

๐Ÿ’ป + LiGaOg
LiGaOg

๐Ÿ’ป Liam Sharp
Liam Sharp

๐Ÿ› Lintsi
Lintsi

๐Ÿ› Linus Fernandes
Linus Fernandes

๐Ÿ› Lixon Lookose
Lixon Lookose

๐Ÿ› Logesh
Logesh

๐Ÿ› Lorenzo Gabriele
Lorenzo Gabriele

๐Ÿ› - Loรฏc Ledoyen
Loรฏc Ledoyen

๐Ÿ› + Loรฏc Ledoyen
Loรฏc Ledoyen

๐Ÿ› Lucas
Lucas

๐Ÿ› Lucas Silva
Lucas Silva

๐Ÿ› Lucas Soncini
Lucas Soncini

๐Ÿ’ป ๐Ÿ› Luis Alcantar
Luis Alcantar

๐Ÿ’ป Lukas Grรคf
Lukas Grรคf

๐Ÿ’ป Lukasz Slonina
Lukasz Slonina

๐Ÿ› - Lukebray
Lukebray

๐Ÿ› + Lukebray
Lukebray

๐Ÿ› Lynn
Lynn

๐Ÿ’ป ๐Ÿ› Lyor Goldstein
Lyor Goldstein

๐Ÿ› MCMicS
MCMicS

๐Ÿ› Macarse
Macarse

๐Ÿ› Machine account for PMD
Machine account for PMD

๐Ÿ’ป Maciek Siemczyk
Maciek Siemczyk

๐Ÿ› - Maikel Steneker
Maikel Steneker

๐Ÿ’ป ๐Ÿ› + Maikel Steneker
Maikel Steneker

๐Ÿ’ป ๐Ÿ› Maksim Moiseikin
Maksim Moiseikin

๐Ÿ› Manfred Koch
Manfred Koch

๐Ÿ› Manuel Moya Ferrer
Manuel Moya Ferrer

๐Ÿ’ป ๐Ÿ› Manuel Ryan
Manuel Ryan

๐Ÿ› Marat Vyshegorodtsev
Marat Vyshegorodtsev

๐Ÿ› Marcel Hรคrle
Marcel Hรคrle

๐Ÿ› - Marcello Fialho
Marcello Fialho

๐Ÿ› + Marcello Fialho
Marcello Fialho

๐Ÿ› Marcin Dฤ…browski
Marcin Dฤ…browski

๐Ÿ’ป Marcin Rataj
Marcin Rataj

๐Ÿ› Marcono1234
Marcono1234

๐Ÿ› Mark Adamcin
Mark Adamcin

๐Ÿ› Mark Hall
Mark Hall

๐Ÿ’ป ๐Ÿ› Mark Kolich
Mark Kolich

๐Ÿ› - Mark Pritchard
Mark Pritchard

๐Ÿ› + Mark Pritchard
Mark Pritchard

๐Ÿ› Markus Rathgeb
Markus Rathgeb

๐Ÿ› Marquis Wang
Marquis Wang

๐Ÿ› MartGit
MartGit

๐Ÿ› Martin Feldsztejn
Martin Feldsztejn

๐Ÿ› Martin Lehmann
Martin Lehmann

๐Ÿ› Martin Spamer
Martin Spamer

๐Ÿ› - Martin Tarjรกnyi
Martin Tarjรกnyi

๐Ÿ› + Martin Tarjรกnyi
Martin Tarjรกnyi

๐Ÿ› MatFl
MatFl

๐Ÿ› Mateusz Stefanski
Mateusz Stefanski

๐Ÿ› Mathieu Gouin
Mathieu Gouin

๐Ÿ› MatiasComercio
MatiasComercio

๐Ÿ’ป ๐Ÿ› Matt Benson
Matt Benson

๐Ÿ› Matt De Poorter
Matt De Poorter

๐Ÿ› - Matt Hargett
Matt Hargett

๐Ÿ’ป ๐Ÿ’ต + Matt Hargett
Matt Hargett

๐Ÿ’ป ๐Ÿ’ต Matt Harrah
Matt Harrah

๐Ÿ› Matt Nelson
Matt Nelson

๐Ÿ› Matthew Amos
Matthew Amos

๐Ÿ› Matthew Duggan
Matthew Duggan

๐Ÿ› Matthew Hall
Matthew Hall

๐Ÿ› Matthew Rossner
Matthew Rossner

๐Ÿ› - Matรญas Fraga
Matรญas Fraga

๐Ÿ’ป ๐Ÿ› + Matรญas Fraga
Matรญas Fraga

๐Ÿ’ป ๐Ÿ› Maxime Robert
Maxime Robert

๐Ÿ’ป ๐Ÿ› MetaBF
MetaBF

๐Ÿ› Metin Dagcilar
Metin Dagcilar

๐Ÿ› Michael
Michael

๐Ÿ› Michael Bell
Michael Bell

๐Ÿ› Michael Bernstein
Michael Bernstein

๐Ÿ› - Michael Clay
Michael Clay

๐Ÿ› + Michael Clay
Michael Clay

๐Ÿ› Michael Dombrowski
Michael Dombrowski

๐Ÿ› Michael Hausegger
Michael Hausegger

๐Ÿ› Michael Hoefer
Michael Hoefer

๐Ÿ› Michael Kolesnikov
Michael Kolesnikov

๐Ÿ› Michael Mรถbius
Michael Mรถbius

๐Ÿ› Michael N. Lipp
Michael N. Lipp

๐Ÿ› - Michael Pellegrini
Michael Pellegrini

๐Ÿ› + Michael Pellegrini
Michael Pellegrini

๐Ÿ› Michal Kordas
Michal Kordas

๐Ÿ› Michaล‚ Borek
Michaล‚ Borek

๐Ÿ› Michaล‚ Kuliล„ski
Michaล‚ Kuliล„ski

๐Ÿ› Miguel Nรบรฑez Dรญaz-Montes
Miguel Nรบรฑez Dรญaz-Montes

๐Ÿ› Mihai Ionut
Mihai Ionut

๐Ÿ› Mikhail Kuchma
Mikhail Kuchma

๐Ÿ› - Mirek Hankus
Mirek Hankus

๐Ÿ› + Mirek Hankus
Mirek Hankus

๐Ÿ› Mitch Spano
Mitch Spano

๐Ÿ› Mladjan Gadzic
Mladjan Gadzic

๐Ÿ› MrAngry52
MrAngry52

๐Ÿ› Muminur Choudhury
Muminur Choudhury

๐Ÿ› Mykhailo Palahuta
Mykhailo Palahuta

๐Ÿ’ป ๐Ÿ› Nagendra Kumar Singh
Nagendra Kumar Singh

๐Ÿ› - Nahuel Barrios
Nahuel Barrios

๐Ÿ› + Nahuel Barrios
Nahuel Barrios

๐Ÿ› Nakul Sharma
Nakul Sharma

๐Ÿ› Nathan Braun
Nathan Braun

๐Ÿ› Nathan Reynolds
Nathan Reynolds

๐Ÿ› Nathan Reynolds
Nathan Reynolds

๐Ÿ› Nathanaรซl
Nathanaรซl

๐Ÿ› Naveen
Naveen

๐Ÿ’ป - Nazdravi
Nazdravi

๐Ÿ› + Nazdravi
Nazdravi

๐Ÿ› Neha-Dhonde
Neha-Dhonde

๐Ÿ› Nicholas Doyle
Nicholas Doyle

๐Ÿ› Nick Butcher
Nick Butcher

๐Ÿ› Nico Gallinal
Nico Gallinal

๐Ÿ› Nicola Dal Maso
Nicola Dal Maso

๐Ÿ› Nicolas Filotto
Nicolas Filotto

๐Ÿ’ป - Nicolas Vervelle
Nicolas Vervelle

๐Ÿ› + Nicolas Vervelle
Nicolas Vervelle

๐Ÿ› Nicolas Vuillamy
Nicolas Vuillamy

๐Ÿ“– Nikita Chursin
Nikita Chursin

๐Ÿ› Niklas Baudy
Niklas Baudy

๐Ÿ› Nikolas Havrikov
Nikolas Havrikov

๐Ÿ› Nilesh Virkar
Nilesh Virkar

๐Ÿ› Nimit Patel
Nimit Patel

๐Ÿ› - Niranjan Harpale
Niranjan Harpale

๐Ÿ› + Niranjan Harpale
Niranjan Harpale

๐Ÿ› Nirvik Patel
Nirvik Patel

๐Ÿ’ป Noah Sussman
Noah Sussman

๐Ÿ› Noah0120
Noah0120

๐Ÿ› Noam Tamim
Noam Tamim

๐Ÿ› Noel Grandin
Noel Grandin

๐Ÿ› Olaf Haalstra
Olaf Haalstra

๐Ÿ› - Oleg Andreych
Oleg Andreych

๐Ÿ’ป ๐Ÿ› + Oleg Andreych
Oleg Andreych

๐Ÿ’ป ๐Ÿ› Oleg Pavlenko
Oleg Pavlenko

๐Ÿ› Oleksii Dykov
Oleksii Dykov

๐Ÿ’ป ๐Ÿ› Oliver Eikemeier
Oliver Eikemeier

๐Ÿ› Oliver Siegmar
Oliver Siegmar

๐Ÿ’ต Olivier Parent
Olivier Parent

๐Ÿ’ป ๐Ÿ› Ollie Abbey
Ollie Abbey

๐Ÿ’ป ๐Ÿ› - Ondrej Kratochvil
Ondrej Kratochvil

๐Ÿ› + Ondrej Kratochvil
Ondrej Kratochvil

๐Ÿ› OverDrone
OverDrone

๐Ÿ› Ozan Gulle
Ozan Gulle

๐Ÿ’ป ๐Ÿ› PUNEET JAIN
PUNEET JAIN

๐Ÿ› Parbati Bose
Parbati Bose

๐Ÿ› Paul Berg
Paul Berg

๐Ÿ› Paul Guyot
Paul Guyot

๐Ÿ’ป - Pavel Bludov
Pavel Bludov

๐Ÿ› + Pavel Bludov
Pavel Bludov

๐Ÿ› Pavel Miฤka
Pavel Miฤka

๐Ÿ› Pedro Nuno Santos
Pedro Nuno Santos

๐Ÿ› Pedro Rijo
Pedro Rijo

๐Ÿ› Pelisse Romain
Pelisse Romain

๐Ÿ’ป ๐Ÿ“– ๐Ÿ› Per Abich
Per Abich

๐Ÿ’ป Pete Davids
Pete Davids

๐Ÿ› - Peter Bruin
Peter Bruin

๐Ÿ› + Peter Bruin
Peter Bruin

๐Ÿ› Peter Chittum
Peter Chittum

๐Ÿ’ป ๐Ÿ› Peter Cudmore
Peter Cudmore

๐Ÿ› Peter Kasson
Peter Kasson

๐Ÿ› Peter Kofler
Peter Kofler

๐Ÿ› Peter Paul Bakker
Peter Paul Bakker

๐Ÿ’ป Peter Rader
Peter Rader

๐Ÿ› - Pham Hai Trung
Pham Hai Trung

๐Ÿ› + Pham Hai Trung
Pham Hai Trung

๐Ÿ› Philip Graf
Philip Graf

๐Ÿ’ป ๐Ÿ› Philip Hachey
Philip Hachey

๐Ÿ› Philippe Ozil
Philippe Ozil

๐Ÿ› Phinehas Artemix
Phinehas Artemix

๐Ÿ› Phokham Nonava
Phokham Nonava

๐Ÿ› Pim van der Loos
Pim van der Loos

๐Ÿ’ป โš ๏ธ - Piotr Szymaล„ski
Piotr Szymaล„ski

๐Ÿ› + Piotr Szymaล„ski
Piotr Szymaล„ski

๐Ÿ› Piotrek ลปygieล‚o
Piotrek ลปygieล‚o

๐Ÿ’ป ๐Ÿ› ๐Ÿ“– Pranay Jaiswal
Pranay Jaiswal

๐Ÿ› Prasad Kamath
Prasad Kamath

๐Ÿ› Prasanna
Prasanna

๐Ÿ› Presh-AR
Presh-AR

๐Ÿ› Puneet1726
Puneet1726

๐Ÿ› - RBRi
RBRi

๐Ÿ› + RBRi
RBRi

๐Ÿ› Rafael Cortรชs
Rafael Cortรชs

๐Ÿ› RaheemShaik999
RaheemShaik999

๐Ÿ› RajeshR
RajeshR

๐Ÿ’ป ๐Ÿ› Ramachandra Mohan
Ramachandra Mohan

๐Ÿ› Ramel0921
Ramel0921

๐Ÿ› Raquel Pau
Raquel Pau

๐Ÿ› - Ravikiran Janardhana
Ravikiran Janardhana

๐Ÿ› + Ravikiran Janardhana
Ravikiran Janardhana

๐Ÿ› Reda Benhemmouche
Reda Benhemmouche

๐Ÿ› Reinhard Schiedermeier
Reinhard Schiedermeier

๐Ÿ› Renato Oliveira
Renato Oliveira

๐Ÿ’ป ๐Ÿ› Rich DiCroce
Rich DiCroce

๐Ÿ› Richard Corfield
Richard Corfield

๐Ÿ’ป Richard Corfield
Richard Corfield

๐Ÿ› ๐Ÿ’ป - Riot R1cket
Riot R1cket

๐Ÿ› + Riot R1cket
Riot R1cket

๐Ÿ› Rishabh Jain
Rishabh Jain

๐Ÿ› RishabhDeep Singh
RishabhDeep Singh

๐Ÿ› Rob Baillie
Rob Baillie

๐Ÿ› Robbie Martinus
Robbie Martinus

๐Ÿ’ป ๐Ÿ› Robert Henry
Robert Henry

๐Ÿ› Robert Mihaly
Robert Mihaly

๐Ÿ› - Robert Painsi
Robert Painsi

๐Ÿ› + Robert Painsi
Robert Painsi

๐Ÿ› Robert Russell
Robert Russell

๐Ÿ› Robert Sรถsemann
Robert Sรถsemann

๐Ÿ’ป ๐Ÿ“– ๐Ÿ“ข ๐Ÿ› Robert Whitebit
Robert Whitebit

๐Ÿ› Robin Richtsfeld
Robin Richtsfeld

๐Ÿ› Robin Stocker
Robin Stocker

๐Ÿ’ป ๐Ÿ› Robin Wils
Robin Wils

๐Ÿ› - RochusOest
RochusOest

๐Ÿ› + RochusOest
RochusOest

๐Ÿ› Rodolfo Noviski
Rodolfo Noviski

๐Ÿ› Rodrigo Casara
Rodrigo Casara

๐Ÿ› Rodrigo Fernandes
Rodrigo Fernandes

๐Ÿ› Roman Salvador
Roman Salvador

๐Ÿ’ป ๐Ÿ› Ronald Blaschke
Ronald Blaschke

๐Ÿ› Rรณbert Papp
Rรณbert Papp

๐Ÿ› - Saikat Sengupta
Saikat Sengupta

๐Ÿ› + Saikat Sengupta
Saikat Sengupta

๐Ÿ› Saksham Handu
Saksham Handu

๐Ÿ› Saladoc
Saladoc

๐Ÿ› Salesforce Bob Lightning
Salesforce Bob Lightning

๐Ÿ› Sam Carlberg
Sam Carlberg

๐Ÿ› Sascha Riemer
Sascha Riemer

๐Ÿ› Sashko
Sashko

๐Ÿ’ป - Satoshi Kubo
Satoshi Kubo

๐Ÿ› + Satoshi Kubo
Satoshi Kubo

๐Ÿ› Scott Kennedy
Scott Kennedy

๐Ÿ› Scott Wells
Scott Wells

๐Ÿ› ๐Ÿ’ป Scrates1
Scrates1

๐Ÿ› ๐Ÿ’ป Scrsloota
Scrsloota

๐Ÿ’ป Sebastian Bรถgl
Sebastian Bรถgl

๐Ÿ› Sebastian Davids
Sebastian Davids

๐Ÿ› - Sebastian Schuberth
Sebastian Schuberth

๐Ÿ› + Sebastian Schuberth
Sebastian Schuberth

๐Ÿ› Sebastian Schwarz
Sebastian Schwarz

๐Ÿ› Seren
Seren

๐Ÿ› ๐Ÿ’ป Sergey Gorbaty
Sergey Gorbaty

๐Ÿ› Sergey Kozlov
Sergey Kozlov

๐Ÿ› Sergey Yanzin
Sergey Yanzin

๐Ÿ’ป ๐Ÿ› Seth Wilcox
Seth Wilcox

๐Ÿ’ป - Shai Bennathan
Shai Bennathan

๐Ÿ› ๐Ÿ’ป + Shai Bennathan
Shai Bennathan

๐Ÿ› ๐Ÿ’ป Shubham
Shubham

๐Ÿ’ป ๐Ÿ› Simon Abykov
Simon Abykov

๐Ÿ’ป ๐Ÿ› Simon Xiao
Simon Xiao

๐Ÿ› Srinivasan Venkatachalam
Srinivasan Venkatachalam

๐Ÿ› Stanislav Gromov
Stanislav Gromov

๐Ÿ› Stanislav Myachenkov
Stanislav Myachenkov

๐Ÿ’ป - Stefan Birkner
Stefan Birkner

๐Ÿ› + Stefan Birkner
Stefan Birkner

๐Ÿ› Stefan Bohn
Stefan Bohn

๐Ÿ› Stefan Endrullis
Stefan Endrullis

๐Ÿ› Stefan Klรถss-Schuster
Stefan Klรถss-Schuster

๐Ÿ› Stefan Wolf
Stefan Wolf

๐Ÿ› Stephan H. Wissel
Stephan H. Wissel

๐Ÿ› Stephen
Stephen

๐Ÿ› - Stephen Carter
Stephen Carter

๐Ÿ› + Stephen Carter
Stephen Carter

๐Ÿ› Stephen Friedrich
Stephen Friedrich

๐Ÿ› Steve Babula
Steve Babula

๐Ÿ’ป Steven Stearns
Steven Stearns

๐Ÿ› ๐Ÿ’ป Stexxe
Stexxe

๐Ÿ› Stian Lรฅgstad
Stian Lรฅgstad

๐Ÿ› StuartClayton5
StuartClayton5

๐Ÿ› - Supun Arunoda
Supun Arunoda

๐Ÿ› + Supun Arunoda
Supun Arunoda

๐Ÿ› Suren Abrahamyan
Suren Abrahamyan

๐Ÿ› Suvashri
Suvashri

๐Ÿ“– SwatiBGupta1110
SwatiBGupta1110

๐Ÿ› SyedThoufich
SyedThoufich

๐Ÿ› Szymon Sasin
Szymon Sasin

๐Ÿ› T-chuangxin
T-chuangxin

๐Ÿ› - TERAI Atsuhiro
TERAI Atsuhiro

๐Ÿ› + TERAI Atsuhiro
TERAI Atsuhiro

๐Ÿ› TIOBE Software
TIOBE Software

๐Ÿ’ป ๐Ÿ› Tarush Singh
Tarush Singh

๐Ÿ’ป Taylor Smock
Taylor Smock

๐Ÿ› Techeira Damiรกn
Techeira Damiรกn

๐Ÿ’ป ๐Ÿ› Ted Husted
Ted Husted

๐Ÿ› TehBakker
TehBakker

๐Ÿ› - The Gitter Badger
The Gitter Badger

๐Ÿ› + The Gitter Badger
The Gitter Badger

๐Ÿ› Theodoor
Theodoor

๐Ÿ› Thiago Henrique Hรผpner
Thiago Henrique Hรผpner

๐Ÿ› Thibault Meyer
Thibault Meyer

๐Ÿ› Thomas Gรผttler
Thomas Gรผttler

๐Ÿ› Thomas Jones-Low
Thomas Jones-Low

๐Ÿ› Thomas Smith
Thomas Smith

๐Ÿ’ป ๐Ÿ› - ThrawnCA
ThrawnCA

๐Ÿ› + ThrawnCA
ThrawnCA

๐Ÿ› Thu Vo
Thu Vo

๐Ÿ› Thunderforge
Thunderforge

๐Ÿ’ป ๐Ÿ› Tim van der Lippe
Tim van der Lippe

๐Ÿ› Tobias Weimer
Tobias Weimer

๐Ÿ’ป ๐Ÿ› Tom Copeland
Tom Copeland

๐Ÿ› ๐Ÿ’ป ๐Ÿ“– Tom Daly
Tom Daly

๐Ÿ› - Tomas
Tomas

๐Ÿ› + Tomas
Tomas

๐Ÿ› Tomer Figenblat
Tomer Figenblat

๐Ÿ› Tomi De Lucca
Tomi De Lucca

๐Ÿ’ป ๐Ÿ› Tony
Tony

๐Ÿ“– Torsten Kleiber
Torsten Kleiber

๐Ÿ› TrackerSB
TrackerSB

๐Ÿ› Tyson Stewart
Tyson Stewart

๐Ÿ› - Ullrich Hafner
Ullrich Hafner

๐Ÿ› + Ullrich Hafner
Ullrich Hafner

๐Ÿ› Utku Cuhadaroglu
Utku Cuhadaroglu

๐Ÿ’ป ๐Ÿ› Valentin Brandl
Valentin Brandl

๐Ÿ› Valeria
Valeria

๐Ÿ› Valery Yatsynovich
Valery Yatsynovich

๐Ÿ“– Vasily Anisimov
Vasily Anisimov

๐Ÿ› Vedant Chokshi
Vedant Chokshi

๐Ÿ› - Vibhor Goyal
Vibhor Goyal

๐Ÿ› + Vibhor Goyal
Vibhor Goyal

๐Ÿ› Vickenty Fesunov
Vickenty Fesunov

๐Ÿ› Victor Noรซl
Victor Noรซl

๐Ÿ› Vincent Galloy
Vincent Galloy

๐Ÿ’ป Vincent HUYNH
Vincent HUYNH

๐Ÿ› Vincent Maurin
Vincent Maurin

๐Ÿ› Vincent Privat
Vincent Privat

๐Ÿ› - Vishhwas
Vishhwas

๐Ÿ› + Vishhwas
Vishhwas

๐Ÿ› Vishv_Android
Vishv_Android

๐Ÿ› Vitaly
Vitaly

๐Ÿ› Vitaly Polonetsky
Vitaly Polonetsky

๐Ÿ› Vojtech Polivka
Vojtech Polivka

๐Ÿ› Vsevolod Zholobov
Vsevolod Zholobov

๐Ÿ› Vyom Yadav
Vyom Yadav

๐Ÿ’ป - Wang Shidong
Wang Shidong

๐Ÿ› + Wang Shidong
Wang Shidong

๐Ÿ› Waqas Ahmed
Waqas Ahmed

๐Ÿ› Wayne J. Earl
Wayne J. Earl

๐Ÿ› Wchenghui
Wchenghui

๐Ÿ› Wener
Wener

๐Ÿ’ป Will Winder
Will Winder

๐Ÿ› William Brockhus
William Brockhus

๐Ÿ’ป ๐Ÿ› - Wilson Kurniawan
Wilson Kurniawan

๐Ÿ› + Wilson Kurniawan
Wilson Kurniawan

๐Ÿ› Wim Deblauwe
Wim Deblauwe

๐Ÿ› Woongsik Choi
Woongsik Choi

๐Ÿ› XenoAmess
XenoAmess

๐Ÿ’ป ๐Ÿ› Yang
Yang

๐Ÿ’ป YaroslavTER
YaroslavTER

๐Ÿ› Yasar Shaikh
Yasar Shaikh

๐Ÿ’ป - Young Chan
Young Chan

๐Ÿ’ป ๐Ÿ› + Young Chan
Young Chan

๐Ÿ’ป ๐Ÿ› YuJin Kim
YuJin Kim

๐Ÿ› Yuri Dolzhenko
Yuri Dolzhenko

๐Ÿ› Yurii Dubinka
Yurii Dubinka

๐Ÿ› Zoltan Farkas
Zoltan Farkas

๐Ÿ› Zustin
Zustin

๐Ÿ› aaronhurst-google
aaronhurst-google

๐Ÿ› ๐Ÿ’ป - alexmodis
alexmodis

๐Ÿ› + alexmodis
alexmodis

๐Ÿ› andreoss
andreoss

๐Ÿ› andrey81inmd
andrey81inmd

๐Ÿ’ป ๐Ÿ› anicoara
anicoara

๐Ÿ› arunprasathav
arunprasathav

๐Ÿ› asiercamara
asiercamara

๐Ÿ› astillich-igniti
astillich-igniti

๐Ÿ’ป - avesolovksyy
avesolovksyy

๐Ÿ› + avesolovksyy
avesolovksyy

๐Ÿ› avishvat
avishvat

๐Ÿ› avivmu
avivmu

๐Ÿ› axelbarfod1
axelbarfod1

๐Ÿ› b-3-n
b-3-n

๐Ÿ› balbhadra9
balbhadra9

๐Ÿ› base23de
base23de

๐Ÿ› - bergander
bergander

๐Ÿ› ๐Ÿ’ป + bergander
bergander

๐Ÿ› ๐Ÿ’ป berkam
berkam

๐Ÿ’ป ๐Ÿ› breizh31
breizh31

๐Ÿ› caesarkim
caesarkim

๐Ÿ› carolyujing
carolyujing

๐Ÿ› cbfiddle
cbfiddle

๐Ÿ› cesares-basilico
cesares-basilico

๐Ÿ› - chrite
chrite

๐Ÿ› + chrite
chrite

๐Ÿ› ciufudean
ciufudean

๐Ÿ“– cobratbq
cobratbq

๐Ÿ› coladict
coladict

๐Ÿ› cosmoJFH
cosmoJFH

๐Ÿ› cristalp
cristalp

๐Ÿ› crunsk
crunsk

๐Ÿ› - cwholmes
cwholmes

๐Ÿ› + cwholmes
cwholmes

๐Ÿ› cyberjj999
cyberjj999

๐Ÿ› cyw3
cyw3

๐Ÿ› ๐Ÿ“– d1ss0nanz
d1ss0nanz

๐Ÿ› dague1
dague1

๐Ÿ“– dalizi007
dalizi007

๐Ÿ’ป danbrycefairsailcom
danbrycefairsailcom

๐Ÿ› - dariansanity
dariansanity

๐Ÿ› + dariansanity
dariansanity

๐Ÿ› darrenmiliband
darrenmiliband

๐Ÿ› davidburstrom
davidburstrom

๐Ÿ› dbirkman-paloalto
dbirkman-paloalto

๐Ÿ› deepak-patra
deepak-patra

๐Ÿ› dependabot[bot]
dependabot[bot]

๐Ÿ’ป ๐Ÿ› dinesh150
dinesh150

๐Ÿ› - diziaq
diziaq

๐Ÿ› + diziaq
diziaq

๐Ÿ› dreaminpast123
dreaminpast123

๐Ÿ› duanyanan
duanyanan

๐Ÿ› dutt-sanjay
dutt-sanjay

๐Ÿ› duursma
duursma

๐Ÿ’ป dylanleung
dylanleung

๐Ÿ› dzeigler
dzeigler

๐Ÿ› - eant60
eant60

๐Ÿ› + eant60
eant60

๐Ÿ› ekkirala
ekkirala

๐Ÿ› emersonmoura
emersonmoura

๐Ÿ› emouty
emouty

๐Ÿ’ป eugenepugach
eugenepugach

๐Ÿ› fairy
fairy

๐Ÿ› filiprafalowicz
filiprafalowicz

๐Ÿ’ป - flxbl-io
flxbl-io

๐Ÿ’ต + flxbl-io
flxbl-io

๐Ÿ’ต foxmason
foxmason

๐Ÿ› frankegabor
frankegabor

๐Ÿ› frankl
frankl

๐Ÿ› freafrea
freafrea

๐Ÿ› fsapatin
fsapatin

๐Ÿ› gearsethenry
gearsethenry

๐Ÿ› - gracia19
gracia19

๐Ÿ› + gracia19
gracia19

๐Ÿ› gudzpoz
gudzpoz

๐Ÿ› guo fei
guo fei

๐Ÿ› gurmsc5
gurmsc5

๐Ÿ› gwilymatgearset
gwilymatgearset

๐Ÿ’ป ๐Ÿ› haigsn
haigsn

๐Ÿ› hemanshu070
hemanshu070

๐Ÿ› - henrik242
henrik242

๐Ÿ› + henrik242
henrik242

๐Ÿ› hongpuwu
hongpuwu

๐Ÿ› hvbtup
hvbtup

๐Ÿ’ป ๐Ÿ› igniti GmbH
igniti GmbH

๐Ÿ› ilovezfs
ilovezfs

๐Ÿ› imax-erik
imax-erik

๐Ÿ› itaigilo
itaigilo

๐Ÿ› - jakivey32
jakivey32

๐Ÿ› + jakivey32
jakivey32

๐Ÿ› jbennett2091
jbennett2091

๐Ÿ› jcamerin
jcamerin

๐Ÿ› jkeener1
jkeener1

๐Ÿ› jmetertea
jmetertea

๐Ÿ› johnra2
johnra2

๐Ÿ’ป johnzhao9
johnzhao9

๐Ÿ› - josemanuelrolon
josemanuelrolon

๐Ÿ’ป ๐Ÿ› + josemanuelrolon
josemanuelrolon

๐Ÿ’ป ๐Ÿ› kabroxiko
kabroxiko

๐Ÿ’ป ๐Ÿ› karthikaiyasamy
karthikaiyasamy

๐Ÿ“– karwer
karwer

๐Ÿ› kaulonline
kaulonline

๐Ÿ› kdaemonv
kdaemonv

๐Ÿ› kdebski85
kdebski85

๐Ÿ› ๐Ÿ’ป - kenji21
kenji21

๐Ÿ’ป ๐Ÿ› + kenji21
kenji21

๐Ÿ’ป ๐Ÿ› kfranic
kfranic

๐Ÿ› khalidkh
khalidkh

๐Ÿ› koalalam
koalalam

๐Ÿ› krzyk
krzyk

๐Ÿ› lasselindqvist
lasselindqvist

๐Ÿ› lgemeinhardt
lgemeinhardt

๐Ÿ› - lihuaib
lihuaib

๐Ÿ› + lihuaib
lihuaib

๐Ÿ› liqingjun123
liqingjun123

๐Ÿ› lonelyma1021
lonelyma1021

๐Ÿ› lpeddy
lpeddy

๐Ÿ› lujiefsi
lujiefsi

๐Ÿ’ป lukelukes
lukelukes

๐Ÿ’ป lyriccoder
lyriccoder

๐Ÿ› - marcelmore
marcelmore

๐Ÿ› + marcelmore
marcelmore

๐Ÿ› matchbox
matchbox

๐Ÿ› matthiaskraaz
matthiaskraaz

๐Ÿ› meandonlyme
meandonlyme

๐Ÿ› mikesive
mikesive

๐Ÿ› milossesic
milossesic

๐Ÿ› mluckam
mluckam

๐Ÿ’ป ๐Ÿ› - mohan-chinnappan-n
mohan-chinnappan-n

๐Ÿ’ป + mohan-chinnappan-n
mohan-chinnappan-n

๐Ÿ’ป mriddell95
mriddell95

๐Ÿ› mrlzh
mrlzh

๐Ÿ› msloan
msloan

๐Ÿ› mucharlaravalika
mucharlaravalika

๐Ÿ› mvenneman
mvenneman

๐Ÿ› nareshl119
nareshl119

๐Ÿ› - nicolas-harraudeau-sonarsource
nicolas-harraudeau-sonarsource

๐Ÿ› + nicolas-harraudeau-sonarsource
nicolas-harraudeau-sonarsource

๐Ÿ› noerremark
noerremark

๐Ÿ› novsirion
novsirion

๐Ÿ› nwcm
nwcm

๐Ÿ“– ๐Ÿ› ๐Ÿ’ป oggboy
oggboy

๐Ÿ› oinume
oinume

๐Ÿ› orimarko
orimarko

๐Ÿ’ป ๐Ÿ› - pablogomez2197
pablogomez2197

๐Ÿ› + pablogomez2197
pablogomez2197

๐Ÿ› pacvz
pacvz

๐Ÿ’ป pallavi agarwal
pallavi agarwal

๐Ÿ› parksungrin
parksungrin

๐Ÿ› patpatpat123
patpatpat123

๐Ÿ› patriksevallius
patriksevallius

๐Ÿ› pbrajesh1
pbrajesh1

๐Ÿ› - phoenix384
phoenix384

๐Ÿ› + phoenix384
phoenix384

๐Ÿ› piotrszymanski-sc
piotrszymanski-sc

๐Ÿ’ป plan3d
plan3d

๐Ÿ› poojasix
poojasix

๐Ÿ› prabhushrikant
prabhushrikant

๐Ÿ› pujitha8783
pujitha8783

๐Ÿ› r-r-a-j
r-r-a-j

๐Ÿ› - raghujayjunk
raghujayjunk

๐Ÿ› + raghujayjunk
raghujayjunk

๐Ÿ› rajeshveera
rajeshveera

๐Ÿ› rajeswarreddy88
rajeswarreddy88

๐Ÿ› recdevs
recdevs

๐Ÿ› reudismam
reudismam

๐Ÿ’ป ๐Ÿ› rijkt
rijkt

๐Ÿ› rillig-tk
rillig-tk

๐Ÿ› - rmohan20
rmohan20

๐Ÿ’ป ๐Ÿ› + rmohan20
rmohan20

๐Ÿ’ป ๐Ÿ› rnveach
rnveach

๐Ÿ› rxmicro
rxmicro

๐Ÿ› ryan-gustafson
ryan-gustafson

๐Ÿ’ป ๐Ÿ› sabi0
sabi0

๐Ÿ› scais
scais

๐Ÿ› schosin
schosin

๐Ÿ› - screamingfrog
screamingfrog

๐Ÿ’ต + screamingfrog
screamingfrog

๐Ÿ’ต sebbASF
sebbASF

๐Ÿ› sergeygorbaty
sergeygorbaty

๐Ÿ’ป shilko2013
shilko2013

๐Ÿ› shiomiyan
shiomiyan

๐Ÿ“– simeonKondr
simeonKondr

๐Ÿ› snajberk
snajberk

๐Ÿ› - sniperrifle2004
sniperrifle2004

๐Ÿ› + sniperrifle2004
sniperrifle2004

๐Ÿ› snuyanzin
snuyanzin

๐Ÿ› ๐Ÿ’ป soloturn
soloturn

๐Ÿ› soyodream
soyodream

๐Ÿ› sratz
sratz

๐Ÿ› stonio
stonio

๐Ÿ› sturton
sturton

๐Ÿ’ป ๐Ÿ› - sudharmohan
sudharmohan

๐Ÿ› + sudharmohan
sudharmohan

๐Ÿ› suruchidawar
suruchidawar

๐Ÿ› svenfinitiv
svenfinitiv

๐Ÿ› szymanp23
szymanp23

๐Ÿ› ๐Ÿ’ป tashiscool
tashiscool

๐Ÿ› test-git-hook
test-git-hook

๐Ÿ› testation21
testation21

๐Ÿ’ป ๐Ÿ› - thanosa
thanosa

๐Ÿ› + thanosa
thanosa

๐Ÿ› tiandiyixian
tiandiyixian

๐Ÿ› tobwoerk
tobwoerk

๐Ÿ› tprouvot
tprouvot

๐Ÿ› ๐Ÿ’ป trentchilders
trentchilders

๐Ÿ› triandicAnt
triandicAnt

๐Ÿ› trishul14
trishul14

๐Ÿ› - tsui
tsui

๐Ÿ› + tsui
tsui

๐Ÿ› wangzitom12306
wangzitom12306

๐Ÿ› winhkey
winhkey

๐Ÿ› witherspore
witherspore

๐Ÿ› wjljack
wjljack

๐Ÿ› wuchiuwong
wuchiuwong

๐Ÿ› xingsong
xingsong

๐Ÿ› - xioayuge
xioayuge

๐Ÿ› + xioayuge
xioayuge

๐Ÿ› xnYi9wRezm
xnYi9wRezm

๐Ÿ’ป ๐Ÿ› xuanuy
xuanuy

๐Ÿ› xyf0921
xyf0921

๐Ÿ› yalechen-cyw3
yalechen-cyw3

๐Ÿ› yasuharu-sato
yasuharu-sato

๐Ÿ› zenglian
zenglian

๐Ÿ› - zgrzyt93
zgrzyt93

๐Ÿ’ป ๐Ÿ› + zgrzyt93
zgrzyt93

๐Ÿ’ป ๐Ÿ› zh3ng
zh3ng

๐Ÿ› zt_soft
zt_soft

๐Ÿ› ztt79
ztt79

๐Ÿ› zzzzfeng
zzzzfeng

๐Ÿ› รrpรกd Magosรกnyi
รrpรกd Magosรกnyi

๐Ÿ› ไปป่ดตๆฐ
ไปป่ดตๆฐ

๐Ÿ› + + ่Œ…ๅปถๅฎ‰
่Œ…ๅปถๅฎ‰

๐Ÿ’ป From ab1976382af7be6b424a5500a2ce5dc84e645238 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juan=20Mart=C3=ADn=20Sotuyo=20Dodero?= Date: Sat, 12 Oct 2024 17:28:18 -0300 Subject: [PATCH 19/24] Remove ant.contrib.jar property --- antlr4-wrapper.xml | 9 +-------- pmd-cs/pom.xml | 1 - pmd-dart/pom.xml | 1 - pmd-go/pom.xml | 1 - pmd-kotlin/pom.xml | 1 - pmd-lua/pom.xml | 1 - pmd-swift/pom.xml | 1 - pom.xml | 1 - 8 files changed, 1 insertion(+), 15 deletions(-) diff --git a/antlr4-wrapper.xml b/antlr4-wrapper.xml index 0832bd9bc0..c3e4527f9f 100644 --- a/antlr4-wrapper.xml +++ b/antlr4-wrapper.xml @@ -11,15 +11,8 @@ - root-node-name: name of the root node without prefix (eg "TopLevel"), will be made to implement RootNode See AntlrGeneratedParserBase - - It also uses the following maven properties: - - ant.contrib.jar: Location of the ant-contrib jar --> - - - - - + diff --git a/pmd-cs/pom.xml b/pmd-cs/pom.xml index f4879ed0e7..0eec39f809 100644 --- a/pmd-cs/pom.xml +++ b/pmd-cs/pom.xml @@ -30,7 +30,6 @@ - diff --git a/pmd-dart/pom.xml b/pmd-dart/pom.xml index f772795832..496115127b 100644 --- a/pmd-dart/pom.xml +++ b/pmd-dart/pom.xml @@ -30,7 +30,6 @@ - diff --git a/pmd-go/pom.xml b/pmd-go/pom.xml index cf47e5217c..4df297ebc9 100644 --- a/pmd-go/pom.xml +++ b/pmd-go/pom.xml @@ -30,7 +30,6 @@ - diff --git a/pmd-kotlin/pom.xml b/pmd-kotlin/pom.xml index 5e9dbf2e80..40f19513de 100644 --- a/pmd-kotlin/pom.xml +++ b/pmd-kotlin/pom.xml @@ -43,7 +43,6 @@ - diff --git a/pmd-lua/pom.xml b/pmd-lua/pom.xml index c8adda151f..f3a24be6d3 100644 --- a/pmd-lua/pom.xml +++ b/pmd-lua/pom.xml @@ -30,7 +30,6 @@ - diff --git a/pmd-swift/pom.xml b/pmd-swift/pom.xml index 0c50cdc818..023fa8dd39 100644 --- a/pmd-swift/pom.xml +++ b/pmd-swift/pom.xml @@ -42,7 +42,6 @@ - diff --git a/pom.xml b/pom.xml index 0f41e68e7d..871775ff54 100644 --- a/pom.xml +++ b/pom.xml @@ -123,7 +123,6 @@ ${project.basedir}/../javacc-wrapper.xml 1.0b3 - ${settings.localRepository}/ant-contrib/ant-contrib/${ant-contrib.version}/ant-contrib-${ant-contrib.version}.jar ${project.build.directory}/generated-sources/antlr4 ${project.basedir}/../antlr4-wrapper.xml From f834b8744de723ec38a41de0f73990521b79abf4 Mon Sep 17 00:00:00 2001 From: Andreas Dangel Date: Sun, 13 Oct 2024 12:26:31 +0200 Subject: [PATCH 20/24] [doc] Update release notes (#5258) --- docs/pages/release_notes.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/pages/release_notes.md b/docs/pages/release_notes.md index 197b7a4aec..98d61841ae 100644 --- a/docs/pages/release_notes.md +++ b/docs/pages/release_notes.md @@ -49,6 +49,7 @@ The old rule names still work but are deprecated. * [#4965](https://github.com/pmd/pmd/pull/4965): \[java] Rename JUnit rules with overly restrictive names - [Juan Martรญn Sotuyo Dodero](https://github.com/jsotuyod) (@jsotuyod) * [#5225](https://github.com/pmd/pmd/pull/5225): \[java] Fix #5067: CloseResource: False positive for FileSystems.getDefault() - [Lukas Grรคf](https://github.com/lukasgraef) (@lukasgraef) * [#5241](https://github.com/pmd/pmd/pull/5241): Ignore javacc code in coverage report - [Juan Martรญn Sotuyo Dodero](https://github.com/jsotuyod) (@jsotuyod) +* [#5258](https://github.com/pmd/pmd/pull/5258): Ignore generated antlr classes in coverage reports - [Juan Martรญn Sotuyo Dodero](https://github.com/jsotuyod) (@jsotuyod) {% endtocmaker %} From 867b142ee4dfe47115fc5658266be5761c71d315 Mon Sep 17 00:00:00 2001 From: Andreas Dangel Date: Sun, 13 Oct 2024 12:03:17 +0200 Subject: [PATCH 21/24] Use plugin-classpath to simplify javacc-wrapper.xml javacc is on the antrun plugin's classpath. The javacc jar file doesn't need to be copied explicitly. --- javacc-wrapper.xml | 20 +++++--------------- pmd-cpp/pom.xml | 2 +- pmd-java/pom.xml | 2 +- pmd-javascript/pom.xml | 2 +- pmd-jsp/pom.xml | 2 +- pmd-matlab/pom.xml | 2 +- pmd-modelica/pom.xml | 2 +- pmd-objectivec/pom.xml | 2 +- pmd-plsql/pom.xml | 2 +- pmd-python/pom.xml | 2 +- pmd-velocity/pom.xml | 2 +- pmd-visualforce/pom.xml | 2 +- pom.xml | 2 +- 13 files changed, 17 insertions(+), 27 deletions(-) diff --git a/javacc-wrapper.xml b/javacc-wrapper.xml index 05837e96ba..cde14d0ae1 100644 --- a/javacc-wrapper.xml +++ b/javacc-wrapper.xml @@ -25,9 +25,9 @@ It also uses the following maven properties: - javacc.outputDirectory: Directory in which to root the generated package tree - - javacc.jar: JAR of JavaCC in the local maven repository + - plugin-classpath: The classpath of maven-antrun-plugin with javacc.jar dependency + Provided by maven via "" - some properties of project.build - --> @@ -40,8 +40,6 @@ - - @@ -84,7 +82,7 @@ + depends="checkUpToDate,init,jjtree,jjtree-ersatz,javacc,adapt-generated,default-visitor" /> @@ -104,9 +102,6 @@ - - - @@ -117,11 +112,6 @@ - - - - - + classpath="${plugin-classpath}"> @@ -148,7 +138,7 @@ + classpath="${plugin-classpath}"> diff --git a/pmd-cpp/pom.xml b/pmd-cpp/pom.xml index adbfbd8e3c..a42c4f850a 100644 --- a/pmd-cpp/pom.xml +++ b/pmd-cpp/pom.xml @@ -34,10 +34,10 @@ + - diff --git a/pmd-java/pom.xml b/pmd-java/pom.xml index d8131b8d65..2d82829d15 100644 --- a/pmd-java/pom.xml +++ b/pmd-java/pom.xml @@ -105,7 +105,7 @@ - + diff --git a/pmd-javascript/pom.xml b/pmd-javascript/pom.xml index 5e4506efd4..ea4d55938d 100644 --- a/pmd-javascript/pom.xml +++ b/pmd-javascript/pom.xml @@ -47,10 +47,10 @@ + - diff --git a/pmd-jsp/pom.xml b/pmd-jsp/pom.xml index 9f1d3fb223..790d5353f8 100644 --- a/pmd-jsp/pom.xml +++ b/pmd-jsp/pom.xml @@ -40,7 +40,7 @@ - + diff --git a/pmd-matlab/pom.xml b/pmd-matlab/pom.xml index 373fa78a8d..42a69e2497 100644 --- a/pmd-matlab/pom.xml +++ b/pmd-matlab/pom.xml @@ -34,10 +34,10 @@ + - diff --git a/pmd-modelica/pom.xml b/pmd-modelica/pom.xml index 639c224e2c..d551bc25a1 100644 --- a/pmd-modelica/pom.xml +++ b/pmd-modelica/pom.xml @@ -64,7 +64,7 @@ - + diff --git a/pmd-objectivec/pom.xml b/pmd-objectivec/pom.xml index 66818f1a47..197c6dac58 100644 --- a/pmd-objectivec/pom.xml +++ b/pmd-objectivec/pom.xml @@ -34,10 +34,10 @@ + - diff --git a/pmd-plsql/pom.xml b/pmd-plsql/pom.xml index 2e6ad097a4..26a5614255 100644 --- a/pmd-plsql/pom.xml +++ b/pmd-plsql/pom.xml @@ -40,7 +40,7 @@ - + diff --git a/pmd-python/pom.xml b/pmd-python/pom.xml index 85b6643126..30326faeeb 100644 --- a/pmd-python/pom.xml +++ b/pmd-python/pom.xml @@ -34,10 +34,10 @@ + - diff --git a/pmd-velocity/pom.xml b/pmd-velocity/pom.xml index 6cb54b0cd5..905cd6b41c 100644 --- a/pmd-velocity/pom.xml +++ b/pmd-velocity/pom.xml @@ -43,7 +43,7 @@ - + diff --git a/pmd-visualforce/pom.xml b/pmd-visualforce/pom.xml index 7ae874578d..164795a623 100644 --- a/pmd-visualforce/pom.xml +++ b/pmd-visualforce/pom.xml @@ -47,7 +47,7 @@ - + diff --git a/pom.xml b/pom.xml index 67269e26ad..fd7181a348 100644 --- a/pom.xml +++ b/pom.xml @@ -118,7 +118,7 @@ 27 7.2.0 - ${settings.localRepository}/net/java/dev/javacc/javacc/${javacc.version}/javacc-${javacc.version}.jar + ${project.build.directory}/generated-sources/javacc ${project.basedir}/../javacc-wrapper.xml From 5ffb9531917fbc83344c98a9921b3fb340c633de Mon Sep 17 00:00:00 2001 From: Andreas Dangel Date: Fri, 18 Oct 2024 09:40:02 +0200 Subject: [PATCH 22/24] [java] CouplingBetweenObjects: improve violation message When we add the actual count to the message, we can more easily verify that the rule works as expected. --- .../lang/java/rule/design/CouplingBetweenObjectsRule.java | 6 +++--- pmd-java/src/main/resources/category/java/design.xml | 2 +- .../lang/java/rule/design/xml/CouplingBetweenObjects.xml | 6 ++++++ 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/rule/design/CouplingBetweenObjectsRule.java b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/rule/design/CouplingBetweenObjectsRule.java index 527477529c..230e0861c7 100644 --- a/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/rule/design/CouplingBetweenObjectsRule.java +++ b/pmd-java/src/main/java/net/sourceforge/pmd/lang/java/rule/design/CouplingBetweenObjectsRule.java @@ -52,9 +52,9 @@ public class CouplingBetweenObjectsRule extends AbstractJavaRule { public Object visit(ASTCompilationUnit cu, Object data) { super.visit(cu, data); - if (couplingCount > getProperty(THRESHOLD_DESCRIPTOR)) { - asCtx(data).addViolation(cu, - "A value of " + couplingCount + " may denote a high amount of coupling within the class"); + Integer threshold = getProperty(THRESHOLD_DESCRIPTOR); + if (couplingCount > threshold) { + asCtx(data).addViolation(cu, couplingCount, threshold); } couplingCount = 0; diff --git a/pmd-java/src/main/resources/category/java/design.xml b/pmd-java/src/main/resources/category/java/design.xml index 37ca5dc3cd..d235d4239b 100644 --- a/pmd-java/src/main/resources/category/java/design.xml +++ b/pmd-java/src/main/resources/category/java/design.xml @@ -377,7 +377,7 @@ class Foo { diff --git a/pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/rule/design/xml/CouplingBetweenObjects.xml b/pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/rule/design/xml/CouplingBetweenObjects.xml index 28b2e0abaf..49a39332f1 100644 --- a/pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/rule/design/xml/CouplingBetweenObjects.xml +++ b/pmd-java/src/test/resources/net/sourceforge/pmd/lang/java/rule/design/xml/CouplingBetweenObjects.xml @@ -9,6 +9,9 @@ 2 1 1 + + A value of 3 may denote a high amount of coupling within the class (threshold: 2) + 2 1 1 + + A value of 3 may denote a high amount of coupling within the class (threshold: 2) + Date: Fri, 18 Oct 2024 15:36:28 +0200 Subject: [PATCH 23/24] [doc] Update release notes --- docs/pages/release_notes.md | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/docs/pages/release_notes.md b/docs/pages/release_notes.md index c80d7c0cc2..83abd066f1 100644 --- a/docs/pages/release_notes.md +++ b/docs/pages/release_notes.md @@ -17,15 +17,14 @@ This is a {{ site.pmd.release_type }} release. ### ๐ŸŒŸ Rule Changes #### Renamed Rules -Several rules for unit testing have been renamed to better reflect their actual scope. Lots of them were called -after JUnit / JUnit 4, even when they applied to JUnit 5 and / or TestNG. - -* {% rule java/bestpractices/UnitTestAssertionsShouldIncludeMessage %} (Java Best Practices) has been renamed from `JUnitAssertionsShouldIncludeMessage`. -* {% rule java/bestpractices/UnitTestContainsTooManyAsserts %} (Java Best Practices) has been renamed from `JUnitTestContainsTooManyAsserts`. -* {% rule java/bestpractices/UnitTestShouldIncludeAssert %} (Java Best Practices) has been renamed from `JUnitTestsShouldIncludeAssert`. -* {% rule java/bestpractices/UnitTestShouldUseAfterAnnotation %} (Java Best Practices) has been renamed from `JUnit4TestShouldUseAfterAnnotation`. -* {% rule java/bestpractices/UnitTestShouldUseBeforeAnnotation %} (Java Best Practices) has been renamed from `JUnit4TestShouldUseBeforeAnnotation`. -* {% rule java/bestpractices/UnitTestShouldUseTestAnnotation %} (Java Best Practices) has been renamed from `JUnit4TestShouldUseTestAnnotation`. +* Several rules for unit testing have been renamed to better reflect their actual scope. Lots of them were called + after JUnit / JUnit 4, even when they applied to JUnit 5 and / or TestNG. + * {% rule java/bestpractices/UnitTestAssertionsShouldIncludeMessage %} (Java Best Practices) has been renamed from `JUnitAssertionsShouldIncludeMessage`. + * {% rule java/bestpractices/UnitTestContainsTooManyAsserts %} (Java Best Practices) has been renamed from `JUnitTestContainsTooManyAsserts`. + * {% rule java/bestpractices/UnitTestShouldIncludeAssert %} (Java Best Practices) has been renamed from `JUnitTestsShouldIncludeAssert`. + * {% rule java/bestpractices/UnitTestShouldUseAfterAnnotation %} (Java Best Practices) has been renamed from `JUnit4TestShouldUseAfterAnnotation`. + * {% rule java/bestpractices/UnitTestShouldUseBeforeAnnotation %} (Java Best Practices) has been renamed from `JUnit4TestShouldUseBeforeAnnotation`. + * {% rule java/bestpractices/UnitTestShouldUseTestAnnotation %} (Java Best Practices) has been renamed from `JUnit4TestShouldUseTestAnnotation`. The old rule names still work but are deprecated. @@ -49,12 +48,13 @@ The old rule names still work but are deprecated. ### โœจ Merged pull requests -* [#4965](https://github.com/pmd/pmd/pull/4965): \[java] Rename JUnit rules with overly restrictive names - [Juan Martรญn Sotuyo Dodero](https://github.com/jsotuyod) (@jsotuyod) -* [#5225](https://github.com/pmd/pmd/pull/5225): \[java] Fix #5067: CloseResource: False positive for FileSystems.getDefault() - [Lukas Grรคf](https://github.com/lukasgraef) (@lukasgraef) +* [#4965](https://github.com/pmd/pmd/pull/4965): Fix #4532: \[java] Rename JUnit rules with overly restrictive names - [Juan Martรญn Sotuyo Dodero](https://github.com/jsotuyod) (@jsotuyod) +* [#5225](https://github.com/pmd/pmd/pull/5225): Fix #5067: \[java] CloseResource: False positive for FileSystems.getDefault() - [Lukas Grรคf](https://github.com/lukasgraef) (@lukasgraef) * [#5241](https://github.com/pmd/pmd/pull/5241): Ignore javacc code in coverage report - [Juan Martรญn Sotuyo Dodero](https://github.com/jsotuyod) (@jsotuyod) * [#5258](https://github.com/pmd/pmd/pull/5258): Ignore generated antlr classes in coverage reports - [Juan Martรญn Sotuyo Dodero](https://github.com/jsotuyod) (@jsotuyod) -* [#5264](https://github.com/pmd/pmd/pull/5264): \[java] Fix NPE with empty pattern list - [Clรฉment Fournier](https://github.com/oowekyala) (@oowekyala) -* [#5269](https://github.com/pmd/pmd/pull/5269): \[java] Fix #5253: Support Boolean wrapper class for BooleanGetMethodName rule - [Aryant Tripathi](https://github.com/Aryant-Tripathi) (@Aryant-Tripathi) +* [#5264](https://github.com/pmd/pmd/pull/5264): Fix #5261: \[java] Fix NPE with empty pattern list - [Clรฉment Fournier](https://github.com/oowekyala) (@oowekyala) +* [#5269](https://github.com/pmd/pmd/pull/5269): Fix #5253: \[java] Support Boolean wrapper class for BooleanGetMethodName rule - [Aryant Tripathi](https://github.com/Aryant-Tripathi) (@Aryant-Tripathi) +* [#5275](https://github.com/pmd/pmd/pull/5275): Use plugin-classpath to simplify javacc-wrapper.xml - [Andreas Dangel](https://github.com/adangel) (@adangel) {% endtocmaker %} From f0375d61dd8987eada67ae7d584a3e1dcc3b680a Mon Sep 17 00:00:00 2001 From: Andreas Dangel Date: Fri, 18 Oct 2024 15:39:52 +0200 Subject: [PATCH 24/24] [doc] Update release notes (#5278) --- docs/pages/release_notes.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/pages/release_notes.md b/docs/pages/release_notes.md index c80d7c0cc2..a160b83a88 100644 --- a/docs/pages/release_notes.md +++ b/docs/pages/release_notes.md @@ -55,6 +55,7 @@ The old rule names still work but are deprecated. * [#5258](https://github.com/pmd/pmd/pull/5258): Ignore generated antlr classes in coverage reports - [Juan Martรญn Sotuyo Dodero](https://github.com/jsotuyod) (@jsotuyod) * [#5264](https://github.com/pmd/pmd/pull/5264): \[java] Fix NPE with empty pattern list - [Clรฉment Fournier](https://github.com/oowekyala) (@oowekyala) * [#5269](https://github.com/pmd/pmd/pull/5269): \[java] Fix #5253: Support Boolean wrapper class for BooleanGetMethodName rule - [Aryant Tripathi](https://github.com/Aryant-Tripathi) (@Aryant-Tripathi) +* [#5278](https://github.com/pmd/pmd/pull/5278): \[java] CouplingBetweenObjects: improve violation message - [Andreas Dangel](https://github.com/adangel) (@adangel) {% endtocmaker %}