Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

KAFKA-10787: Add import ordering checkstyle rule and configure an automatic formatter #16097

Merged
merged 29 commits into from
Jun 2, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
227a957
update hide file
gongxuanzhang May 27, 2024
7596c2d
add Project.xml
gongxuanzhang May 27, 2024
7e56b6a
Merge branch 'apache:trunk' into import-order
gongxuanzhang May 27, 2024
00ad230
upload Project.xml
gongxuanzhang May 28, 2024
2d6b289
update suppressions.xml
gongxuanzhang May 28, 2024
77f46e1
Merge branch 'apache:trunk' into import-order
gongxuanzhang May 28, 2024
e9db586
Delete .idea directory
gongxuanzhang May 29, 2024
f2ef540
Merge branch 'apache:trunk' into import-order
gongxuanzhang May 29, 2024
37cc473
revert gitignore
gongxuanzhang May 29, 2024
40aabc0
Merge branch 'apache:trunk' into import-order
gongxuanzhang May 30, 2024
2960a41
add spotless
gongxuanzhang May 30, 2024
7cde3f8
update build.gradle
gongxuanzhang May 30, 2024
8e171fb
Merge branch 'apache:trunk' into import-order
gongxuanzhang May 30, 2024
82de188
revert blank
gongxuanzhang May 31, 2024
5623a3b
change the build.gradle
gongxuanzhang May 31, 2024
3cb353d
update README
gongxuanzhang May 31, 2024
1ee4e62
Merge branch 'apache:trunk' into import-order
gongxuanzhang May 31, 2024
076b467
Merge branch 'apache:trunk' into import-order
gongxuanzhang Jun 1, 2024
c3abfc2
update checkstyle
gongxuanzhang Jun 1, 2024
462625d
update readme
gongxuanzhang Jun 1, 2024
6f25e4d
update build.gradle
gongxuanzhang Jun 1, 2024
7d99f05
update build.gradle
gongxuanzhang Jun 1, 2024
d956ba3
update checkstyle.xml
gongxuanzhang Jun 2, 2024
9f316a9
update build.gradle
gongxuanzhang Jun 2, 2024
bfa5077
Merge branch 'apache:trunk' into import-order
gongxuanzhang Jun 2, 2024
5e08003
revert build.gradle
gongxuanzhang Jun 2, 2024
3702bb1
lowercase
gongxuanzhang Jun 2, 2024
54277f3
Update README.md
gongxuanzhang Jun 2, 2024
89999a8
Merge branch 'apache:trunk' into import-order
gongxuanzhang Jun 2, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 6 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -227,11 +227,16 @@ There are two code quality analysis tools that we regularly run, spotbugs and ch
Checkstyle enforces a consistent coding style in Kafka.
You can run checkstyle using:

./gradlew checkstyleMain checkstyleTest
./gradlew checkstyleMain checkstyleTest spotlessCheck

The checkstyle warnings will be found in `reports/checkstyle/reports/main.html` and `reports/checkstyle/reports/test.html` files in the
subproject build directories. They are also printed to the console. The build will fail if Checkstyle fails.

#### Spotless ####
The import order is a part of static check. please call `spotlessApply` to optimize the imports of Java codes before filing pull request :

./gradlew spotlessApply

#### Spotbugs ####
Spotbugs uses static analysis to look for bugs in the code.
You can run spotbugs using:
Expand Down
17 changes: 16 additions & 1 deletion build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,9 @@ plugins {
// Updating the shadow plugin version to 8.1.1 causes issue with signing and publishing the shadowed
// artifacts - see https://github.com/johnrengelman/shadow/issues/901
id 'com.github.johnrengelman.shadow' version '8.1.0' apply false
id 'com.diffplug.spotless' version '6.14.0' apply false // 6.14.1 and newer require Java 11 at compile time, so we can't upgrade until AK 4.0
// the minimum required JRE of 6.14.0+ is 11
// refer:https://github.com/diffplug/spotless/tree/main/plugin-gradle#requirements
id 'com.diffplug.spotless' version "6.13.0" apply false
}

ext {
Expand Down Expand Up @@ -198,6 +200,9 @@ def determineCommitId() {
}
}

def spotlessApplyModules = ['']


apply from: file('wrapper.gradle')

if (repo != null) {
Expand Down Expand Up @@ -793,6 +798,16 @@ subprojects {
skipProjects = [ ":jmh-benchmarks", ":trogdor" ]
skipConfigurations = [ "zinc" ]
}

if (project.name in spotlessApplyModules) {
apply plugin: 'com.diffplug.spotless'
spotless {
java {
importOrder('kafka', 'org.apache.kafka', 'com', 'net', 'org', 'java', 'javax', '', '\\#')
removeUnusedImports()
}
}
}
}

gradle.taskGraph.whenReady { taskGraph ->
Expand Down
2 changes: 2 additions & 0 deletions checkstyle/checkstyle.xml
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,8 @@
<property name="file" value="${config_loc}/${importControlFile}"/>
</module>

<!-- don't define any import order here! Import order check/format is addressed by spotless.-->

<!-- whitespace -->
<module name="GenericWhitespace"/>
<module name="NoWhitespaceBefore"/>
Expand Down