diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/Kotlin2JsGradlePluginIT.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/Kotlin2JsGradlePluginIT.kt index 5ce94d1866e..b2d35c8563c 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/Kotlin2JsGradlePluginIT.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/Kotlin2JsGradlePluginIT.kt @@ -12,15 +12,10 @@ import org.gradle.testkit.runner.BuildResult import org.gradle.util.GradleVersion import org.jetbrains.kotlin.gradle.targets.js.dsl.Distribution import org.jetbrains.kotlin.gradle.targets.js.ir.KLIB_TYPE -import org.jetbrains.kotlin.gradle.targets.js.npm.LockCopyTask -import org.jetbrains.kotlin.gradle.targets.js.npm.LockCopyTask.Companion.PACKAGE_LOCK_MISMATCH_MESSAGE -import org.jetbrains.kotlin.gradle.targets.js.npm.LockCopyTask.Companion.RESTORE_PACKAGE_LOCK_NAME -import org.jetbrains.kotlin.gradle.targets.js.npm.LockCopyTask.Companion.STORE_PACKAGE_LOCK_NAME import org.jetbrains.kotlin.gradle.targets.js.npm.LockCopyTask.Companion.UPGRADE_PACKAGE_LOCK import org.jetbrains.kotlin.gradle.targets.js.npm.NpmProject import org.jetbrains.kotlin.gradle.targets.js.npm.PackageJson import org.jetbrains.kotlin.gradle.targets.js.npm.fromSrcPackageJson -import org.jetbrains.kotlin.gradle.targets.js.yarn.YarnPlugin import org.jetbrains.kotlin.gradle.testbase.* import org.jetbrains.kotlin.gradle.testbase.TestVersions.Gradle.G_7_6 import org.jetbrains.kotlin.gradle.util.replaceText diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/PackageManagerGradlePluginIT.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/PackageManagerGradlePluginIT.kt index 1acdcd16a00..9f9592d15bc 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/PackageManagerGradlePluginIT.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/PackageManagerGradlePluginIT.kt @@ -43,6 +43,8 @@ class NpmGradlePluginIT : PackageManagerGradlePluginIT() { override val lockFileName: String = LockCopyTask.PACKAGE_LOCK override val setProperty: (String) -> String = { ".set($it)" } + + override val mismatchReportMessage: String = PACKAGE_LOCK_MISMATCH_MESSAGE } class YarnGradlePluginIT : PackageManagerGradlePluginIT() { @@ -69,6 +71,8 @@ class YarnGradlePluginIT : PackageManagerGradlePluginIT() { override val lockFileName: String = LockCopyTask.YARN_LOCK override val setProperty: (String) -> String = { " = $it" } + + override val mismatchReportMessage: String = YarnPlugin.YARN_LOCK_MISMATCH_MESSAGE } @JsGradlePluginTests @@ -98,6 +102,8 @@ abstract class PackageManagerGradlePluginIT : KGPBaseTest() { abstract val setProperty: (String) -> String + abstract val mismatchReportMessage: String + override val defaultBuildOptions: BuildOptions get() = super.defaultBuildOptions.copy( jsOptions = super.defaultBuildOptions.jsOptions?.copy( @@ -247,7 +253,7 @@ abstract class PackageManagerGradlePluginIT : KGPBaseTest() { assertTasksExecuted(":$restoreTaskName") assertTasksExecuted(":$storeTaskName") - assertOutputContains(PACKAGE_LOCK_MISMATCH_MESSAGE) + assertOutputContains(mismatchReportMessage) } build(upgradeTaskName) { @@ -276,7 +282,7 @@ abstract class PackageManagerGradlePluginIT : KGPBaseTest() { assertTasksExecuted(":$restoreTaskName") assertTasksExecuted(":$storeTaskName") - assertOutputDoesNotContain(PACKAGE_LOCK_MISMATCH_MESSAGE) + assertOutputDoesNotContain(mismatchReportMessage) } build(upgradeTaskName) { @@ -312,7 +318,7 @@ abstract class PackageManagerGradlePluginIT : KGPBaseTest() { assertTasksSkipped(":$restoreTaskName") assertTasksExecuted(":$storeTaskName") - assertOutputDoesNotContain(PACKAGE_LOCK_MISMATCH_MESSAGE) + assertOutputDoesNotContain(mismatchReportMessage) } buildGradleKts.modify { diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/npm/LockStoreTask.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/npm/LockStoreTask.kt index b33c705bf43..0ff915dc836 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/npm/LockStoreTask.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/npm/LockStoreTask.kt @@ -8,6 +8,7 @@ package org.jetbrains.kotlin.gradle.targets.js.npm import org.gradle.api.GradleException import org.gradle.api.provider.Property import org.gradle.api.tasks.Input +import org.gradle.api.tasks.Internal import org.gradle.work.DisableCachingByDefault import org.jetbrains.kotlin.gradle.utils.contentEquals @@ -22,6 +23,10 @@ abstract class LockStoreTask : LockCopyTask() { @get:Input abstract val lockFileAutoReplace: Property + @get:Internal + internal open val mismatchMessage: String + get() = PACKAGE_LOCK_MISMATCH_MESSAGE + override fun copy() { val outputFile = outputDirectory.get().asFile.resolve(fileName.get()) @@ -49,9 +54,9 @@ abstract class LockStoreTask : LockCopyTask() { when (lockFileMismatchReport.get()) { LockFileMismatchReport.NONE -> {} LockFileMismatchReport.WARNING -> { - logger.warn(PACKAGE_LOCK_MISMATCH_MESSAGE) + logger.warn(mismatchMessage) } - LockFileMismatchReport.FAIL -> throw GradleException(PACKAGE_LOCK_MISMATCH_MESSAGE) + LockFileMismatchReport.FAIL -> throw GradleException(mismatchMessage) else -> error("Unknown mismatch report kind") } } diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/yarn/LockCopyTask.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/yarn/LockCopyTask.kt index 5ae40df1a02..15276527e16 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/yarn/LockCopyTask.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/yarn/LockCopyTask.kt @@ -11,20 +11,27 @@ import org.gradle.work.DisableCachingByDefault import org.jetbrains.kotlin.gradle.targets.js.npm.LockCopyTask import org.jetbrains.kotlin.gradle.targets.js.npm.LockFileMismatchReport import org.jetbrains.kotlin.gradle.targets.js.npm.LockStoreTask +import org.jetbrains.kotlin.gradle.targets.js.yarn.YarnPlugin.Companion.YARN_LOCK_MISMATCH_MESSAGE @DisableCachingByDefault abstract class YarnLockCopyTask : LockCopyTask() @DisableCachingByDefault abstract class YarnLockStoreTask : LockStoreTask() { - @Internal - val yarnLockMismatchReport: Provider = lockFileMismatchReport.map { it.fromLockFileMismatchReport() } + @get:Internal + val yarnLockMismatchReport: Provider + get() = lockFileMismatchReport.map { it.fromLockFileMismatchReport() } - @Internal - val reportNewYarnLock: Provider = reportNewLockFile + @get:Internal + val reportNewYarnLock: Provider + get() = reportNewLockFile - @Internal - val yarnLockAutoReplace: Provider = lockFileAutoReplace + @get:Internal + val yarnLockAutoReplace: Provider + get() = lockFileAutoReplace + + override val mismatchMessage: String + get() = YARN_LOCK_MISMATCH_MESSAGE } enum class YarnLockMismatchReport { diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/yarn/YarnPlugin.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/yarn/YarnPlugin.kt index 75af8d65620..f2172da6e90 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/yarn/YarnPlugin.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/js/yarn/YarnPlugin.kt @@ -118,5 +118,6 @@ open class YarnPlugin : Plugin { const val STORE_YARN_LOCK_NAME = "kotlinStoreYarnLock" const val RESTORE_YARN_LOCK_NAME = "kotlinRestoreYarnLock" const val UPGRADE_YARN_LOCK = "kotlinUpgradeYarnLock" + const val YARN_LOCK_MISMATCH_MESSAGE = "Lock file was changed. Run the `${UPGRADE_YARN_LOCK}` task to actualize lock file" } }