Skip to content

Commit d1c833f

Browse files
committed
Project configuration and compilation fixes:
- apiDump - Fix compilation for older Kotlin compiler plugins - Fix configs for tests and yarn.lock - Disable KSP plugin for local tests - Added 100000 requests test (checks for possible memory leaks)
1 parent 1dd1706 commit d1c833f

File tree

14 files changed

+589
-452
lines changed

14 files changed

+589
-452
lines changed

build.gradle.kts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -48,10 +48,10 @@ allprojects {
4848

4949
println("kotlinx.rpc project version: $version, Kotlin version: $kotlinVersion")
5050

51-
// If the prefix of the kPRC version is not Kotlin gradle plugin version - you have a problem :)
52-
// Probably some dependency brings kotlin with higher version.
53-
// To mitigate so, please refer to `gradle/kotlin-version-lookup.json`
54-
// and it's usage in `gradle-conventions-settings/src/main/kotlin/settings-conventions.settings.gradle.kts`
51+
// If the prefix of the kPRC version is not Kotlin gradle plugin version you have a problem :)
52+
// Probably some dependency brings kotlin with the later version.
53+
// To mitigate so, refer to `versions-root/kotlin-version-lookup.json`
54+
// and its usage in `gradle-conventions-settings/src/main/kotlin/settings-conventions.settings.gradle.kts`
5555
val kotlinGPVersion = getKotlinPluginVersion().kotlinVersionParsed()
5656
if (kotlinVersion != kotlinGPVersion) {
5757
error("KGP version mismatch. Project version: $kotlinVersion, KGP version: $kotlinGPVersion")

compiler-plugin/compiler-plugin-cli/src/main/v_1/kotlinx/rpc/codegen/RPCCompilerPlugin.kt

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
package kotlinx.rpc.codegen
66

7+
import kotlinx.rpc.codegen.extension.RPCIrExtension
78
import org.jetbrains.kotlin.backend.common.extensions.IrGenerationExtension
89
import org.jetbrains.kotlin.compiler.plugin.CliOption
910
import org.jetbrains.kotlin.compiler.plugin.CommandLineProcessor
@@ -27,8 +28,6 @@ class RPCCompilerPlugin : CompilerPluginRegistrar() {
2728
override val supportsK2: Boolean = false
2829

2930
override fun ExtensionStorage.registerExtensions(configuration: CompilerConfiguration) {
30-
val irExtension = RPCIrPlugin.provideExtension(configuration)
31-
32-
IrGenerationExtension.registerExtension(irExtension)
31+
IrGenerationExtension.registerExtension(RPCIrExtension(configuration))
3332
}
3433
}

compiler-plugin/compiler-plugin-cli/src/main/v_1_7/kotlinx/rpc/codegen/RPCCompilerPlugin.kt

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
package kotlinx.rpc.codegen
66

7+
import kotlinx.rpc.codegen.extension.RPCIrExtension
78
import org.jetbrains.kotlin.backend.common.extensions.IrGenerationExtension
89
import org.jetbrains.kotlin.com.intellij.mock.MockProject
910
import org.jetbrains.kotlin.compiler.plugin.CliOption
@@ -23,8 +24,6 @@ class RPCCompilerPlugin : ComponentRegistrar {
2324
}
2425

2526
override fun registerProjectComponents(project: MockProject, configuration: CompilerConfiguration) {
26-
val irExtension = RPCIrPlugin.provideExtension(configuration)
27-
28-
IrGenerationExtension.registerExtension(project, irExtension)
27+
IrGenerationExtension.registerExtension(project, RPCIrExtension(configuration))
2928
}
3029
}

compiler-plugin/compiler-plugin-cli/src/main/v_1_7_2/kotlinx/rpc/codegen/RPCCompilerPlugin.kt

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
package kotlinx.rpc.codegen
66

7+
import kotlinx.rpc.codegen.extension.RPCIrExtension
78
import org.jetbrains.kotlin.backend.common.extensions.IrGenerationExtension
89
import org.jetbrains.kotlin.com.intellij.mock.MockProject
910
import org.jetbrains.kotlin.compiler.plugin.CliOption
@@ -25,8 +26,6 @@ class RPCCompilerPlugin : ComponentRegistrar {
2526
override val supportsK2: Boolean = false
2627

2728
override fun registerProjectComponents(project: MockProject, configuration: CompilerConfiguration) {
28-
val irExtension = RPCIrPlugin.provideExtension(configuration)
29-
30-
IrGenerationExtension.registerExtension(project, irExtension)
29+
IrGenerationExtension.registerExtension(project, RPCIrExtension(configuration))
3130
}
3231
}

core/api/core.api

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,8 @@
1+
public final class kotlinx/rpc/AwaitFieldInitializationKt {
2+
public static final fun awaitFieldInitialization (Lkotlinx/rpc/RPC;Lkotlin/jvm/functions/Function1;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
3+
public static final fun awaitFieldInitialization (Lkotlinx/rpc/RPC;Lkotlin/reflect/KClass;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
4+
}
5+
16
public abstract interface class kotlinx/rpc/RPC : kotlinx/coroutines/CoroutineScope {
27
}
38

@@ -27,6 +32,7 @@ public final class kotlinx/rpc/RPCCall {
2732
public final class kotlinx/rpc/RPCCall$Type : java/lang/Enum {
2833
public static final field Field Lkotlinx/rpc/RPCCall$Type;
2934
public static final field Method Lkotlinx/rpc/RPCCall$Type;
35+
public static fun getEntries ()Lkotlin/enums/EnumEntries;
3036
public static fun valueOf (Ljava/lang/String;)Lkotlinx/rpc/RPCCall$Type;
3137
public static fun values ()[Lkotlinx/rpc/RPCCall$Type;
3238
}
@@ -148,3 +154,13 @@ public final class kotlinx/rpc/StreamScopeKt {
148154
public static final fun streamScoped (Lkotlin/jvm/functions/Function2;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
149155
}
150156

157+
public final class kotlinx/rpc/UninitializedRPCFieldException : java/lang/Exception {
158+
public fun <init> (Ljava/lang/String;Lkotlin/reflect/KProperty;)V
159+
public fun getMessage ()Ljava/lang/String;
160+
}
161+
162+
public final class kotlinx/rpc/WithServiceKt {
163+
public static final fun withService (Lkotlinx/rpc/RPCClient;Lkotlin/reflect/KClass;)Lkotlinx/rpc/RPC;
164+
public static final fun withService (Lkotlinx/rpc/RPCClient;Lkotlin/reflect/KType;)Lkotlinx/rpc/RPC;
165+
}
166+

core/build.gradle.kts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44

55
plugins {
66
alias(libs.plugins.conventions.kmp)
7-
alias(libs.plugins.ksp)
87
alias(libs.plugins.atomicfu)
98
alias(libs.plugins.serialization)
109
}

gradle-plugin/src/main/kotlin/kotlinx/rpc/RPCGradlePlugin.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,8 @@ class RPCGradlePlugin : Plugin<Project> {
2828
}
2929

3030
// Will apply only if the KSP plugin is present.
31-
// While K1 plugin is not present, it's alright to leave it this way.
32-
// It will generate redundant code, but it's not critical,
31+
// While the K1 plugin is not present, it is alright to leave it this way.
32+
// It will generate redundant code, but it is not critical,
3333
// since that code will not be used, and K1 will shortly remove KSP altogether
3434
applyKspPlugin(target, target.isInternalDevelopment)
3535

gradle.properties

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,7 @@ org.gradle.daemon=true
1919
org.gradle.parallel=true
2020
org.gradle.workers.max=6
2121
org.gradle.caching=true
22-
23-
# there is the problem with this one. Basically kspKotlin* tasks are skipped for some reason sometimes on CI
24-
#org.gradle.unsafe.configuration-cache=true
22+
org.gradle.configuration-cache=true
2523

2624
# development mode for kotlinx.rpc gradle plugin. Uses local project paths to apply ksp and compiler plugins
2725
kotlinx.rpc.plugin.internalDevelopment=true

0 commit comments

Comments
 (0)