Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
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
9 changes: 5 additions & 4 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
.gradle
build
out
.idea
.gradle/
.kotlin/
build/
out/
.idea/
*.iml
*~
*.hprof
Expand Down
8 changes: 4 additions & 4 deletions build-logic/convention/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
// Copyright (c) 2024. Tony Robalik.
// SPDX-License-Identifier: Apache-2.0
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
import org.jetbrains.kotlin.gradle.dsl.JvmTarget

plugins {
id("java-gradle-plugin")
Expand All @@ -13,9 +13,9 @@ java {
}
}

tasks.withType<KotlinCompile>().configureEach {
kotlinOptions {
jvmTarget = libs.versions.java.get()
kotlin {
compilerOptions {
jvmTarget = libs.versions.java.map(JvmTarget::fromTarget).get()
freeCompilerArgs = listOf("-Xinline-classes", "-opt-in=kotlin.RequiresOptIn", "-Xsam-conversions=class")
}
}
Expand Down
7 changes: 7 additions & 0 deletions build-logic/settings.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,13 @@ pluginManagement {
gradlePluginPortal()
mavenCentral()
}
plugins {
id("org.gradle.toolchains.foojay-resolver-convention") version "0.8.0"
}
}

plugins {
id("org.gradle.toolchains.foojay-resolver-convention")
}

dependencyResolutionManagement {
Expand Down
2 changes: 1 addition & 1 deletion gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.10.2-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-8.11-rc-3-bin.zip
networkTimeout=10000
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME
Expand Down
3 changes: 2 additions & 1 deletion settings.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -31,12 +31,13 @@ pluginManagement {
id("com.github.johnrengelman.shadow") version "8.1.1"
id("com.gradle.enterprise") version "3.15.1"
id("com.gradle.plugin-publish") version "1.1.0"
id("org.gradle.toolchains.foojay-resolver-convention") version "0.8.0"
}
}

plugins {
id("com.gradle.enterprise")
id("org.gradle.toolchains.foojay-resolver-convention") version("0.8.0")
id("org.gradle.toolchains.foojay-resolver-convention")
}

// Yes, this is also in pluginManagement above. This is required for normal dependencies.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,9 @@ abstract class AbstractFunctionalSpec extends Specification {
protected static final GRADLE_8_4 = GradleVersion.version('8.4')
protected static final GRADLE_8_9 = GradleVersion.version('8.9')
protected static final GRADLE_8_10 = GradleVersion.version('8.10.2')
protected static final GRADLE_8_11 = GradleVersion.version('8.11-rc-1')
protected static final GRADLE_8_11 = GradleVersion.version('8.11-rc-3')

protected static final GRADLE_LATEST = GRADLE_8_10
protected static final GRADLE_LATEST = GRADLE_8_11

// For faster CI times, we only test min + max. Testing all would be preferable, but we don't have till the heat death
// of the universe.
Expand Down
6 changes: 6 additions & 0 deletions src/main/kotlin/com/autonomousapps/internal/GradleVersions.kt
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ internal object GradleVersions {
private val gradle83: GradleVersion = GradleVersion.version("8.3")
private val gradle85: GradleVersion = GradleVersion.version("8.5")
private val gradle88: GradleVersion = GradleVersion.version("8.8")
private val gradle811: GradleVersion = GradleVersion.version("8.11")

/** Minimum supported version of Gradle. */
@JvmField val minGradleVersion: GradleVersion = gradle74
Expand All @@ -29,4 +30,9 @@ internal object GradleVersions {
* lifecycle callbacks.
*/
val isAtLeastGradle88: Boolean = current >= gradle88

/**
* Using [GradleVersion.baseVersion] to make sure it works with `8.11-rc-N` versions too.
*/
val isAtLeastGradle811: Boolean = current.baseVersion >= gradle811
}
Original file line number Diff line number Diff line change
Expand Up @@ -200,7 +200,11 @@ internal fun Dependency.toCoordinates(): Coordinates? {
*/
internal fun Dependency.toIdentifier(): Pair<ModuleInfo, GradleVariantIdentification>? = when (this) {
is ProjectDependency -> {
val identifier = dependencyProject.path
val identifier =
if (GradleVersions.isAtLeastGradle811)
this.path
else
@Suppress("DEPRECATION") dependencyProject.path
Pair(ModuleInfo(identifier.intern()), targetGradleVariantIdentification())
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
package com.autonomousapps

import com.autonomousapps.internal.capitalizeSafely
import com.autonomousapps.internal.pathCompat
import org.gradle.api.Project
import org.gradle.api.Task
import org.gradle.api.artifacts.ProjectDependency
Expand Down Expand Up @@ -208,8 +209,8 @@ public abstract class GradleTestKitSupportExtension(private val project: Project
return configurations.findByName(classpath)?.allDependencies
?.filterIsInstance<ProjectDependency>()
// filter out self-dependency
?.filterNot { it.dependencyProject == project }
?.map { "${it.dependencyProject.path}:$taskName" }
?.filterNot { it.pathCompat == project.path }
?.map { "${it.pathCompat}:$taskName" }
}

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@
// SPDX-License-Identifier: Apache-2.0
package com.autonomousapps.internal

import org.gradle.api.artifacts.ProjectDependency
import org.gradle.util.GradleVersion
import java.util.Locale

internal fun String.capitalizeSafely(locale: Locale = Locale.ROOT): String {
Expand All @@ -21,3 +23,14 @@ internal fun String.capitalizeSafely(locale: Locale = Locale.ROOT): String {
}
return this
}

internal val isAtLeastGradle811: Boolean
get() = GradleVersion.current().baseVersion >= GradleVersion.version("8.11")

internal val ProjectDependency.pathCompat: String
get() =
if (isAtLeastGradle811) {
this.path
} else {
@Suppress("DEPRECATION") this.dependencyProject.path
}
2 changes: 2 additions & 0 deletions testkit/settings.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -28,11 +28,13 @@ pluginManagement {
id("com.gradle.enterprise") version "3.15.1"
id("com.gradle.plugin-publish") version "1.1.0"
id("org.jetbrains.dokka") version "1.9.20"
id("org.gradle.toolchains.foojay-resolver-convention") version "0.8.0"
}
}

plugins {
id("com.gradle.enterprise")
id("org.gradle.toolchains.foojay-resolver-convention")
}

dependencyResolutionManagement {
Expand Down