You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
fix: restore ABI compatibility for runOnKoinStarted + add apiCheck to CI
- Add @file:JvmName("KoinWaitExtKt") and @file:JvmMultifileClass to
KoinWaitExt.jvm.kt and KoinWaitExt.kt to restore the original JVM
symbol for runOnKoinStarted, fixing binary incompatibility between
4.1.x and 4.2.0 (#2391)
- Add apiCheck step to build.yml CI workflow so binary compatibility
is validated on every PR, preventing future ABI breaks
- Update all .api dump files to reflect current public API surface
(koin-core, koin-android, koin-core-coroutines, koin-core-viewmodel,
koin-androidx-workmanager, koin-ktor)
Fixes#2391
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Copy file name to clipboardExpand all lines: projects/android/koin-android/api/koin-android.api
+2-2Lines changed: 2 additions & 2 deletions
Original file line number
Diff line number
Diff line change
@@ -114,7 +114,7 @@ public final class org/koin/androidx/scope/FragmentExtKt {
114
114
public static final fun getScopeOrNull (Landroidx/fragment/app/Fragment;)Lorg/koin/core/scope/Scope;
115
115
}
116
116
117
-
public abstract class org/koin/androidx/scope/RetainedScopeActivity : androidx/activity/ComponentActivity, org/koin/android/scope/AndroidScopeComponent {
117
+
public abstract class org/koin/androidx/scope/RetainedScopeActivity : androidx/appcompat/app/AppCompatActivity, org/koin/android/scope/AndroidScopeComponent {
118
118
public fun <init> ()V
119
119
public fun <init> (I)V
120
120
public synthetic fun <init> (IILkotlin/jvm/internal/DefaultConstructorMarker;)V
@@ -123,7 +123,7 @@ public abstract class org/koin/androidx/scope/RetainedScopeActivity : androidx/a
123
123
protected fun onCreate (Landroid/os/Bundle;)V
124
124
}
125
125
126
-
public abstract class org/koin/androidx/scope/ScopeActivity : androidx/activity/ComponentActivity, org/koin/android/scope/AndroidScopeComponent {
126
+
public abstract class org/koin/androidx/scope/ScopeActivity : androidx/appcompat/app/AppCompatActivity, org/koin/android/scope/AndroidScopeComponent {
127
127
public fun <init> ()V
128
128
public fun <init> (I)V
129
129
public synthetic fun <init> (IILkotlin/jvm/internal/DefaultConstructorMarker;)V
Copy file name to clipboardExpand all lines: projects/android/koin-androidx-workmanager/api/koin-androidx-workmanager.api
+12Lines changed: 12 additions & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -8,3 +8,15 @@ public final class org/koin/androidx/workmanager/koin/KoinApplicationExtKt {
8
8
public static final fun workManagerFactory (Lorg/koin/core/KoinApplication;)V
9
9
}
10
10
11
+
public final class org/koin/plugin/module/dsl/WorkerDSLExtKt {
12
+
public static final fun worker (Lorg/koin/core/module/Module;)Lorg/koin/core/definition/KoinDefinition;
13
+
public static final fun worker (Lorg/koin/dsl/ScopeDSL;)Lorg/koin/core/definition/KoinDefinition;
14
+
}
15
+
16
+
public final class org/koin/plugin/module/dsl/WorkerModuleExtKt {
17
+
public static final fun buildWorker (Lorg/koin/core/module/Module;Lkotlin/reflect/KClass;Lorg/koin/core/qualifier/Qualifier;Lkotlin/jvm/functions/Function2;)Lorg/koin/core/definition/KoinDefinition;
18
+
public static final fun buildWorker (Lorg/koin/dsl/ScopeDSL;Lkotlin/reflect/KClass;Lorg/koin/core/qualifier/Qualifier;Lkotlin/jvm/functions/Function2;)Lorg/koin/core/definition/KoinDefinition;
19
+
public static synthetic fun buildWorker$default (Lorg/koin/core/module/Module;Lkotlin/reflect/KClass;Lorg/koin/core/qualifier/Qualifier;Lkotlin/jvm/functions/Function2;ILjava/lang/Object;)Lorg/koin/core/definition/KoinDefinition;
20
+
public static synthetic fun buildWorker$default (Lorg/koin/dsl/ScopeDSL;Lkotlin/reflect/KClass;Lorg/koin/core/qualifier/Qualifier;Lkotlin/jvm/functions/Function2;ILjava/lang/Object;)Lorg/koin/core/definition/KoinDefinition;
Copy file name to clipboardExpand all lines: projects/core/koin-core-viewmodel/api/android/koin-core-viewmodel.api
+12Lines changed: 12 additions & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -1,3 +1,15 @@
1
+
public final class org/koin/plugin/module/dsl/ViewModelDSLExtKt {
2
+
public static final fun viewModel (Lorg/koin/core/module/Module;)Lorg/koin/core/definition/KoinDefinition;
3
+
public static final fun viewModel (Lorg/koin/dsl/ScopeDSL;)Lorg/koin/core/definition/KoinDefinition;
4
+
}
5
+
6
+
public final class org/koin/plugin/module/dsl/ViewModelModuleExtKt {
7
+
public static final fun buildViewModel (Lorg/koin/core/module/Module;Lkotlin/reflect/KClass;Lorg/koin/core/qualifier/Qualifier;Lkotlin/jvm/functions/Function2;)Lorg/koin/core/definition/KoinDefinition;
8
+
public static final fun buildViewModel (Lorg/koin/dsl/ScopeDSL;Lkotlin/reflect/KClass;Lorg/koin/core/qualifier/Qualifier;Lkotlin/jvm/functions/Function2;)Lorg/koin/core/definition/KoinDefinition;
9
+
public static synthetic fun buildViewModel$default (Lorg/koin/core/module/Module;Lkotlin/reflect/KClass;Lorg/koin/core/qualifier/Qualifier;Lkotlin/jvm/functions/Function2;ILjava/lang/Object;)Lorg/koin/core/definition/KoinDefinition;
10
+
public static synthetic fun buildViewModel$default (Lorg/koin/dsl/ScopeDSL;Lkotlin/reflect/KClass;Lorg/koin/core/qualifier/Qualifier;Lkotlin/jvm/functions/Function2;ILjava/lang/Object;)Lorg/koin/core/definition/KoinDefinition;
11
+
}
12
+
1
13
public final class org/koin/viewmodel/BundleExtKt {
2
14
public static final fun emptyState ()Lkotlin/jvm/functions/Function0;
3
15
public static final fun toExtras (Landroid/os/Bundle;Landroidx/lifecycle/ViewModelStoreOwner;)Landroidx/lifecycle/viewmodel/CreationExtras;
Copy file name to clipboardExpand all lines: projects/core/koin-core-viewmodel/api/jvm/koin-core-viewmodel.api
+12Lines changed: 12 additions & 0 deletions
Original file line number
Diff line number
Diff line change
@@ -1,3 +1,15 @@
1
+
public final class org/koin/plugin/module/dsl/ViewModelDSLExtKt {
2
+
public static final fun viewModel (Lorg/koin/core/module/Module;)Lorg/koin/core/definition/KoinDefinition;
3
+
public static final fun viewModel (Lorg/koin/dsl/ScopeDSL;)Lorg/koin/core/definition/KoinDefinition;
4
+
}
5
+
6
+
public final class org/koin/plugin/module/dsl/ViewModelModuleExtKt {
7
+
public static final fun buildViewModel (Lorg/koin/core/module/Module;Lkotlin/reflect/KClass;Lorg/koin/core/qualifier/Qualifier;Lkotlin/jvm/functions/Function2;)Lorg/koin/core/definition/KoinDefinition;
8
+
public static final fun buildViewModel (Lorg/koin/dsl/ScopeDSL;Lkotlin/reflect/KClass;Lorg/koin/core/qualifier/Qualifier;Lkotlin/jvm/functions/Function2;)Lorg/koin/core/definition/KoinDefinition;
9
+
public static synthetic fun buildViewModel$default (Lorg/koin/core/module/Module;Lkotlin/reflect/KClass;Lorg/koin/core/qualifier/Qualifier;Lkotlin/jvm/functions/Function2;ILjava/lang/Object;)Lorg/koin/core/definition/KoinDefinition;
10
+
public static synthetic fun buildViewModel$default (Lorg/koin/dsl/ScopeDSL;Lkotlin/reflect/KClass;Lorg/koin/core/qualifier/Qualifier;Lkotlin/jvm/functions/Function2;ILjava/lang/Object;)Lorg/koin/core/definition/KoinDefinition;
11
+
}
12
+
1
13
public final class org/koin/viewmodel/BundleExtKt {
2
14
public static final fun emptyState ()Lkotlin/jvm/functions/Function0;
3
15
public static final fun toExtras (Landroidx/savedstate/SavedState;Landroidx/lifecycle/ViewModelStoreOwner;)Landroidx/lifecycle/viewmodel/CreationExtras;
Copy file name to clipboardExpand all lines: projects/core/koin-core/api/koin-core.api
+60-1Lines changed: 60 additions & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -4,8 +4,13 @@ public final class org/koin/KoinApplicationExtKt {
4
4
public static synthetic fun fileProperties$default (Lorg/koin/core/KoinApplication;Ljava/lang/String;ILjava/lang/Object;)Lorg/koin/core/KoinApplication;
5
5
}
6
6
7
+
public abstract interface annotation class org/koin/compiler/hints/KoinConfigurationHint : java/lang/annotation/Annotation {
8
+
public abstract fun moduleClass ()Ljava/lang/String;
9
+
}
10
+
7
11
public final class org/koin/core/Koin {
8
12
public fun <init> ()V
13
+
public final fun addResolutionExtension (Lorg/koin/core/resolution/ResolutionExtension;)V
9
14
public final fun close ()V
10
15
public final fun createEagerInstances ()V
11
16
public final fun createScope (Ljava/lang/String;Lorg/koin/core/qualifier/Qualifier;Ljava/lang/Object;Lorg/koin/core/qualifier/TypeQualifier;)Lorg/koin/core/scope/Scope;
@@ -36,8 +41,9 @@ public final class org/koin/core/Koin {
36
41
public final fun unloadModules (Ljava/util/List;)V
37
42
}
38
43
39
-
public final class org/koin/core/KoinApplication {
44
+
public class org/koin/core/KoinApplication {
40
45
public static final field Companion Lorg/koin/core/KoinApplication$Companion;
46
+
protected fun <init> ()V
41
47
public final fun allowOverride (Z)V
42
48
public final fun close ()V
43
49
public final fun createEagerInstances ()V
@@ -66,6 +72,9 @@ public abstract interface annotation class org/koin/core/annotation/KoinExperime
66
72
public abstract interface annotation class org/koin/core/annotation/KoinInternalApi : java/lang/annotation/Annotation {
67
73
}
68
74
75
+
public abstract interface annotation class org/koin/core/annotation/KoinViewModelScopeApi : java/lang/annotation/Annotation {
76
+
}
77
+
69
78
public abstract interface class org/koin/core/component/KoinComponent {
70
79
public fun getKoin ()Lorg/koin/core/Koin;
71
80
}
@@ -713,3 +722,53 @@ public final class org/koin/mp/KoinPlatformTools_jvmKt {
713
722
public static final fun generateId (Lorg/koin/mp/KoinPlatformTools;)Ljava/lang/String;
714
723
}
715
724
725
+
public final class org/koin/plugin/module/dsl/ApplicationDSLExtKt {
726
+
public static final fun koinApplication (Lkotlin/jvm/functions/Function1;)Lorg/koin/core/KoinApplication;
727
+
public static synthetic fun koinApplication$default (Lkotlin/jvm/functions/Function1;ILjava/lang/Object;)Lorg/koin/core/KoinApplication;
728
+
public static final fun koinApplicationWith (Ljava/util/List;Lkotlin/jvm/functions/Function1;)Lorg/koin/core/KoinApplication;
729
+
public static synthetic fun koinApplicationWith$default (Ljava/util/List;Lkotlin/jvm/functions/Function1;ILjava/lang/Object;)Lorg/koin/core/KoinApplication;
730
+
public static final fun koinConfiguration (Lkotlin/jvm/functions/Function1;)Lorg/koin/dsl/KoinConfiguration;
731
+
public static synthetic fun koinConfiguration$default (Lkotlin/jvm/functions/Function1;ILjava/lang/Object;)Lorg/koin/dsl/KoinConfiguration;
732
+
public static final fun koinConfigurationWith (Ljava/util/List;Lkotlin/jvm/functions/Function1;)Lorg/koin/dsl/KoinConfiguration;
733
+
public static synthetic fun koinConfigurationWith$default (Ljava/util/List;Lkotlin/jvm/functions/Function1;ILjava/lang/Object;)Lorg/koin/dsl/KoinConfiguration;
734
+
public static final fun module (Lorg/koin/core/KoinApplication;)V
735
+
public static final fun modules (Lorg/koin/core/KoinApplication;[Lkotlin/reflect/KClass;)V
736
+
public static final fun startKoin (Lkotlin/jvm/functions/Function1;)Lorg/koin/core/KoinApplication;
737
+
public static synthetic fun startKoin$default (Lkotlin/jvm/functions/Function1;ILjava/lang/Object;)Lorg/koin/core/KoinApplication;
738
+
public static final fun startKoinWith (Ljava/util/List;Lkotlin/jvm/functions/Function1;)Lorg/koin/core/KoinApplication;
739
+
public static synthetic fun startKoinWith$default (Ljava/util/List;Lkotlin/jvm/functions/Function1;ILjava/lang/Object;)Lorg/koin/core/KoinApplication;
740
+
public static final fun withConfiguration (Lorg/koin/core/KoinApplication;Lkotlin/jvm/functions/Function1;)V
741
+
public static synthetic fun withConfiguration$default (Lorg/koin/core/KoinApplication;Lkotlin/jvm/functions/Function1;ILjava/lang/Object;)V
742
+
public static final fun withConfigurationWith (Lorg/koin/core/KoinApplication;Ljava/util/List;Lkotlin/jvm/functions/Function1;)V
743
+
public static synthetic fun withConfigurationWith$default (Lorg/koin/core/KoinApplication;Ljava/util/List;Lkotlin/jvm/functions/Function1;ILjava/lang/Object;)V
744
+
}
745
+
746
+
public final class org/koin/plugin/module/dsl/BaseDSLExtKt {
747
+
public static final fun factory (Lorg/koin/core/module/Module;)Lorg/koin/core/definition/KoinDefinition;
748
+
public static final fun factory (Lorg/koin/dsl/ScopeDSL;)Lorg/koin/core/definition/KoinDefinition;
749
+
public static final fun scoped (Lorg/koin/dsl/ScopeDSL;)Lorg/koin/core/definition/KoinDefinition;
750
+
public static final fun single (Lorg/koin/core/module/Module;)Lorg/koin/core/definition/KoinDefinition;
751
+
}
752
+
753
+
public final class org/koin/plugin/module/dsl/CreateDSLKt {
754
+
public static final field USE_KOIN_COMPILER_PLUGIN Ljava/lang/String;
755
+
public static final fun USE_KOIN_COMPILER_PLUGIN (Ljava/lang/String;)Ljava/lang/Void;
756
+
}
757
+
758
+
public final class org/koin/plugin/module/dsl/ModuleExtKt {
759
+
public static final fun bind (Lorg/koin/core/definition/KoinDefinition;Lkotlin/reflect/KClass;)Lorg/koin/core/definition/KoinDefinition;
760
+
public static final fun buildFactory (Lorg/koin/core/module/Module;Lkotlin/reflect/KClass;Lorg/koin/core/qualifier/Qualifier;Lkotlin/jvm/functions/Function2;)Lorg/koin/core/definition/KoinDefinition;
761
+
public static final fun buildFactory (Lorg/koin/dsl/ScopeDSL;Lkotlin/reflect/KClass;Lorg/koin/core/qualifier/Qualifier;Lkotlin/jvm/functions/Function2;)Lorg/koin/core/definition/KoinDefinition;
762
+
public static synthetic fun buildFactory$default (Lorg/koin/core/module/Module;Lkotlin/reflect/KClass;Lorg/koin/core/qualifier/Qualifier;Lkotlin/jvm/functions/Function2;ILjava/lang/Object;)Lorg/koin/core/definition/KoinDefinition;
763
+
public static synthetic fun buildFactory$default (Lorg/koin/dsl/ScopeDSL;Lkotlin/reflect/KClass;Lorg/koin/core/qualifier/Qualifier;Lkotlin/jvm/functions/Function2;ILjava/lang/Object;)Lorg/koin/core/definition/KoinDefinition;
764
+
public static final fun buildScoped (Lorg/koin/dsl/ScopeDSL;Lkotlin/reflect/KClass;Lorg/koin/core/qualifier/Qualifier;Lkotlin/jvm/functions/Function2;)Lorg/koin/core/definition/KoinDefinition;
765
+
public static synthetic fun buildScoped$default (Lorg/koin/dsl/ScopeDSL;Lkotlin/reflect/KClass;Lorg/koin/core/qualifier/Qualifier;Lkotlin/jvm/functions/Function2;ILjava/lang/Object;)Lorg/koin/core/definition/KoinDefinition;
766
+
public static final fun buildSingle (Lorg/koin/core/module/Module;Lkotlin/reflect/KClass;Lorg/koin/core/qualifier/Qualifier;Lkotlin/jvm/functions/Function2;Z)Lorg/koin/core/definition/KoinDefinition;
767
+
public static synthetic fun buildSingle$default (Lorg/koin/core/module/Module;Lkotlin/reflect/KClass;Lorg/koin/core/qualifier/Qualifier;Lkotlin/jvm/functions/Function2;ZILjava/lang/Object;)Lorg/koin/core/definition/KoinDefinition;
768
+
public static final fun createDefinition (Lkotlin/reflect/KClass;Lkotlin/jvm/functions/Function2;Lorg/koin/core/qualifier/Qualifier;Lorg/koin/core/qualifier/Qualifier;Lorg/koin/core/definition/Kind;Lorg/koin/core/module/Module;Z)Lorg/koin/core/definition/KoinDefinition;
769
+
public static synthetic fun createDefinition$default (Lkotlin/reflect/KClass;Lkotlin/jvm/functions/Function2;Lorg/koin/core/qualifier/Qualifier;Lorg/koin/core/qualifier/Qualifier;Lorg/koin/core/definition/Kind;Lorg/koin/core/module/Module;ZILjava/lang/Object;)Lorg/koin/core/definition/KoinDefinition;
770
+
public static final fun includes (Lorg/koin/core/module/Module;Lorg/koin/core/module/Module;)V
771
+
public static final fun scope (Lorg/koin/core/module/Module;Lorg/koin/core/qualifier/Qualifier;Lkotlin/jvm/functions/Function1;)V
772
+
public static final fun typeQualifier (Lkotlin/reflect/KClass;)Lorg/koin/core/qualifier/Qualifier;
0 commit comments