Skip to content

Commit 59626b9

Browse files
test against newest kotlin, gradle, ktlint, and AGP versions
drop testing for gradle 7.4 and 7.5 because they cause our tests with kotlin 2.x to fail, but the plugin will still work in those gradle versions if kotlin 1.x is being used Update CHANGELOG.md Co-authored-by: Jonathan Leitschuh <jonathan.leitschuh@gmail.com>
1 parent d10a065 commit 59626b9

File tree

10 files changed

+34
-30
lines changed

10 files changed

+34
-30
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/).
88
## [Unreleased]
99

1010
- Update Gradle wrapper and Gradle versions for testing. [#819](https://github.com/JLLeitschuh/ktlint-gradle/pull/819)
11+
- Test against newest kotlin, gradle, ktlint, and AGP versions [#833](https://github.com/JLLeitschuh/ktlint-gradle/pull/833). Drop testing for gradle 7.4 and 7.5 because they cause our tests with kotlin 2.x to fail, but the plugin will still work in those gradle versions if kotlin 1.x is being used
1112

1213
## [12.1.2] - 2024-11-25
1314

plugin/src/main/kotlin/org/jlleitschuh/gradle/ktlint/KtlintBasePlugin.kt

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@ open class KtlintBasePlugin : Plugin<Project> {
2424

2525
override fun apply(target: Project) {
2626
target.checkMinimalSupportedGradleVersion()
27-
2827
val filterTargetApplier: FilterApplier = {
2928
target.tasks.withType(BaseKtLintCheckTask::class.java).configureEach(it)
3029
}
@@ -54,6 +53,10 @@ open class KtlintBasePlugin : Plugin<Project> {
5453
)
5554
}
5655

56+
companion object {
57+
const val LOWEST_SUPPORTED_GRADLE_VERSION = "7.4.2"
58+
}
59+
5760
/**
5861
* @deprecated Now that we declare gradle API metadata, this code should not be needed.
5962
* Ee need to check which version of gradle introduced gradle API metadata checking
@@ -66,8 +69,4 @@ open class KtlintBasePlugin : Plugin<Project> {
6669
)
6770
}
6871
}
69-
70-
companion object {
71-
const val LOWEST_SUPPORTED_GRADLE_VERSION = "7.4.2"
72-
}
7372
}

plugin/src/test/kotlin/org/jlleitschuh/gradle/ktlint/KotlinJsPluginTests.kt

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -18,13 +18,13 @@ import java.io.File
1818
*/
1919
@GradleTestVersions
2020
class KotlinJsPluginTests : AbstractPluginTest() {
21-
private fun jsProjectSetup(gradleVersion: GradleVersion): (File) -> Unit = {
22-
projectSetup("js", gradleVersion).invoke(it)
21+
private fun jsProjectSetup(): (File) -> Unit = {
22+
projectSetup("js").invoke(it)
2323

2424
//language=Groovy
2525
it.resolve("build.gradle").appendText(
2626
"""
27-
27+
2828
kotlin {
2929
js(IR) {
3030
nodejs()
@@ -37,7 +37,7 @@ class KotlinJsPluginTests : AbstractPluginTest() {
3737
@DisplayName("Should add check tasks")
3838
@CommonTest
3939
fun addCheckTasks(gradleVersion: GradleVersion) {
40-
project(gradleVersion, projectSetup = jsProjectSetup(gradleVersion)) {
40+
project(gradleVersion, projectSetup = jsProjectSetup()) {
4141
build("-m", CHECK_PARENT_TASK_NAME) {
4242
val ktlintTasks = output.lineSequence().toList()
4343

@@ -59,7 +59,7 @@ class KotlinJsPluginTests : AbstractPluginTest() {
5959
@DisplayName("Should add format tasks")
6060
@CommonTest
6161
fun addFormatTasks(gradleVersion: GradleVersion) {
62-
project(gradleVersion, projectSetup = jsProjectSetup(gradleVersion)) {
62+
project(gradleVersion, projectSetup = jsProjectSetup()) {
6363
build("-m", FORMAT_PARENT_TASK_NAME) {
6464
val ktlintTasks = output.lineSequence().toList()
6565

@@ -81,7 +81,7 @@ class KotlinJsPluginTests : AbstractPluginTest() {
8181
@DisplayName("Should fail check task on un-formatted sources")
8282
@CommonTest
8383
fun failOnStyleViolation(gradleVersion: GradleVersion) {
84-
project(gradleVersion, projectSetup = jsProjectSetup(gradleVersion)) {
84+
project(gradleVersion, projectSetup = jsProjectSetup()) {
8585
withFailingSources()
8686

8787
buildAndFail(CHECK_PARENT_TASK_NAME) {

plugin/src/test/kotlin/org/jlleitschuh/gradle/ktlint/KotlinMultiplatformPluginTests.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,8 @@ import java.io.File
1616
*/
1717
@GradleTestVersions
1818
class KotlinMultiplatformPluginTests : AbstractPluginTest() {
19-
private fun multiplatformProjectSetup(gradleVersion: GradleVersion): (File) -> Unit = {
20-
projectSetup("multiplatform", gradleVersion).invoke(it)
19+
private fun multiplatformProjectSetup(): (File) -> Unit = {
20+
projectSetup("multiplatform").invoke(it)
2121

2222
//language=Groovy
2323
it.resolve("build.gradle").appendText(
@@ -36,7 +36,7 @@ class KotlinMultiplatformPluginTests : AbstractPluginTest() {
3636
@DisplayName("Should add check on all sources")
3737
@CommonTest
3838
fun addCheckTasks(gradleVersion: GradleVersion) {
39-
project(gradleVersion, projectSetup = multiplatformProjectSetup(gradleVersion)) {
39+
project(gradleVersion, projectSetup = multiplatformProjectSetup()) {
4040
build("-m", CHECK_PARENT_TASK_NAME) {
4141
val ktlintTasks = output.lineSequence().toList()
4242

plugin/src/test/kotlin/org/jlleitschuh/gradle/ktlint/KtLintSupportedVersionsTest.kt

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -180,7 +180,10 @@ class KtLintSupportedVersionsTest : AbstractPluginTest() {
180180
"0.50.0",
181181
"1.0.1",
182182
"1.1.1",
183-
"1.2.1"
183+
"1.2.1",
184+
"1.3.1",
185+
"1.4.1",
186+
"1.5.0"
184187
)
185188

186189
override fun provideArguments(

plugin/src/test/kotlin/org/jlleitschuh/gradle/ktlint/KtlintPluginTest.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -713,7 +713,7 @@ class KtlintPluginTest : AbstractPluginTest() {
713713
@CommonTest
714714
fun checkAdditionalSources(gradleVersion: GradleVersion) {
715715
fun projectSetup(file: File) {
716-
projectSetup("jvm", gradleVersion).invoke(file)
716+
projectSetup("jvm").invoke(file)
717717

718718
//language=Groovy
719719
file.resolve("build.gradle").appendText(

plugin/src/test/kotlin/org/jlleitschuh/gradle/ktlint/UnsupportedGradleTest.kt

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import org.gradle.util.GradleVersion
55
import org.jlleitschuh.gradle.ktlint.testdsl.buildAndFail
66
import org.jlleitschuh.gradle.ktlint.testdsl.getMajorJavaVersion
77
import org.jlleitschuh.gradle.ktlint.testdsl.project
8+
import org.jlleitschuh.gradle.ktlint.testdsl.projectSetup
89
import org.junit.jupiter.api.Assumptions
910
import org.junit.jupiter.api.DisplayName
1011
import org.junit.jupiter.api.Test
@@ -24,7 +25,10 @@ class UnsupportedGradleTest : AbstractPluginTest() {
2425
*/
2526
Assumptions.assumeFalse(getMajorJavaVersion() >= 21)
2627

27-
project(GradleVersion.version("7.4.1")) {
28+
project(
29+
gradleVersion = GradleVersion.version("7.4.1"),
30+
projectSetup = projectSetup("jvm", "1.9.22")
31+
) {
2832
buildAndFail(CHECK_PARENT_TASK_NAME) {
2933
assertThat(output).contains(
3034
"Current version of plugin supports minimal Gradle version: " +

plugin/src/test/kotlin/org/jlleitschuh/gradle/ktlint/android/KtlintPluginAndroidTest.kt

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -80,9 +80,8 @@ class KtlintPluginAndroidTest : AbstractPluginTest() {
8080
"0.47.1",
8181
maximumJava = 17
8282
),
83-
GRADLE_7_5_AGP_7_4(
84-
// AGP 7.4 requires Gradle 7.5
85-
GradleVersion.version("7.5"),
83+
AGP_7_4(
84+
GradleVersion.version(TestVersions.minSupportedGradleVersion),
8685
"7.4.2",
8786
// AGP 4.1 requires kotlin 1.5.20
8887
"1.5.20",

plugin/src/test/kotlin/org/jlleitschuh/gradle/ktlint/testdsl/TestAnnotations.kt

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package org.jlleitschuh.gradle.ktlint.testdsl
22

33
import org.gradle.util.GradleVersion
4-
import org.jlleitschuh.gradle.ktlint.KtlintBasePlugin
54
import org.junit.jupiter.api.extension.ExtensionContext
65
import org.junit.jupiter.params.provider.Arguments
76
import org.junit.jupiter.params.provider.ArgumentsProvider
@@ -11,13 +10,13 @@ import kotlin.streams.asStream
1110

1211
@Suppress("ConstPropertyName")
1312
object TestVersions {
14-
const val minSupportedGradleVersion = KtlintBasePlugin.LOWEST_SUPPORTED_GRADLE_VERSION
15-
const val maxSupportedGradleVersion = "8.11.1"
13+
const val minSupportedGradleVersion = "7.6.3" // lowest version for testing
14+
const val maxSupportedGradleVersion = "8.12.1"
1615
val pluginVersion = File("VERSION_CURRENT.txt").readText().trim()
1716
const val minSupportedKotlinPluginVersion = "1.4.32"
18-
const val maxSupportedKotlinPluginVersion = "1.9.23"
17+
const val maxSupportedKotlinPluginVersion = "2.1.10"
1918
const val minAgpVersion = "4.1.0"
20-
const val maxAgpVersion = "8.4.0"
19+
const val maxAgpVersion = "8.8.0"
2120
}
2221

2322
@Target(AnnotationTarget.FUNCTION, AnnotationTarget.CLASS)

plugin/src/test/kotlin/org/jlleitschuh/gradle/ktlint/testdsl/TestDsl.kt

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import java.io.File
1010
fun AbstractPluginTest.project(
1111
gradleVersion: GradleVersion,
1212
projectPath: File = projectRoot,
13-
projectSetup: (File) -> Unit = defaultProjectSetup(gradleVersion),
13+
projectSetup: (File) -> Unit = defaultProjectSetup(),
1414
test: TestProject.() -> Unit = {}
1515
): TestProject {
1616
projectSetup(projectPath)
@@ -152,14 +152,13 @@ fun TestProject.buildAndFail(
152152
.run { assertions() }
153153
}
154154

155-
fun defaultProjectSetup(gradleVersion: GradleVersion): (File) -> Unit =
156-
projectSetup("jvm", gradleVersion)
155+
fun defaultProjectSetup(): (File) -> Unit =
156+
projectSetup("jvm")
157157

158158
fun projectSetup(
159159
kotlinPluginType: String,
160-
gradleVersion: GradleVersion
160+
kotlinPluginVersion: String = maxSupportedKotlinPluginVersion
161161
): (File) -> Unit = {
162-
val kotlinPluginVersion = maxSupportedKotlinPluginVersion
163162
//language=Groovy
164163
it.resolve("build.gradle").writeText(
165164
"""

0 commit comments

Comments
 (0)