From 3fed7e5e53e28dbe8b6b5793e8f6915109713aaa Mon Sep 17 00:00:00 2001 From: Marc Philipp Date: Tue, 30 Sep 2025 14:34:31 +0200 Subject: [PATCH 1/3] Rename japicmp plugin to backward-compatibility --- .../build.gradle.kts | 0 .../junitbuild.backward-compatibility.gradle.kts} | 15 ++++++++------- .../BackwardCompatibilityChecksExtension.kt} | 4 ++-- .../japicmp/AcceptedViolationSuppressor.kt | 2 +- .../japicmp/AcceptedViolationsPostProcessRule.kt | 2 +- .../japicmp/BreakingSuperClassChangeRule.kt | 2 +- .../compatibility}/japicmp/InternalApiFilter.kt | 2 +- .../japicmp/JApiCompatibilityExtensions.kt | 2 +- .../japicmp/SourceIncompatibleRule.kt | 2 +- gradle/plugins/common/build.gradle.kts | 2 +- ...itbuild.java-aggregator-conventions.gradle.kts | 4 ++-- ...junitbuild.java-library-conventions.gradle.kts | 2 +- gradle/plugins/settings.gradle.kts | 2 +- .../junit-platform-console-standalone.gradle.kts | 2 +- 14 files changed, 22 insertions(+), 21 deletions(-) rename gradle/plugins/{japicmp => backward-compatibility}/build.gradle.kts (100%) rename gradle/plugins/{japicmp/src/main/kotlin/junitbuild.japicmp.gradle.kts => backward-compatibility/src/main/kotlin/junitbuild.backward-compatibility.gradle.kts} (84%) rename gradle/plugins/{japicmp/src/main/kotlin/junitbuild/japicmp/JApiCmpExtension.kt => backward-compatibility/src/main/kotlin/junitbuild/compatibility/BackwardCompatibilityChecksExtension.kt} (74%) rename gradle/plugins/{japicmp/src/main/kotlin/junitbuild => backward-compatibility/src/main/kotlin/junitbuild/compatibility}/japicmp/AcceptedViolationSuppressor.kt (97%) rename gradle/plugins/{japicmp/src/main/kotlin/junitbuild => backward-compatibility/src/main/kotlin/junitbuild/compatibility}/japicmp/AcceptedViolationsPostProcessRule.kt (96%) rename gradle/plugins/{japicmp/src/main/kotlin/junitbuild => backward-compatibility/src/main/kotlin/junitbuild/compatibility}/japicmp/BreakingSuperClassChangeRule.kt (93%) rename gradle/plugins/{japicmp/src/main/kotlin/junitbuild => backward-compatibility/src/main/kotlin/junitbuild/compatibility}/japicmp/InternalApiFilter.kt (97%) rename gradle/plugins/{japicmp/src/main/kotlin/junitbuild => backward-compatibility/src/main/kotlin/junitbuild/compatibility}/japicmp/JApiCompatibilityExtensions.kt (96%) rename gradle/plugins/{japicmp/src/main/kotlin/junitbuild => backward-compatibility/src/main/kotlin/junitbuild/compatibility}/japicmp/SourceIncompatibleRule.kt (91%) diff --git a/gradle/plugins/japicmp/build.gradle.kts b/gradle/plugins/backward-compatibility/build.gradle.kts similarity index 100% rename from gradle/plugins/japicmp/build.gradle.kts rename to gradle/plugins/backward-compatibility/build.gradle.kts diff --git a/gradle/plugins/japicmp/src/main/kotlin/junitbuild.japicmp.gradle.kts b/gradle/plugins/backward-compatibility/src/main/kotlin/junitbuild.backward-compatibility.gradle.kts similarity index 84% rename from gradle/plugins/japicmp/src/main/kotlin/junitbuild.japicmp.gradle.kts rename to gradle/plugins/backward-compatibility/src/main/kotlin/junitbuild.backward-compatibility.gradle.kts index fc6c3c5ab08d..1e6147711f75 100644 --- a/gradle/plugins/japicmp/src/main/kotlin/junitbuild.japicmp.gradle.kts +++ b/gradle/plugins/backward-compatibility/src/main/kotlin/junitbuild.backward-compatibility.gradle.kts @@ -1,11 +1,12 @@ + import de.undercouch.gradle.tasks.download.Download +import junitbuild.compatibility.BackwardCompatibilityChecksExtension +import junitbuild.compatibility.japicmp.AcceptedViolationSuppressor +import junitbuild.compatibility.japicmp.AcceptedViolationsPostProcessRule +import junitbuild.compatibility.japicmp.BreakingSuperClassChangeRule +import junitbuild.compatibility.japicmp.InternalApiFilter +import junitbuild.compatibility.japicmp.SourceIncompatibleRule import junitbuild.extensions.javaModuleName -import junitbuild.japicmp.AcceptedViolationSuppressor -import junitbuild.japicmp.AcceptedViolationsPostProcessRule -import junitbuild.japicmp.BreakingSuperClassChangeRule -import junitbuild.japicmp.InternalApiFilter -import junitbuild.japicmp.JApiCmpExtension -import junitbuild.japicmp.SourceIncompatibleRule import me.champeau.gradle.japicmp.JapicmpTask import me.champeau.gradle.japicmp.report.stdrules.BinaryIncompatibleRule import me.champeau.gradle.japicmp.report.stdrules.RecordSeenMembersSetup @@ -16,7 +17,7 @@ plugins { id("me.champeau.gradle.japicmp") } -val extension = extensions.create("japicmp").apply { +val extension = extensions.create("backwardCompatibilityChecks").apply { enabled.convention(true) acceptedIncompatibilities.apply { val acceptedBreakingChangesFile = rootProject.layout.projectDirectory.file("gradle/config/japicmp/accepted-breaking-changes.txt") diff --git a/gradle/plugins/japicmp/src/main/kotlin/junitbuild/japicmp/JApiCmpExtension.kt b/gradle/plugins/backward-compatibility/src/main/kotlin/junitbuild/compatibility/BackwardCompatibilityChecksExtension.kt similarity index 74% rename from gradle/plugins/japicmp/src/main/kotlin/junitbuild/japicmp/JApiCmpExtension.kt rename to gradle/plugins/backward-compatibility/src/main/kotlin/junitbuild/compatibility/BackwardCompatibilityChecksExtension.kt index 549af27e9dd5..a75512920b05 100644 --- a/gradle/plugins/japicmp/src/main/kotlin/junitbuild/japicmp/JApiCmpExtension.kt +++ b/gradle/plugins/backward-compatibility/src/main/kotlin/junitbuild/compatibility/BackwardCompatibilityChecksExtension.kt @@ -1,9 +1,9 @@ -package junitbuild.japicmp +package junitbuild.compatibility import org.gradle.api.provider.Property import org.gradle.api.provider.SetProperty -abstract class JApiCmpExtension { +abstract class BackwardCompatibilityChecksExtension { abstract val enabled: Property diff --git a/gradle/plugins/japicmp/src/main/kotlin/junitbuild/japicmp/AcceptedViolationSuppressor.kt b/gradle/plugins/backward-compatibility/src/main/kotlin/junitbuild/compatibility/japicmp/AcceptedViolationSuppressor.kt similarity index 97% rename from gradle/plugins/japicmp/src/main/kotlin/junitbuild/japicmp/AcceptedViolationSuppressor.kt rename to gradle/plugins/backward-compatibility/src/main/kotlin/junitbuild/compatibility/japicmp/AcceptedViolationSuppressor.kt index e6e26b4b7f25..ca19ecfda2f6 100644 --- a/gradle/plugins/japicmp/src/main/kotlin/junitbuild/japicmp/AcceptedViolationSuppressor.kt +++ b/gradle/plugins/backward-compatibility/src/main/kotlin/junitbuild/compatibility/japicmp/AcceptedViolationSuppressor.kt @@ -1,4 +1,4 @@ -package junitbuild.japicmp +package junitbuild.compatibility.japicmp import japicmp.model.JApiBehavior import japicmp.model.JApiClass diff --git a/gradle/plugins/japicmp/src/main/kotlin/junitbuild/japicmp/AcceptedViolationsPostProcessRule.kt b/gradle/plugins/backward-compatibility/src/main/kotlin/junitbuild/compatibility/japicmp/AcceptedViolationsPostProcessRule.kt similarity index 96% rename from gradle/plugins/japicmp/src/main/kotlin/junitbuild/japicmp/AcceptedViolationsPostProcessRule.kt rename to gradle/plugins/backward-compatibility/src/main/kotlin/junitbuild/compatibility/japicmp/AcceptedViolationsPostProcessRule.kt index b1a34552305c..6f44e04dc69e 100644 --- a/gradle/plugins/japicmp/src/main/kotlin/junitbuild/japicmp/AcceptedViolationsPostProcessRule.kt +++ b/gradle/plugins/backward-compatibility/src/main/kotlin/junitbuild/compatibility/japicmp/AcceptedViolationsPostProcessRule.kt @@ -1,4 +1,4 @@ -package junitbuild.japicmp +package junitbuild.compatibility.japicmp import me.champeau.gradle.japicmp.report.PostProcessViolationsRule import me.champeau.gradle.japicmp.report.Severity.accepted diff --git a/gradle/plugins/japicmp/src/main/kotlin/junitbuild/japicmp/BreakingSuperClassChangeRule.kt b/gradle/plugins/backward-compatibility/src/main/kotlin/junitbuild/compatibility/japicmp/BreakingSuperClassChangeRule.kt similarity index 93% rename from gradle/plugins/japicmp/src/main/kotlin/junitbuild/japicmp/BreakingSuperClassChangeRule.kt rename to gradle/plugins/backward-compatibility/src/main/kotlin/junitbuild/compatibility/japicmp/BreakingSuperClassChangeRule.kt index 5500c7d5f49a..02fd1d77d24a 100644 --- a/gradle/plugins/japicmp/src/main/kotlin/junitbuild/japicmp/BreakingSuperClassChangeRule.kt +++ b/gradle/plugins/backward-compatibility/src/main/kotlin/junitbuild/compatibility/japicmp/BreakingSuperClassChangeRule.kt @@ -1,4 +1,4 @@ -package junitbuild.japicmp +package junitbuild.compatibility.japicmp import japicmp.model.JApiCompatibility import me.champeau.gradle.japicmp.report.Violation diff --git a/gradle/plugins/japicmp/src/main/kotlin/junitbuild/japicmp/InternalApiFilter.kt b/gradle/plugins/backward-compatibility/src/main/kotlin/junitbuild/compatibility/japicmp/InternalApiFilter.kt similarity index 97% rename from gradle/plugins/japicmp/src/main/kotlin/junitbuild/japicmp/InternalApiFilter.kt rename to gradle/plugins/backward-compatibility/src/main/kotlin/junitbuild/compatibility/japicmp/InternalApiFilter.kt index 81ca985e020a..63866548f390 100644 --- a/gradle/plugins/japicmp/src/main/kotlin/junitbuild/japicmp/InternalApiFilter.kt +++ b/gradle/plugins/backward-compatibility/src/main/kotlin/junitbuild/compatibility/japicmp/InternalApiFilter.kt @@ -1,4 +1,4 @@ -package junitbuild.japicmp +package junitbuild.compatibility.japicmp import japicmp.filter.BehaviorFilter import japicmp.filter.ClassFilter diff --git a/gradle/plugins/japicmp/src/main/kotlin/junitbuild/japicmp/JApiCompatibilityExtensions.kt b/gradle/plugins/backward-compatibility/src/main/kotlin/junitbuild/compatibility/japicmp/JApiCompatibilityExtensions.kt similarity index 96% rename from gradle/plugins/japicmp/src/main/kotlin/junitbuild/japicmp/JApiCompatibilityExtensions.kt rename to gradle/plugins/backward-compatibility/src/main/kotlin/junitbuild/compatibility/japicmp/JApiCompatibilityExtensions.kt index 5b65a4c2a41d..b72ae2d68380 100644 --- a/gradle/plugins/japicmp/src/main/kotlin/junitbuild/japicmp/JApiCompatibilityExtensions.kt +++ b/gradle/plugins/backward-compatibility/src/main/kotlin/junitbuild/compatibility/japicmp/JApiCompatibilityExtensions.kt @@ -1,4 +1,4 @@ -package junitbuild.japicmp +package junitbuild.compatibility.japicmp import japicmp.model.JApiBehavior import japicmp.model.JApiClass diff --git a/gradle/plugins/japicmp/src/main/kotlin/junitbuild/japicmp/SourceIncompatibleRule.kt b/gradle/plugins/backward-compatibility/src/main/kotlin/junitbuild/compatibility/japicmp/SourceIncompatibleRule.kt similarity index 91% rename from gradle/plugins/japicmp/src/main/kotlin/junitbuild/japicmp/SourceIncompatibleRule.kt rename to gradle/plugins/backward-compatibility/src/main/kotlin/junitbuild/compatibility/japicmp/SourceIncompatibleRule.kt index 472dd13c0fcd..b9f537f65f92 100644 --- a/gradle/plugins/japicmp/src/main/kotlin/junitbuild/japicmp/SourceIncompatibleRule.kt +++ b/gradle/plugins/backward-compatibility/src/main/kotlin/junitbuild/compatibility/japicmp/SourceIncompatibleRule.kt @@ -1,4 +1,4 @@ -package junitbuild.japicmp +package junitbuild.compatibility.japicmp import japicmp.model.JApiCompatibility import me.champeau.gradle.japicmp.report.Violation diff --git a/gradle/plugins/common/build.gradle.kts b/gradle/plugins/common/build.gradle.kts index 012d3c713210..3e05ad907f86 100644 --- a/gradle/plugins/common/build.gradle.kts +++ b/gradle/plugins/common/build.gradle.kts @@ -8,7 +8,7 @@ plugins { dependencies { implementation("junitbuild.base:dsl-extensions") implementation(projects.buildParameters) - implementation(projects.japicmp) + implementation(projects.backwardCompatibility) implementation(libs.plugins.kotlin.markerCoordinates) implementation(libs.plugins.bnd.markerCoordinates) implementation(libs.plugins.commonCustomUserData.markerCoordinates) diff --git a/gradle/plugins/common/src/main/kotlin/junitbuild.java-aggregator-conventions.gradle.kts b/gradle/plugins/common/src/main/kotlin/junitbuild.java-aggregator-conventions.gradle.kts index 44609ddc18e3..a038740f8534 100644 --- a/gradle/plugins/common/src/main/kotlin/junitbuild.java-aggregator-conventions.gradle.kts +++ b/gradle/plugins/common/src/main/kotlin/junitbuild.java-aggregator-conventions.gradle.kts @@ -1,4 +1,4 @@ -import junitbuild.japicmp.JApiCmpExtension +import junitbuild.compatibility.BackwardCompatibilityChecksExtension plugins { id("junitbuild.java-library-conventions") @@ -10,6 +10,6 @@ tasks.javadoc { enabled = false } -the().apply { +the().apply { enabled = false // already checked by individual projects } diff --git a/gradle/plugins/common/src/main/kotlin/junitbuild.java-library-conventions.gradle.kts b/gradle/plugins/common/src/main/kotlin/junitbuild.java-library-conventions.gradle.kts index 8a5804688a05..4aa988406271 100644 --- a/gradle/plugins/common/src/main/kotlin/junitbuild.java-library-conventions.gradle.kts +++ b/gradle/plugins/common/src/main/kotlin/junitbuild.java-library-conventions.gradle.kts @@ -26,7 +26,7 @@ if (project in mavenizedProjects) { apply(plugin = "junitbuild.javadoc-conventions") apply(plugin = "junitbuild.publishing-conventions") apply(plugin = "junitbuild.osgi-conventions") - apply(plugin = "junitbuild.japicmp") + apply(plugin = "junitbuild.backward-compatibility") java { withSourcesJar() diff --git a/gradle/plugins/settings.gradle.kts b/gradle/plugins/settings.gradle.kts index a5ee476e33e4..b2ae97139041 100644 --- a/gradle/plugins/settings.gradle.kts +++ b/gradle/plugins/settings.gradle.kts @@ -19,10 +19,10 @@ dependencyResolutionManagement { rootProject.name = "plugins" +include("backward-compatibility") include("build-parameters") include("common") include("code-generator") -include("japicmp") include("publishing") enableFeaturePreview("TYPESAFE_PROJECT_ACCESSORS") diff --git a/junit-platform-console-standalone/junit-platform-console-standalone.gradle.kts b/junit-platform-console-standalone/junit-platform-console-standalone.gradle.kts index 35e02cc643bd..a5f7634b87d4 100644 --- a/junit-platform-console-standalone/junit-platform-console-standalone.gradle.kts +++ b/junit-platform-console-standalone/junit-platform-console-standalone.gradle.kts @@ -22,7 +22,7 @@ dependencies { osgiVerification(libs.openTestReporting.tooling.spi) } -japicmp { +backwardCompatibilityChecks { enabled = false // already checked by individual projects } From 6171d4e772144b8585e380aa64844daf1bf8261d Mon Sep 17 00:00:00 2001 From: Marc Philipp Date: Tue, 30 Sep 2025 15:19:17 +0200 Subject: [PATCH 2/3] Add roseau tasks for comparison with japicmp --- gradle/libs.versions.toml | 1 + ...nitbuild.backward-compatibility.gradle.kts | 62 ++++++++++++++++++- .../junit-jupiter-api.gradle.kts | 2 +- 3 files changed, 62 insertions(+), 3 deletions(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 6eff2444b39e..5a2664ebcf5a 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -64,6 +64,7 @@ openTestReporting-events = { module = "org.opentest4j.reporting:open-test-report openTestReporting-tooling-core = { module = "org.opentest4j.reporting:open-test-reporting-tooling-core", version.ref = "openTestReporting" } openTestReporting-tooling-spi = { module = "org.opentest4j.reporting:open-test-reporting-tooling-spi", version.ref = "openTestReporting" } picocli = { module = "info.picocli:picocli", version = "4.7.7" } +roseau-cli = { module = "io.github.alien-tools:roseau-cli", version = "0.3.0" } slf4j-julBinding = { module = "org.slf4j:slf4j-jdk14", version = "2.0.17" } snapshotTests-junit5 = { module = "de.skuzzle.test:snapshot-tests-junit5", version.ref = "snapshotTests" } snapshotTests-xml = { module = "de.skuzzle.test:snapshot-tests-xml", version.ref = "snapshotTests" } diff --git a/gradle/plugins/backward-compatibility/src/main/kotlin/junitbuild.backward-compatibility.gradle.kts b/gradle/plugins/backward-compatibility/src/main/kotlin/junitbuild.backward-compatibility.gradle.kts index 1e6147711f75..93a6a936d92d 100644 --- a/gradle/plugins/backward-compatibility/src/main/kotlin/junitbuild.backward-compatibility.gradle.kts +++ b/gradle/plugins/backward-compatibility/src/main/kotlin/junitbuild.backward-compatibility.gradle.kts @@ -6,6 +6,7 @@ import junitbuild.compatibility.japicmp.AcceptedViolationsPostProcessRule import junitbuild.compatibility.japicmp.BreakingSuperClassChangeRule import junitbuild.compatibility.japicmp.InternalApiFilter import junitbuild.compatibility.japicmp.SourceIncompatibleRule +import junitbuild.extensions.dependencyFromLibs import junitbuild.extensions.javaModuleName import me.champeau.gradle.japicmp.JapicmpTask import me.champeau.gradle.japicmp.report.stdrules.BinaryIncompatibleRule @@ -17,6 +18,14 @@ plugins { id("me.champeau.gradle.japicmp") } +val roseauDependencies = configurations.dependencyScope("roseau") +val roseauClasspath = configurations.resolvable("roseauClasspath") { + extendsFrom(roseauDependencies.get()) +} +dependencies { + roseauDependencies(dependencyFromLibs("roseau-cli")) +} + val extension = extensions.create("backwardCompatibilityChecks").apply { enabled.convention(true) acceptedIncompatibilities.apply { @@ -49,11 +58,56 @@ val downloadPreviousReleaseJar by tasks.registering(Download::class) { outputs.cacheIf { true } } -val checkBackwardCompatibility by tasks.registering(JapicmpTask::class) { +val roseauCsvFile = layout.buildDirectory.file("reports/roseau/breaking-changes.csv") + +val roseau by tasks.registering(JavaExec::class) { if (gradle.startParameter.isOffline) { enabled = false } onlyIf { extension.enabled.get() } + + mainClass = "io.github.alien.roseau.cli.RoseauCLI" + classpath = files(roseauClasspath) + + inputs.files(configurations.compileClasspath) + .withNormalizer(CompileClasspathNormalizer::class) + .withPropertyName("apiClasspath") + + val v1Jar = downloadPreviousReleaseJar.map { it.outputFiles.single() } + inputs.file(v1Jar) + .withNormalizer(CompileClasspathNormalizer::class) + .withPropertyName("v1") + + val v2Jar = tasks.jar.flatMap { it.archiveFile }.map { it.asFile } + inputs.file(v2Jar) + .withNormalizer(CompileClasspathNormalizer::class) + .withPropertyName("v2") + + outputs.file(roseauCsvFile) + .withPropertyName("report") + + argumentProviders.add(CommandLineArgumentProvider { + listOf( + "--classpath", configurations.compileClasspath.get().asPath, + "--v1", v1Jar.get().absolutePath, + "--v2", v2Jar.get().absolutePath, + "--diff", + "--report", roseauCsvFile.get().asFile.absolutePath, + ) + }) + + doFirst { + roseauCsvFile.get().asFile.parentFile.mkdirs() + } +} + +val japicmp by tasks.registering(JapicmpTask::class) { + if (gradle.startParameter.isOffline) { + enabled = false + } + onlyIf { extension.enabled.get() } + shouldRunAfter(roseau) + oldClasspath.from(downloadPreviousReleaseJar.map { it.outputFiles }) newClasspath.from(tasks.jar) onlyModified = true @@ -73,6 +127,10 @@ val checkBackwardCompatibility by tasks.registering(JapicmpTask::class) { } } +val checkBackwardCompatibility by tasks.registering { + dependsOn(roseau, japicmp) +} + tasks.check { dependsOn(checkBackwardCompatibility) } @@ -81,7 +139,7 @@ afterEvaluate { val params = mapOf( "acceptedIncompatibilities" to extension.acceptedIncompatibilities.get().joinToString(",") ) - checkBackwardCompatibility { + japicmp { richReport { addViolationTransformer(AcceptedViolationSuppressor::class.java, params) addPostProcessRule(AcceptedViolationsPostProcessRule::class.java, params) diff --git a/junit-jupiter-api/junit-jupiter-api.gradle.kts b/junit-jupiter-api/junit-jupiter-api.gradle.kts index bd409930f19b..2c9ff8decb62 100644 --- a/junit-jupiter-api/junit-jupiter-api.gradle.kts +++ b/junit-jupiter-api/junit-jupiter-api.gradle.kts @@ -36,7 +36,7 @@ tasks { compileJava { options.compilerArgs.add("-Xlint:-module") // due to qualified exports } - checkBackwardCompatibility { + japicmp { classExcludes.addAll($$"*.AssertionsKt$assert*", $$"*.AssertionsKt$evaluate*") } jar { From d4b72a393c8b4e992fd7ab26d13433efbe2d5c38 Mon Sep 17 00:00:00 2001 From: Marc Philipp Date: Sun, 12 Oct 2025 14:19:43 +0200 Subject: [PATCH 3/3] Disable roseau on Windows for now --- gradle/libs.versions.toml | 1 + .../main/kotlin/junitbuild.backward-compatibility.gradle.kts | 2 ++ 2 files changed, 3 insertions(+) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 5a2664ebcf5a..7cafc4ce6146 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -64,6 +64,7 @@ openTestReporting-events = { module = "org.opentest4j.reporting:open-test-report openTestReporting-tooling-core = { module = "org.opentest4j.reporting:open-test-reporting-tooling-core", version.ref = "openTestReporting" } openTestReporting-tooling-spi = { module = "org.opentest4j.reporting:open-test-reporting-tooling-spi", version.ref = "openTestReporting" } picocli = { module = "info.picocli:picocli", version = "4.7.7" } +# Enable `roseau` tasks on Windows when upgrading (in junitbuild.backward-compatibility.gradle.kts) roseau-cli = { module = "io.github.alien-tools:roseau-cli", version = "0.3.0" } slf4j-julBinding = { module = "org.slf4j:slf4j-jdk14", version = "2.0.17" } snapshotTests-junit5 = { module = "de.skuzzle.test:snapshot-tests-junit5", version.ref = "snapshotTests" } diff --git a/gradle/plugins/backward-compatibility/src/main/kotlin/junitbuild.backward-compatibility.gradle.kts b/gradle/plugins/backward-compatibility/src/main/kotlin/junitbuild.backward-compatibility.gradle.kts index 93a6a936d92d..29eb8bc2961d 100644 --- a/gradle/plugins/backward-compatibility/src/main/kotlin/junitbuild.backward-compatibility.gradle.kts +++ b/gradle/plugins/backward-compatibility/src/main/kotlin/junitbuild.backward-compatibility.gradle.kts @@ -11,6 +11,7 @@ import junitbuild.extensions.javaModuleName import me.champeau.gradle.japicmp.JapicmpTask import me.champeau.gradle.japicmp.report.stdrules.BinaryIncompatibleRule import me.champeau.gradle.japicmp.report.stdrules.RecordSeenMembersSetup +import org.gradle.internal.os.OperatingSystem plugins { java @@ -65,6 +66,7 @@ val roseau by tasks.registering(JavaExec::class) { enabled = false } onlyIf { extension.enabled.get() } + onlyIf("https://github.com/alien-tools/roseau/issues/90") { !OperatingSystem.current().isWindows } mainClass = "io.github.alien.roseau.cli.RoseauCLI" classpath = files(roseauClasspath)