Skip to content

Commit 62038cf

Browse files
committed
Bump Kotlin to 2.2.0
Bump Kotlin API version from 1.8 to 1.9, as Kotlin 2.2.0 deprecated API version 1.8 and -Werror turns the deprecation warning into a build failure. Remove KotlinStdlibCompatUtils and replace compat wrappers with their stdlib equivalents (lowercase, replaceFirstChar, toBooleanStrictOrNull), which are available at API level 1.9.
1 parent ef38dbb commit 62038cf

12 files changed

Lines changed: 15 additions & 134 deletions

File tree

packages/gradle-plugin/gradle/libs.versions.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ gson = "2.8.9"
44
guava = "31.0.1-jre"
55
javapoet = "1.13.0"
66
junit = "4.13.2"
7-
kotlin = "2.1.20"
7+
kotlin = "2.2.0"
88
assertj = "3.25.1"
99
ktfmt = "0.22.0"
1010

packages/gradle-plugin/react-native-gradle-plugin/build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ kotlin { jvmToolchain(17) }
6464

6565
tasks.withType<KotlinCompile>().configureEach {
6666
compilerOptions {
67-
apiVersion.set(KotlinVersion.KOTLIN_1_8)
67+
apiVersion.set(KotlinVersion.KOTLIN_1_9)
6868
// See comment above on JDK 11 support
6969
jvmTarget.set(JvmTarget.JVM_11)
7070
allWarningsAsErrors.set(

packages/gradle-plugin/react-native-gradle-plugin/src/main/kotlin/com/facebook/react/TaskConfiguration.kt

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@ package com.facebook.react
1010
import com.android.build.api.variant.Variant
1111
import com.facebook.react.tasks.BundleHermesCTask
1212
import com.facebook.react.utils.BackwardCompatUtils.showJSCRemovalMessage
13-
import com.facebook.react.utils.KotlinStdlibCompatUtils.capitalizeCompat
1413
import com.facebook.react.utils.NdkConfiguratorUtils.configureJsEnginePackagingOptions
1514
import com.facebook.react.utils.NdkConfiguratorUtils.configureNewArchPackagingOptions
1615
import com.facebook.react.utils.ProjectUtils.isHermesEnabled
@@ -22,7 +21,7 @@ import org.gradle.api.Project
2221

2322
@Suppress("SpreadOperator", "UnstableApiUsage")
2423
internal fun Project.configureReactTasks(variant: Variant, config: ReactExtension) {
25-
val targetName = variant.name.capitalizeCompat()
24+
val targetName = variant.name.replaceFirstChar { it.titlecase() }
2625
val targetPath = variant.name
2726

2827
val buildDir = layout.buildDirectory.get().asFile

packages/gradle-plugin/react-native-gradle-plugin/src/main/kotlin/com/facebook/react/utils/PathUtils.kt

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@ package com.facebook.react.utils
1111

1212
import com.facebook.react.ReactExtension
1313
import com.facebook.react.model.ModelPackageJson
14-
import com.facebook.react.utils.KotlinStdlibCompatUtils.capitalizeCompat
1514
import com.facebook.react.utils.Os.cliPath
1615
import java.io.File
1716
import org.gradle.api.Project
@@ -200,7 +199,7 @@ internal fun getHermesOSBin(): String {
200199
internal fun projectPathToLibraryName(projectPath: String): String =
201200
projectPath
202201
.split(':', '-', '_', '.')
203-
.joinToString("") { token -> token.capitalizeCompat() }
202+
.joinToString("") { token -> token.replaceFirstChar { it.titlecase() } }
204203
.plus("Spec")
205204

206205
/**

packages/gradle-plugin/react-native-gradle-plugin/src/main/kotlin/com/facebook/react/utils/ProjectUtils.kt

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,6 @@ package com.facebook.react.utils
99

1010
import com.facebook.react.ReactExtension
1111
import com.facebook.react.model.ModelPackageJson
12-
import com.facebook.react.utils.KotlinStdlibCompatUtils.lowercaseCompat
13-
import com.facebook.react.utils.KotlinStdlibCompatUtils.toBooleanStrictOrNullCompat
1412
import com.facebook.react.utils.PropertyUtils.EDGE_TO_EDGE_ENABLED
1513
import com.facebook.react.utils.PropertyUtils.HERMES_ENABLED
1614
import com.facebook.react.utils.PropertyUtils.REACT_NATIVE_ARCHITECTURES
@@ -41,14 +39,14 @@ internal object ProjectUtils {
4139
project
4240
.property(propertyString)
4341
.toString()
44-
.lowercaseCompat()
45-
.toBooleanStrictOrNullCompat() ?: true
42+
.lowercase()
43+
.toBooleanStrictOrNull() ?: true
4644
} else if (project.extensions.extraProperties.has("react")) {
4745
@Suppress("UNCHECKED_CAST")
4846
val reactMap = project.extensions.extraProperties.get("react") as? Map<String, Any?>
4947
when (val enableHermesKey = reactMap?.get("enableHermes")) {
5048
is Boolean -> enableHermesKey
51-
is String -> enableHermesKey.lowercaseCompat().toBooleanStrictOrNullCompat() ?: true
49+
is String -> enableHermesKey.lowercase().toBooleanStrictOrNull() ?: true
5250
else -> HERMES_FALLBACK
5351
}
5452
} else {

packages/gradle-plugin/settings-plugin/build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ kotlin { jvmToolchain(17) }
5454

5555
tasks.withType<KotlinCompile>().configureEach {
5656
compilerOptions {
57-
apiVersion.set(KotlinVersion.KOTLIN_1_8)
57+
apiVersion.set(KotlinVersion.KOTLIN_1_9)
5858
// See comment above on JDK 11 support
5959
jvmTarget.set(JvmTarget.JVM_11)
6060
allWarningsAsErrors.set(

packages/gradle-plugin/shared-testutil/build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ kotlin { jvmToolchain(17) }
2727

2828
tasks.withType<KotlinCompile>().configureEach {
2929
compilerOptions {
30-
apiVersion.set(KotlinVersion.KOTLIN_1_8)
30+
apiVersion.set(KotlinVersion.KOTLIN_1_9)
3131
// See comment above on JDK 11 support
3232
jvmTarget.set(JvmTarget.JVM_11)
3333
allWarningsAsErrors.set(

packages/gradle-plugin/shared/build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ kotlin { jvmToolchain(17) }
3333

3434
tasks.withType<KotlinCompile>().configureEach {
3535
compilerOptions {
36-
apiVersion.set(KotlinVersion.KOTLIN_1_8)
36+
apiVersion.set(KotlinVersion.KOTLIN_1_9)
3737
// See comment above on JDK 11 support
3838
jvmTarget.set(JvmTarget.JVM_11)
3939
allWarningsAsErrors.set(

packages/gradle-plugin/shared/src/main/kotlin/com/facebook/react/utils/KotlinStdlibCompatUtils.kt

Lines changed: 0 additions & 32 deletions
This file was deleted.

packages/gradle-plugin/shared/src/main/kotlin/com/facebook/react/utils/Os.kt

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,19 +7,18 @@
77

88
package com.facebook.react.utils
99

10-
import com.facebook.react.utils.KotlinStdlibCompatUtils.lowercaseCompat
1110
import java.io.File
1211

1312
object Os {
1413

1514
fun isWindows(): Boolean =
16-
System.getProperty("os.name")?.lowercaseCompat()?.contains("windows") ?: false
15+
System.getProperty("os.name")?.lowercase()?.contains("windows") ?: false
1716

18-
fun isMac(): Boolean = System.getProperty("os.name")?.lowercaseCompat()?.contains("mac") ?: false
17+
fun isMac(): Boolean = System.getProperty("os.name")?.lowercase()?.contains("mac") ?: false
1918

2019
fun isLinuxAmd64(): Boolean {
21-
val osNameMatch = System.getProperty("os.name")?.lowercaseCompat()?.contains("linux") ?: false
22-
val archMatch = System.getProperty("os.arch")?.lowercaseCompat()?.contains("amd64") ?: false
20+
val osNameMatch = System.getProperty("os.name")?.lowercase()?.contains("linux") ?: false
21+
val archMatch = System.getProperty("os.arch")?.lowercase()?.contains("amd64") ?: false
2322
return osNameMatch && archMatch
2423
}
2524

0 commit comments

Comments
 (0)