summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStanislav Erokhin <Stanislav.Erokhin@jetbrains.com>2022-08-22 18:00:15 +0200
committerintellij-monorepo-bot <intellij-monorepo-bot-no-reply@jetbrains.com>2022-09-05 13:46:48 +0000
commiteaee7806fa6e43a13ff62e44a9217aafe2ddbcdd (patch)
treece831f5f854d32493e26fa65d1c1e17da4b74a8f
parentaa85a98ac3de5030cfe7a763d3f867a7ed81d40c (diff)
downloadintellij-kotlin-eaee7806fa6e43a13ff62e44a9217aafe2ddbcdd.tar.gz
[kt-[213|221]-* ONLY] Cherry-pick the minimal version of the KotlinGradlePluginVersions functionality
In `kt-[213|221]-1.7.20` branches we need this commit so CI builds won't fail with "unknown argument kotlinGradlePluginVersion" GitOrigin-RevId: 283566c70aecb761b8fb827c695235cc72aa90b9
-rw-r--r--plugins/kotlin/gradle/gradle-java/tests/test/org/jetbrains/kotlin/idea/codeInsight/gradle/KotlinGradlePluginVersions.kt7
-rw-r--r--plugins/kotlin/util/project-model-updater/resources/model.properties4
-rw-r--r--plugins/kotlin/util/project-model-updater/src/org/jetbrains/tools/model/updater/Main.kt25
-rw-r--r--plugins/kotlin/util/project-model-updater/src/org/jetbrains/tools/model/updater/impl/Args.kt1
4 files changed, 36 insertions, 1 deletions
diff --git a/plugins/kotlin/gradle/gradle-java/tests/test/org/jetbrains/kotlin/idea/codeInsight/gradle/KotlinGradlePluginVersions.kt b/plugins/kotlin/gradle/gradle-java/tests/test/org/jetbrains/kotlin/idea/codeInsight/gradle/KotlinGradlePluginVersions.kt
new file mode 100644
index 000000000000..975cc4781a7a
--- /dev/null
+++ b/plugins/kotlin/gradle/gradle-java/tests/test/org/jetbrains/kotlin/idea/codeInsight/gradle/KotlinGradlePluginVersions.kt
@@ -0,0 +1,7 @@
+// Copyright 2000-2022 JetBrains s.r.o. and contributors. Use of this source code is governed by the Apache 2.0 license.
+package org.jetbrains.kotlin.idea.codeInsight.gradle
+
+// minimal version for cherry-pick to the kt-[213|221]-* branches
+object KotlinGradlePluginVersions {
+ val latest = "1.8.0-dev-446"
+}
diff --git a/plugins/kotlin/util/project-model-updater/resources/model.properties b/plugins/kotlin/util/project-model-updater/resources/model.properties
index a4ec503373ba..9358eddc1695 100644
--- a/plugins/kotlin/util/project-model-updater/resources/model.properties
+++ b/plugins/kotlin/util/project-model-updater/resources/model.properties
@@ -1,2 +1,6 @@
kotlincVersion=1.7.20-Beta-75
+
+#This property is effectively unused in kt-[221|213]-1.7.20 branches and needed
+#for CI -- i.e. CI builds for 1.7.20 won't fail (because of the new argument for the project model updater)
+kotlinGradlePluginVersion=1.8.0-dev-446
kotlincArtifactsMode=MAVEN
diff --git a/plugins/kotlin/util/project-model-updater/src/org/jetbrains/tools/model/updater/Main.kt b/plugins/kotlin/util/project-model-updater/src/org/jetbrains/tools/model/updater/Main.kt
index d705eddb728a..8216205753b5 100644
--- a/plugins/kotlin/util/project-model-updater/src/org/jetbrains/tools/model/updater/Main.kt
+++ b/plugins/kotlin/util/project-model-updater/src/org/jetbrains/tools/model/updater/Main.kt
@@ -14,13 +14,14 @@ fun main(args: Array<String>) {
it.resolve(".idea").isDirectory && !it.resolve("community").isDirectory
}
val monorepoRoot = communityRoot.resolve("..").takeIf { it.resolve(".idea").isDirectory }
+ val parsedArgs = Args(defaultArgs + manualArgs)
for ((root, isCommunity) in listOf(monorepoRoot to false, communityRoot to true)) {
if (root == null) continue
- val parsedArgs = Args(defaultArgs + manualArgs)
generateProjectModelFiles(root.resolve(".idea"), parsedArgs, isCommunity)
patchProjectModelFiles(root.resolve(".idea"), parsedArgs, isCommunity)
}
+ updateLatestGradlePluginVersion(communityRoot, parsedArgs.kotlinGradlePluginVersion)
}
private fun generateProjectModelFiles(dotIdea: File, args: Args, isCommunity: Boolean) {
@@ -88,6 +89,28 @@ private fun patchKotlincLibs(args: Args, isCommunity: Boolean, dotIdea: File) {
}
}
+/**
+ * Updates the `KotlinGradlePluginVersions.kt` source file to contain the latest [kotlinGradlePluginVersion] in the source code.
+ * The `KotlinGradlePluginVersions` source file can't directly read the `model.properties` file directly, since
+ * the project model can be overwritten by the [main] args (see also [GeneratorPreferences.parse])
+ *
+ * kt-[221|213]-* notes:
+ * In these branches still used the KOTLIN_GRADLE_PLUGIN_VERSION property to set up gradle plugin version for testing,
+ * but sometimes in new places the KotlinGradlePluginVersion is used.
+ *
+ */
+private fun updateLatestGradlePluginVersion(communityRoot: File, kotlinGradlePluginVersion: String) {
+ val sourceFile = communityRoot.resolve(
+ "plugins/kotlin/gradle/gradle-java/tests/test/org/jetbrains/kotlin/idea/codeInsight/gradle/KotlinGradlePluginVersions.kt"
+ )
+
+ val updatedFileContent = sourceFile.readText().replace(
+ Regex("""val latest = .*"""), "val latest = \"$kotlinGradlePluginVersion\""
+ )
+
+ sourceFile.writeText(updatedFileContent)
+}
+
private fun Iterable<String>.toMapOfArgs(): Map<String, String> = associate { arg ->
arg.split("=").also {
check(it.size == 2) { "All arguments are expected to be key value pairs in 'key=value' format but got '$arg'" }
diff --git a/plugins/kotlin/util/project-model-updater/src/org/jetbrains/tools/model/updater/impl/Args.kt b/plugins/kotlin/util/project-model-updater/src/org/jetbrains/tools/model/updater/impl/Args.kt
index 080e762ecc63..50fb2ef4fcce 100644
--- a/plugins/kotlin/util/project-model-updater/src/org/jetbrains/tools/model/updater/impl/Args.kt
+++ b/plugins/kotlin/util/project-model-updater/src/org/jetbrains/tools/model/updater/impl/Args.kt
@@ -8,6 +8,7 @@ class Args(args: Map<String, String>) {
private val mutableArgs: MutableMap<String, String> = HashMap(args)
val kotlincVersion: String by mapDelegate(mutableArgs)
+ val kotlinGradlePluginVersion: String by mapDelegate(mutableArgs)
val kotlincArtifactsMode: KotlincArtifactsMode by mapDelegate(mutableArgs, KotlincArtifactsMode::valueOf)
init {