Skip to content

Commit 4c10159

Browse files
Update tested versions (#592)
* update tested versions * adjustments * update test fixture workaround * ktlint * Update plugin/src/integrationTest/kotlin/com/vanniktech/maven/publish/ProjectSpecRunner.kt Co-authored-by: Niklas Baudy <[email protected]> --------- Co-authored-by: Niklas Baudy <[email protected]>
1 parent 0e0df29 commit 4c10159

File tree

6 files changed

+113
-42
lines changed

6 files changed

+113
-42
lines changed

plugin/src/integrationTest/kotlin/com/vanniktech/maven/publish/MavenPublishPluginPlatformTest.kt

Lines changed: 37 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -287,7 +287,15 @@ class MavenPublishPluginPlatformTest {
287287
assertThat(result).artifact("klib").isSigned()
288288
assertThat(result).pom().exists()
289289
assertThat(result).pom().isSigned()
290-
assertThat(result).pom().matchesExpectedPom("klib", kotlinStdlibJs(kotlinVersion))
290+
if (kotlinVersion >= KotlinVersion.KT_1_9_0) {
291+
assertThat(result).pom().matchesExpectedPom(
292+
"klib",
293+
kotlinStdlibJs(kotlinVersion),
294+
kotlinDomApi(kotlinVersion),
295+
)
296+
} else {
297+
assertThat(result).pom().matchesExpectedPom("klib", kotlinStdlibJs(kotlinVersion))
298+
}
291299
assertThat(result).module().exists()
292300
assertThat(result).module().isSigned()
293301
assertThat(result).sourcesJar().exists()
@@ -366,11 +374,20 @@ class MavenPublishPluginPlatformTest {
366374
assertThat(nodejsResult).artifact("klib").isSigned()
367375
assertThat(nodejsResult).pom().exists()
368376
assertThat(nodejsResult).pom().isSigned()
369-
assertThat(nodejsResult).pom().matchesExpectedPom(
370-
"klib",
371-
kotlinStdlibJs(kotlinVersion),
372-
kotlinStdlibCommon(kotlinVersion),
373-
)
377+
if (kotlinVersion >= KotlinVersion.KT_1_9_0) {
378+
assertThat(nodejsResult).pom().matchesExpectedPom(
379+
"klib",
380+
kotlinStdlibJs(kotlinVersion),
381+
kotlinDomApi(kotlinVersion),
382+
kotlinStdlibCommon(kotlinVersion),
383+
)
384+
} else {
385+
assertThat(nodejsResult).pom().matchesExpectedPom(
386+
"klib",
387+
kotlinStdlibJs(kotlinVersion),
388+
kotlinStdlibCommon(kotlinVersion),
389+
)
390+
}
374391
assertThat(nodejsResult).module().exists()
375392
assertThat(nodejsResult).module().isSigned()
376393
assertThat(nodejsResult).sourcesJar().exists()
@@ -452,11 +469,20 @@ class MavenPublishPluginPlatformTest {
452469
assertThat(nodejsResult).artifact("klib").isSigned()
453470
assertThat(nodejsResult).pom().exists()
454471
assertThat(nodejsResult).pom().isSigned()
455-
assertThat(nodejsResult).pom().matchesExpectedPom(
456-
"klib",
457-
kotlinStdlibJs(kotlinVersion),
458-
kotlinStdlibCommon(kotlinVersion),
459-
)
472+
if (kotlinVersion >= KotlinVersion.KT_1_9_0) {
473+
assertThat(nodejsResult).pom().matchesExpectedPom(
474+
"klib",
475+
kotlinStdlibJs(kotlinVersion),
476+
kotlinDomApi(kotlinVersion),
477+
kotlinStdlibCommon(kotlinVersion),
478+
)
479+
} else {
480+
assertThat(nodejsResult).pom().matchesExpectedPom(
481+
"klib",
482+
kotlinStdlibJs(kotlinVersion),
483+
kotlinStdlibCommon(kotlinVersion),
484+
)
485+
}
460486
assertThat(nodejsResult).module().exists()
461487
assertThat(nodejsResult).module().isSigned()
462488
assertThat(nodejsResult).sourcesJar().exists()

plugin/src/integrationTest/kotlin/com/vanniktech/maven/publish/MavenPublishPluginSpecialCaseTest.kt

Lines changed: 28 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -76,11 +76,20 @@ class MavenPublishPluginSpecialCaseTest {
7676
assertThat(nodejsResult).outcome().succeeded()
7777
assertThat(nodejsResult).artifact("klib").exists()
7878
assertThat(nodejsResult).pom().exists()
79-
assertThat(nodejsResult).pom().matchesExpectedPom(
80-
"klib",
81-
kotlinStdlibJs(kotlinVersion),
82-
kotlinStdlibCommon(kotlinVersion),
83-
)
79+
if (kotlinVersion >= KotlinVersion.KT_1_9_0) {
80+
assertThat(nodejsResult).pom().matchesExpectedPom(
81+
"klib",
82+
kotlinStdlibJs(kotlinVersion),
83+
kotlinDomApi(kotlinVersion),
84+
kotlinStdlibCommon(kotlinVersion),
85+
)
86+
} else {
87+
assertThat(nodejsResult).pom().matchesExpectedPom(
88+
"klib",
89+
kotlinStdlibJs(kotlinVersion),
90+
kotlinStdlibCommon(kotlinVersion),
91+
)
92+
}
8493
assertThat(nodejsResult).module().exists()
8594
assertThat(nodejsResult).sourcesJar().exists()
8695
assertThat(nodejsResult).sourcesJar().containsSourceSetFiles("commonMain", "nodeJsMain")
@@ -142,11 +151,20 @@ class MavenPublishPluginSpecialCaseTest {
142151
assertThat(nodejsResult).outcome().succeeded()
143152
assertThat(nodejsResult).artifact("klib").exists()
144153
assertThat(nodejsResult).pom().exists()
145-
assertThat(nodejsResult).pom().matchesExpectedPom(
146-
"klib",
147-
kotlinStdlibJs(kotlinVersion),
148-
kotlinStdlibCommon(kotlinVersion),
149-
)
154+
if (kotlinVersion >= KotlinVersion.KT_1_9_0) {
155+
assertThat(nodejsResult).pom().matchesExpectedPom(
156+
"klib",
157+
kotlinStdlibJs(kotlinVersion),
158+
kotlinDomApi(kotlinVersion),
159+
kotlinStdlibCommon(kotlinVersion),
160+
)
161+
} else {
162+
assertThat(nodejsResult).pom().matchesExpectedPom(
163+
"klib",
164+
kotlinStdlibJs(kotlinVersion),
165+
kotlinStdlibCommon(kotlinVersion),
166+
)
167+
}
150168
assertThat(nodejsResult).module().exists()
151169
assertThat(nodejsResult).sourcesJar().exists()
152170
assertThat(nodejsResult).sourcesJar().containsSourceSetFiles("commonMain", "nodeJsMain")

plugin/src/integrationTest/kotlin/com/vanniktech/maven/publish/Pom.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ data class PomDependency(
1818
fun kotlinStdlibCommon(version: KotlinVersion) = PomDependency("org.jetbrains.kotlin", "kotlin-stdlib-common", version.value, "compile")
1919
fun kotlinStdlibJdk(version: KotlinVersion) = PomDependency("org.jetbrains.kotlin", "kotlin-stdlib-jdk8", version.value, "compile")
2020
fun kotlinStdlibJs(version: KotlinVersion) = PomDependency("org.jetbrains.kotlin", "kotlin-stdlib-js", version.value, "compile")
21+
fun kotlinDomApi(version: KotlinVersion) = PomDependency("org.jetbrains.kotlin", "kotlin-dom-api-compat", version.value, "compile")
2122

2223
fun createPom(
2324
groupId: String,

plugin/src/integrationTest/kotlin/com/vanniktech/maven/publish/ProjectSpecRunner.kt

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -40,12 +40,13 @@ fun ProjectSpec.run(fixtures: Path, temp: Path, options: TestOptions): ProjectRe
4040
}
4141

4242
private fun TestOptions.supportsConfigCaching(plugins: List<PluginSpec>): Boolean {
43-
// TODO: Kotlin Multiplatform plugin has configuration cache issues
44-
// - https://youtrack.jetbrains.com/issue/KT-49933 (meta ticket)
45-
// - https://youtrack.jetbrains.com/issue/KT-43293 (closed but still has issues)
46-
// - https://youtrack.jetbrains.com/issue/KT-55051
47-
if (plugins.any { it.id == kotlinMultiplatformPlugin.id }) {
48-
return false
43+
// Kotlin MPP supports config cache since 1.9.0
44+
val multiplatform = plugins.find { it.id == kotlinMultiplatformPlugin.id }
45+
if (multiplatform != null) {
46+
val parts = multiplatform.version!!.split(".")
47+
if (parts[0].toInt() == 1 && parts[1].toInt() < 9) {
48+
return false
49+
}
4950
}
5051
// TODO https://github.com/Kotlin/dokka/issues/2231
5152
if (plugins.any { it.id == dokkaPlugin.id }) {

plugin/src/integrationTest/kotlin/com/vanniktech/maven/publish/TestOptions.kt

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -33,21 +33,21 @@ enum class AgpVersion(
3333

3434
// stable
3535
AGP_8_0(
36-
value = "8.0.1",
36+
value = "8.0.2",
3737
minGradleVersion = GradleVersion.GRADLE_8_0,
3838
minJdkVersion = JavaVersion.VERSION_17,
3939
),
4040

4141
// beta channel
4242
AGP_8_1(
43-
value = "8.1.0-beta03",
44-
minGradleVersion = GradleVersion.GRADLE_8_0,
43+
value = "8.1.0-beta05",
44+
minGradleVersion = GradleVersion.GRADLE_8_1,
4545
minJdkVersion = JavaVersion.VERSION_17,
4646
),
4747

4848
// canary channel
4949
AGP_8_2(
50-
value = "8.2.0-alpha04",
50+
value = "8.2.0-alpha09",
5151
minGradleVersion = GradleVersion.GRADLE_8_1,
5252
minJdkVersion = JavaVersion.VERSION_17,
5353
),
@@ -58,7 +58,10 @@ enum class KotlinVersion(val value: String) {
5858
KT_1_7_0("1.7.0"),
5959

6060
// stable
61-
KT_1_8_20("1.8.21"),
61+
KT_1_8_20("1.8.22"),
62+
63+
// eap
64+
KT_1_9_0("1.9.0-RC"),
6265
}
6366

6467
enum class GradleVersion(val value: String) {
@@ -67,6 +70,9 @@ enum class GradleVersion(val value: String) {
6770

6871
// stable
6972
GRADLE_8_1("8.1.1"),
73+
74+
// preview
75+
GRADLE_8_2("8.2-rc-2"),
7076
;
7177

7278
companion object {

plugin/src/main/kotlin/com/vanniktech/maven/publish/Platform.kt

Lines changed: 29 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,19 @@ import com.android.build.api.dsl.LibraryExtension
44
import com.vanniktech.maven.publish.tasks.JavadocJar.Companion.javadocJarTask
55
import org.gradle.api.Action
66
import org.gradle.api.Project
7+
import org.gradle.api.attributes.DocsType
8+
import org.gradle.api.internal.project.ProjectInternal
79
import org.gradle.api.plugins.JavaPluginExtension
8-
import org.gradle.api.plugins.jvm.internal.JvmModelingServices
9-
import org.gradle.api.plugins.jvm.internal.JvmVariantBuilder
10+
import org.gradle.api.plugins.internal.JavaConfigurationVariantMapping
11+
import org.gradle.api.plugins.internal.JavaPluginHelper
12+
import org.gradle.api.plugins.internal.JvmPluginsHelper
13+
import org.gradle.api.plugins.jvm.internal.JvmPluginServices
1014
import org.gradle.api.provider.Provider
1115
import org.gradle.api.publish.maven.MavenPublication
1216
import org.gradle.api.tasks.TaskProvider
1317
import org.gradle.configurationcache.extensions.serviceOf
18+
import org.gradle.internal.component.external.model.ProjectDerivedCapability
19+
import org.gradle.jvm.component.internal.DefaultJvmSoftwareComponent
1420
import org.gradle.jvm.tasks.Jar
1521
import org.gradle.util.GradleVersion
1622

@@ -492,18 +498,31 @@ private fun setupTestFixtures(project: Project, sourcesJar: Boolean) {
492498
project.plugins.withId("java-test-fixtures") {
493499
if (sourcesJar) {
494500
// TODO: remove after https://github.com/gradle/gradle/issues/20539 is resolved
495-
val services = project.serviceOf<JvmModelingServices>()
496-
val variant = "testFixtures"
497-
val action = Action<JvmVariantBuilder> {
498-
it.withSourcesJar().published()
499-
}
501+
val testFixtureSourceSetName = "testFixtures"
500502
if (GradleVersion.current() >= GradleVersion.version("8.1")) {
501503
val extension = project.extensions.getByType(JavaPluginExtension::class.java)
502-
val testFixturesSourceSet = extension.sourceSets.maybeCreate(variant)
503-
services.createJvmVariant(variant, testFixturesSourceSet, action)
504+
val testFixturesSourceSet = extension.sourceSets.maybeCreate(testFixtureSourceSetName)
505+
506+
val sourceElements = JvmPluginsHelper.createDocumentationVariantWithArtifact(
507+
testFixturesSourceSet.sourcesElementsConfigurationName,
508+
testFixtureSourceSetName,
509+
DocsType.SOURCES,
510+
listOf(ProjectDerivedCapability(project, "testFixtures")),
511+
testFixturesSourceSet.sourcesJarTaskName,
512+
testFixturesSourceSet.allSource,
513+
project as ProjectInternal,
514+
)
515+
516+
val component = JavaPluginHelper.getJavaComponent(project) as DefaultJvmSoftwareComponent
517+
component.addVariantsFromConfiguration(sourceElements, JavaConfigurationVariantMapping("compile", true))
504518
} else {
519+
val services = project.serviceOf<JvmPluginServices>()
520+
val action = Action<Any> {
521+
it.javaClass.getMethod("withSourcesJar").invoke(it)
522+
it.javaClass.getMethod("published").invoke(it)
523+
}
505524
val method = services.javaClass.getMethod("createJvmVariant", String::class.java, Action::class.java)
506-
method.invoke(services, variant, action)
525+
method.invoke(services, testFixtureSourceSetName, action)
507526
}
508527
}
509528

0 commit comments

Comments
 (0)