From 5df0e2cfcaf255c3b6941562219ad186c116759c Mon Sep 17 00:00:00 2001 From: Michael Plump Date: Mon, 27 Jul 2020 13:28:23 -0400 Subject: [PATCH] chore(formatting): upgrade spotless, ktlint, and google-java-format (#147) There are some minor formatting changes that will need to be applied to each project now. I'll probably kill the bumpdeps action so I can do those manually. --- build.gradle | 4 +-- spinnaker-project-plugin/build.gradle | 2 +- .../codestyle/SpinnakerCodeStylePlugin.groovy | 35 +++++++++++-------- 3 files changed, 23 insertions(+), 18 deletions(-) diff --git a/build.gradle b/build.gradle index 9dfcfe3a..d7bb5dd6 100644 --- a/build.gradle +++ b/build.gradle @@ -1,5 +1,5 @@ plugins { - id "com.diffplug.gradle.spotless" version "3.29.0" apply false + id "com.diffplug.spotless" version "5.1.0" apply false id "com.gradle.plugin-publish" version "0.12.0" apply false } @@ -8,7 +8,7 @@ subprojects { gradlePluginPortal() } - apply plugin: 'com.diffplug.gradle.spotless' + apply plugin: 'com.diffplug.spotless' apply plugin: 'groovy' apply plugin: 'idea' apply plugin: 'java-gradle-plugin' diff --git a/spinnaker-project-plugin/build.gradle b/spinnaker-project-plugin/build.gradle index 0234c4f0..9e46b287 100644 --- a/spinnaker-project-plugin/build.gradle +++ b/spinnaker-project-plugin/build.gradle @@ -1,7 +1,7 @@ dependencies { implementation 'com.github.jk1:gradle-license-report:1.8' implementation 'org.owasp:dependency-check-gradle:5.1.0' - implementation "com.diffplug.spotless:spotless-plugin-gradle:3.27.2" + implementation "com.diffplug.spotless:spotless-plugin-gradle:5.1.0" implementation 'org.eclipse.jgit:org.eclipse.jgit:5.4.0.201906121030-r' implementation 'com.netflix.nebula:gradle-java-cross-compile-plugin:4.1.0' implementation 'com.netflix.nebula:gradle-ospackage-plugin:8.4.1' diff --git a/spinnaker-project-plugin/src/main/groovy/com/netflix/spinnaker/gradle/codestyle/SpinnakerCodeStylePlugin.groovy b/spinnaker-project-plugin/src/main/groovy/com/netflix/spinnaker/gradle/codestyle/SpinnakerCodeStylePlugin.groovy index 12c3ab4c..6cc8cb97 100644 --- a/spinnaker-project-plugin/src/main/groovy/com/netflix/spinnaker/gradle/codestyle/SpinnakerCodeStylePlugin.groovy +++ b/spinnaker-project-plugin/src/main/groovy/com/netflix/spinnaker/gradle/codestyle/SpinnakerCodeStylePlugin.groovy @@ -19,6 +19,7 @@ import com.diffplug.gradle.spotless.FormatExtension import com.diffplug.gradle.spotless.JavaExtension import com.diffplug.gradle.spotless.KotlinExtension import com.diffplug.gradle.spotless.KotlinGradleExtension +import com.diffplug.gradle.spotless.SpotlessExtension import com.diffplug.gradle.spotless.SpotlessPlugin import org.gradle.api.Action import org.gradle.api.Plugin @@ -42,22 +43,22 @@ class SpinnakerCodeStylePlugin implements Plugin { project.rootProject.file(".git/hooks/pre-commit").executable = true project.plugins.apply(SpotlessPlugin) - project.plugins.withType(SpotlessPlugin) { SpotlessPlugin spotless -> + project.spotless { SpotlessExtension spotless -> // Instead of performing `spotlessCheck` on `check`, let's just `spotlessApply` instead, since devs will be // required to make the changes anyway. But don't do this if we're running in a CI build. if (!isRunningUnderContinuousIntegration()) { - spotless.extension.enforceCheck = false + spotless.enforceCheck = false project.getTasks() .matching { it.name == JavaBasePlugin.CHECK_TASK_NAME } .all { it.dependsOn("spotlessApply") } } - spotless.extension.java(new Action() { + spotless.java(new Action() { @Override void execute(JavaExtension javaExtension) { javaExtension.target("src/**/*.java") - javaExtension.googleJavaFormat() + javaExtension.googleJavaFormat("1.8") javaExtension.removeUnusedImports() javaExtension.trimTrailingWhitespace() javaExtension.endWithNewline() @@ -65,33 +66,37 @@ class SpinnakerCodeStylePlugin implements Plugin { }) if (hasKotlin(project)) { - spotless.extension.kotlin(new Action() { + + def ktlintData = [ + indent_size : '2', + continuation_indent_size: '2', + // import ordering now defaults to IntelliJ-style, with java.* + // and kotlin.* imports at the bottom. This is different than + // google-java-format, so let's keep it consistent. + kotlin_imports_layout : 'ascii' + ] + + spotless.kotlin(new Action() { @Override void execute(KotlinExtension kotlinExtension) { - kotlinExtension.ktlint("0.36.0").userData([ - indent_size: '2', - continuation_indent_size: '2' - ]) + kotlinExtension.ktlint("0.37.2").userData(ktlintData) kotlinExtension.trimTrailingWhitespace() kotlinExtension.endWithNewline() } }) - spotless.extension.kotlinGradle(new Action() { + spotless.kotlinGradle(new Action() { @Override void execute(KotlinGradleExtension kotlinGradleExtension) { kotlinGradleExtension.target("*.gradle.kts", "**/*.gradle.kts") - kotlinGradleExtension.ktlint("0.36.0").userData([ - indent_size: '2', - continuation_indent_size: '2' - ]) + kotlinGradleExtension.ktlint("0.37.2").userData(ktlintData) kotlinGradleExtension.trimTrailingWhitespace() kotlinGradleExtension.endWithNewline() } }) } - spotless.extension.format( + spotless.format( 'misc', new Action() { @Override