[Gradle] Disable stdlib-jdk7/8 alignment from 1.9.20

Reason: kotlin-stdlib now publishes Gradle metadata with the required dependency constraints for these artifacts

KT-55297
This commit is contained in:
Ilya Gorbunov
2023-08-05 09:04:27 +02:00
committed by Space Team
parent 0882c645dd
commit aaa068596c
2 changed files with 26 additions and 19 deletions
@@ -15,6 +15,8 @@ import kotlin.io.path.appendText
@DisplayName("Stdlib 1.8+ version alignment")
class StdlibAlignmentIT : KGPBaseTest() {
val constrainedAlignmentVersion = "1.8.0"
@AndroidGradlePluginTests
@DisplayName("stdlib-jdk7, stdlib-jdk8 versions aligned with stdlib:1.8+")
@GradleAndroidTest
@@ -107,7 +109,7 @@ class StdlibAlignmentIT : KGPBaseTest() {
"""
|\--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.5.2
| \--- org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.5.2
| +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.5.30 -> ${buildOptions.kotlinVersion}
| +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.5.30 -> ${constrainedAlignmentVersion}
""".trimMargin().normalizeLineEndings()
)
}
@@ -118,25 +120,30 @@ class StdlibAlignmentIT : KGPBaseTest() {
@DisplayName("alignment in Kotlin DSL")
@GradleTest
fun stdlibJdkAlignmentKotlinDsl(gradleVersion: GradleVersion) {
project("sourceSetsKotlinDsl", gradleVersion) {
buildGradleKts.appendText(
"""
|
|dependencies {
| implementation(kotlin("stdlib"))
| implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.5.2")
|}
""".trimMargin()
)
build("dependencies", "--configuration", "compileClasspath") {
assertOutputContains(
for ((stdlibVersion, alignedVersion) in listOf(
defaultBuildOptions.kotlinVersion to constrainedAlignmentVersion,
"1.9.0" to "1.9.0"
)) {
project("sourceSetsKotlinDsl", gradleVersion) {
buildGradleKts.appendText(
"""
|\--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.5.2
| \--- org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.5.2
| +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.5.30 -> ${buildOptions.kotlinVersion}
""".trimMargin().normalizeLineEndings()
|
|dependencies {
| implementation(kotlin("stdlib", version = "$stdlibVersion"))
| implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.5.2")
|}
""".trimMargin()
)
build("dependencies", "--configuration", "compileClasspath") {
assertOutputContains(
"""
|\--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.5.2
| \--- org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.5.2
| +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.5.30 -> ${alignedVersion}
""".trimMargin().normalizeLineEndings()
)
}
}
}
}
@@ -81,7 +81,7 @@ internal fun ConfigurationContainer.configureStdlibVersionAlignment() = all { co
if (dependency.group == KOTLIN_MODULE_GROUP &&
(dependency.name == KOTLIN_STDLIB_MODULE_NAME || dependency.name == KOTLIN_STDLIB_JDK7_MODULE_NAME) &&
dependency.version != null &&
SemVer.fromGradleRichVersion(dependency.version!!) >= kotlin180Version
SemVer.fromGradleRichVersion(dependency.version!!).let { it >= kotlin180Version && it < kotlin1920Version }
) {
if (configuration.isCanBeResolved) configuration.alignStdlibJvmVariantVersions(dependency)