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

Update ktlint.version from 0.39.0 to 0.43.0 #816

Merged
merged 35 commits into from
Nov 8, 2021
Merged
Show file tree
Hide file tree
Changes from 32 commits
Commits
Show all changes
35 commits
Select commit Hold shift + click to select a range
90beb06
Update ktlint.version from 0.39.0 to 0.41.0
Cheshiriks Apr 1, 2021
5b70a0f
Update ktlint.version from 0.39.0 to 0.41.0
Cheshiriks Apr 4, 2021
46e5e2d
Merge branch 'master' into feature/ktlint-0.41.0
Cheshiriks Apr 6, 2021
a847269
Update ktlint.version from 0.39.0 to 0.41.0
Cheshiriks Apr 6, 2021
fc678e9
Merge branch 'master' into feature/ktlint-0.41.0
Cheshiriks Apr 6, 2021
e0ce704
Update ktlint.version from 0.39.0 to 0.41.0
Cheshiriks Apr 7, 2021
6c5e964
Merge remote-tracking branch 'origin/master' into feature/ktlint-0.41.0
petertrr Aug 4, 2021
d5f7f9a
Update ktlint to 0.42.0
petertrr Aug 4, 2021
f83cda5
Update DiktatJavaExecTaskBase.kt
petertrr Aug 4, 2021
a8b69ed
Update DiktatGradlePluginFunctionalTest.kt
petertrr Aug 4, 2021
fbb7c8c
Update ktlint to 0.42.0
petertrr Aug 5, 2021
44e82a1
Update ktlint to 0.42.0
petertrr Aug 5, 2021
10fa28f
Update ktlint to 0.42.0
petertrr Aug 5, 2021
6a5e9da
Update ktlint to 0.43.0-SNAPSHOT
petertrr Aug 9, 2021
a93cd33
Update ktlint to 0.43.0-SNAPSHOT
petertrr Aug 9, 2021
80d96ee
Update ktlint to 0.43.0-SNAPSHOT
petertrr Aug 9, 2021
651bb15
Update ktlint to 0.43.0-SNAPSHOT
petertrr Aug 9, 2021
d0e25da
Update ktlint to 0.43.0-SNAPSHOT
petertrr Aug 9, 2021
b615080
Update ktlint to 0.43.0-SNAPSHOT
petertrr Aug 9, 2021
86e7ee8
Update ktlint to 0.43.0-SNAPSHOT
petertrr Aug 9, 2021
1c8bb38
Try to use ktlint snapshot from sonatype
petertrr Aug 23, 2021
eba28f7
Update build_and_test.yml
petertrr Aug 23, 2021
ce196cf
Merge branch 'master' into feature/ktlint-0.41.0
petertrr Aug 23, 2021
f2bcb1c
Ktlint 0.43.0
petertrr Nov 3, 2021
0392d3b
Merge branch 'master' into feature/ktlint-0.41.0
petertrr Nov 3, 2021
4ea2977
Ktlint 0.43.0
petertrr Nov 3, 2021
08bc71d
Merge remote-tracking branch 'origin/feature/ktlint-0.41.0' into feat…
petertrr Nov 3, 2021
319864a
Ktlint 0.43.0
petertrr Nov 3, 2021
18860c3
Ktlint 0.43.0
petertrr Nov 8, 2021
84004c1
Ktlint 0.43.0
petertrr Nov 8, 2021
3c41d30
Merge remote-tracking branch 'origin/master' into feature/ktlint-0.41.0
petertrr Nov 8, 2021
ca1941f
Ktlint 0.43
petertrr Nov 8, 2021
a4c61b9
Update build_and_test.yml
petertrr Nov 8, 2021
86a7d3e
Merge branch 'master' into feature/ktlint-0.41.0
petertrr Nov 8, 2021
7ef53cf
Ktlint 0.43
petertrr Nov 8, 2021
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
36 changes: 27 additions & 9 deletions .github/workflows/build_and_test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -47,8 +47,7 @@ jobs:
os: [ ubuntu-latest, windows-latest, macos-latest ]

steps:
- uses: actions/checkout@v2.3.4

- uses: actions/checkout@v2
- name: Setup environment variables
run: |
cat pom.xml | grep "<version>.*</version>" | head -1 | awk -F'[><]' '{ printf "DIKTAT_VERSION=%s\n",$3 }' >> $GITHUB_ENV
Expand All @@ -57,7 +56,7 @@ jobs:

- name: Setup environment
run: |
curl -sSLO https://github.com/pinterest/ktlint/releases/download/${{ env.KTLINT_VERSION }}/ktlint && chmod a+x ktlint
curl -o ktlint -sSL https://repo1.maven.org/maven2/com/pinterest/ktlint/${{ env.KTLINT_VERSION }}/ktlint-0.43.0-all.jar && chmod a+x ktlint
shell: bash

- name: Download diktat jar
Expand All @@ -69,22 +68,41 @@ jobs:
continue-on-error: true
if: ${{ runner.os == 'Linux' || runner.os == 'macOS' }}
run: |
./ktlint -R diktat-${{ env.DIKTAT_VERSION }}.jar "examples/maven/src/main/kotlin/Test.kt" &> out
./ktlint -R diktat-${{ env.DIKTAT_VERSION }}.jar --disabled_rules=standard "examples/maven/src/main/kotlin/Test.kt" &> out.txt
shell: bash

- name: Run diKTat from cli on windows
continue-on-error: true
if: runner.os == 'Windows'
run: |
java.exe -jar ktlint -R diktat-${{ env.DIKTAT_VERSION }}.jar "examples/maven/src/main/kotlin/Test.kt" > out.txt 2>&1
java.exe -jar ktlint -R diktat-${{ env.DIKTAT_VERSION }}.jar --disabled_rules=standard "examples/maven/src/main/kotlin/Test.kt" > out.txt 2>&1
shell: cmd

- name: Check output
id: cli-check
run: |
if [ -f out.txt ]; then mv out.txt out; fi
cat out
grep -E "\[VARIABLE_NAME_INCORRECT_FORMAT\]" out
cat out.txt
grep -E "\[VARIABLE_NAME_INCORRECT_FORMAT\]" out.txt
rm out.txt
shell: bash

- name: Run diKTat from cli (absolute paths)
continue-on-error: true
if: ${{ runner.os == 'Linux' || runner.os == 'macOS' }}
run: |
./ktlint -R diktat-${{ env.DIKTAT_VERSION }}.jar --disabled_rules=standard "$PWD/examples/maven/src/main/kotlin/Test.kt" &> out.txt
shell: bash

- name: Run diKTat from cli on windows (absolute paths)
continue-on-error: true
if: runner.os == 'Windows'
run: |
java.exe -jar ktlint -R diktat-${{ env.DIKTAT_VERSION }}.jar --disabled_rules=standard "%cd%/examples/maven/src/main/kotlin/Test.kt" > out.txt 2>&1
shell: cmd

- name: Check output (absolute paths)
run: |
cat out.txt
grep -E "\[VARIABLE_NAME_INCORRECT_FORMAT\]" out.txt
shell: bash

build_and_test:
Expand Down
2 changes: 2 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -106,6 +106,8 @@ To run diktat in **only-check** mode use command `$ mvn diktat:check@diktat`.
To run diktat in **autocorrect** mode use command `$ mvn diktat:fix@diktat`.

## Run with Gradle using diktat-gradle-plugin
Requires a gradle version no lower than 5.3.

This plugin is available since version 0.1.5. You can see how the plugin is configured in our examples: [build.gradle.kts](examples/gradle-kotlin-dsl/build.gradle.kts).
Add this plugin to your `build.gradle.kts`:
```kotlin
Expand Down
15 changes: 11 additions & 4 deletions diktat-gradle-plugin/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import org.gradle.nativeplatform.platform.internal.DefaultNativePlatform.getCurr

plugins {
`java-gradle-plugin`
kotlin("jvm") version "1.4.20"
kotlin("jvm") version "1.5.21"
jacoco
id("pl.droidsonroids.jacoco.testkit") version "1.0.7"
id("org.gradle.test-retry") version "1.2.1"
Expand All @@ -13,13 +13,21 @@ repositories {
flatDir {
// to use snapshot diktat without necessary installing
dirs("../diktat-rules/target")
content {
includeGroup("org.cqfn.diktat")
}
}
mavenLocal() // to use snapshot diktat
mavenCentral()
mavenLocal {
// to use snapshot diktat
content {
includeGroup("org.cqfn.diktat")
}
}
}

// default value is needed for correct gradle loading in IDEA; actual value from maven is used during build
val ktlintVersion = project.properties.getOrDefault("ktlintVersion", "0.39.0") as String
val ktlintVersion = project.properties.getOrDefault("ktlintVersion", "0.43.0") as String
val diktatVersion = project.version.takeIf { it.toString() != Project.DEFAULT_VERSION } ?: "0.5.2"
val junitVersion = project.properties.getOrDefault("junitVersion", "5.7.0") as String
val jacocoVersion = project.properties.getOrDefault("jacocoVersion", "0.8.7") as String
Expand Down Expand Up @@ -65,7 +73,6 @@ tasks.withType<KotlinCompile> {
apiVersion = "1.3"
jvmTarget = "1.8"
useIR = false // for compatibility with older gradle
allWarningsAsErrors = true
}

dependsOn.add(generateVersionsFile)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-6.9-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-7.2-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@ import org.junit.jupiter.api.AfterEach
import org.junit.jupiter.api.Assertions
import org.junit.jupiter.api.BeforeEach
import org.junit.jupiter.api.Test
import org.junit.jupiter.api.condition.DisabledOnOs
import org.junit.jupiter.api.condition.OS
import java.io.File

class DiktatGradlePluginFunctionalTest {
Expand Down Expand Up @@ -143,33 +145,10 @@ class DiktatGradlePluginFunctionalTest {
)
}

@Test
fun `should execute diktatCheck with absolute paths`() {
val path = testProjectDir.root
.resolve("src/**/*.kt")
.absolutePath
.replace("\\", "\\\\")
buildFile.appendText(
"""${System.lineSeparator()}
diktat {
inputs = files("$path")
}
""".trimIndent()
)
val result = runDiktat(testProjectDir, shouldSucceed = false)

val diktatCheckBuildResult = result.task(":$DIKTAT_CHECK_TASK")
requireNotNull(diktatCheckBuildResult)
Assertions.assertEquals(TaskOutcome.FAILED, diktatCheckBuildResult.outcome)
Assertions.assertTrue(
result.output.contains("[FILE_NAME_MATCH_CLASS]")
)
}

@Test
fun `should execute diktatCheck with gradle older than 6_4`() {
val result = runDiktat(testProjectDir, shouldSucceed = false, arguments = listOf("--info")) {
withGradleVersion("5.0")
withGradleVersion("5.3")
}

val diktatCheckBuildResult = result.task(":$DIKTAT_CHECK_TASK")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,10 @@ internal fun runDiktat(testProjectDir: TemporaryFolder,
if (shouldSucceed) build() else buildAndFail()
}
.also {
require(it.isSuccess) { "Running gradle returned exception ${it.exceptionOrNull()}" }
require(it.isSuccess) {
val ex = it.exceptionOrNull()
"Running gradle returned exception $ex, cause: ${ex?.cause}"
}
}
.getOrNull()!!

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import generated.KTLINT_VERSION
import org.gradle.api.Plugin
import org.gradle.api.Project
import org.gradle.api.artifacts.ExternalModuleDependency
import org.gradle.api.attributes.Bundling

/**
* Plugin that configures diktat and registers tasks to run diktat
Expand Down Expand Up @@ -35,6 +36,9 @@ class DiktatGradlePlugin : Plugin<Project> {
"module" to "ktlint-ruleset-standard"
)
)
attributes {
it.attribute(Bundling.BUNDLING_ATTRIBUTE, project.objects.named(Bundling::class.java, Bundling.EXTERNAL))
}
}))
configuration.dependencies.add(project.dependencies.create("org.cqfn.diktat:diktat-rules:$DIKTAT_VERSION"))
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,7 @@ open class DiktatJavaExecTaskBase @Inject constructor(
} else {
main = "com.pinterest.ktlint.Main"
}

// Plain, checkstyle and json reporter are provided out of the box in ktlint
if (diktatExtension.reporterType == "html") {
diktatConfiguration.dependencies.add(project.dependencies.create("com.pinterest.ktlint:ktlint-reporter-html:$KTLINT_VERSION"))
Expand Down Expand Up @@ -159,7 +160,7 @@ open class DiktatJavaExecTaskBase @Inject constructor(
pattern.relativeTo(project.projectDir)
} else {
pattern
}.path
}
add((if (negate) "!" else "") + path)
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -143,7 +143,7 @@ abstract class DiktatBaseMojo : AbstractMojo() {
val text = file.readText()
val params =
KtLint.Params(
fileName = file.name,
fileName = file.relativeTo(mavenProject.basedir).path,
text = text,
ruleSets = ruleSets,
userData = mapOf("file_path" to file.path),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ class DiktatMavenPluginIntegrationTest {

val mavenLog = result.mavenLog.stdout.readText()
Assertions.assertTrue(
mavenLog.contains("Original and formatted content differ, writing to Test.kt...")
mavenLog.contains(Regex("""Original and formatted content differ, writing to [:\w/\\]+Test\.kt\.\.\."""))
)
Assertions.assertTrue(
mavenLog.contains(Regex("There are \\d+ lint errors"))
Expand Down
2 changes: 1 addition & 1 deletion info/gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-6.9-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-7.2-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
2 changes: 1 addition & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@
<kotlin.version>1.5.31</kotlin.version>
<kotlin.compiler.incremental>true</kotlin.compiler.incremental>
<kotlinx.serialization.version>1.3.0</kotlinx.serialization.version>
<ktlint.version>0.39.0</ktlint.version>
<ktlint.version>0.43.0</ktlint.version>
<junit.version>5.8.1</junit.version>
<guava.version>31.0.1-jre</guava.version>
<slf4j.version>1.7.31</slf4j.version>
Expand Down