Upgrading org.jetbrains.kotlin:kotlin-stdlib-common 0.9 to 1
Breaking0.9.1-native → 1.9.25Breaking70Security1Platform11Deprecated60New482Changed482Fixed3651Other153
Fetching 122 releases from GitHub…61 / 122
BreakingUpgrade verdict
70 breaking changes and 11 platform requirement changes and a security fix.
In plain terms
- K1 removes JDK 21 getFirst()/getLast() from (Mutable)List interfaces.
- The @AllowDifferentMembersInActual annotation is removed from the standard library.
- Removes the reified constraint from Array constructors on platforms where the Array type parameter need not be reified.
- Removes the ability to import a forward declaration by library package name.
Must act Top 5 of 141 that need code or config changes
What you must change
Breaking70
K1 removes JDK 21 getFirst()/getLast() from (Mutable)List interfaces.
getFirst()getLast()ListMutableListDrops @AllowDifferentMembersInActual from stdlib.
@AllowDifferentMembersInActualRemoves the reified constraint from Array constructors on platforms where the Array type parameter need not be reified.
ArrayRemoves the ability to import a forward declaration by library package name.
Deprecates and removes the KotlinCompilation.source API in the Kotlin Gradle Plugin.
KotlinCompilation.sourceRemoves kotlinx.coroutines from the classpath of the Kotlin Gradle Plugin.
kotlinx.coroutinesRemoves LifecycleAwareProperty from the Kotlin Gradle Plugin lifecycle.
LifecycleAwarePropertyDecommissions and removes the enableEndorsedLibs flag from the Gradle setup.
enableEndorsedLibsRemoves the default parameter value for the AtomicLong constructor in Kotlin/Native.
AtomicLongRemoves the legacy mode of the jvm-abi-gen plugin.
jvm-abi-genRemoves the "new" Kotlin daemon from the codebase.
Removes KotlinCompile setClasspath and getClasspath methods.
KotlinCompile.setClasspathKotlinCompile.getClasspathRemoves the useCoverage method in Kotlin/JS.
useCoverageRemoves support for webpack 4.
webpackRemoves the Dukat integration from KJS.
DukatRemoves the old JVM backend.
Removes the kotlin.compiler.execution.strategy system property from the Gradle plugin.
kotlin.compiler.execution.strategyRemoves JvmTarget.JVM_1_6 from the generated Gradle compiler type.
JvmTarget.JVM_1_6Removes the kapt.use.worker.api property.
kapt.use.worker.apiRemoves JVM target version 1.6.
Renames the compiler option useFir to useK2.
useFiruseK2Removes kotlin2js and kotlin-dce-plugin.
kotlin2jskotlin-dce-pluginRemoves KotlinGradleSubplugin.
KotlinGradleSubpluginRemoves deprecated useExperimentalAnnotation and experimentalAnnotationInUse from the Gradle DSL.
useExperimentalAnnotationexperimentalAnnotationInUseRemoves the deprecated 'kotlinPluginVersion' property in KotlinBasePluginWrapper.
kotlinPluginVersionKotlinBasePluginWrapperRemoves the 'kotlin.parallel.tasks.in.project' build property.
kotlin.parallel.tasks.in.projectRemoves deprecated Kotlin Gradle options that were marked for removal after 1.5.
Removes the 'kotlin.useFallbackCompilerSearch' build option.
kotlin.useFallbackCompilerSearchRemoves the option to add source maps in the KJS/IR Gradle plugin.
Removes kotlin-annotations-android and JVM compiler support for @ParameterName, @DefaultValue and @DefaultNull.
@ParameterName@DefaultValue@DefaultNullkotlin-annotations-androidChanges LightClasses so KtLightSimpleModifierList is no longer a parent of KtLightAnnotationForSourceEntry.
KtLightSimpleModifierListKtLightAnnotationForSourceEntryProhibits different member scopes for a non-final expect declaration and its actual.
expectactualRaises the ExperimentalNativeApi opt-in requirement level to ERROR in Native.
ExperimentalNativeApiElevates usage of commonMain.dependsOn(anything) to an error.
commonMain.dependsOn()Elevates usage of jvmWithJava to an error.
jvmWithJavaReplaces the ALL_COMPILE_DEPENDENCIES_METADATA configuration with a set of metadata dependency configurations associated per set.
ALL_COMPILE_DEPENDENCIES_METADATASplits the wasm target into wasm-js and wasm-wasi.
wasm-jswasm-wasiForbids actual members in expect classes.
Forbids extension calls on inline functional parameters.
Prohibits protected visibility in final expected classes.
Requires an expect fun interface to have an actual fun interface counterpart.
fun interfaceProhibits type unsound Java field assignments.
Forbids implicitly inferring a type variable into an upper bound in builder inference contexts.
Prohibits exposing anonymous types from private inline functions.
Prohibits implicit serializer customization via companion object.
Forbids the @Synchronized annotation on suspend functions.
@SynchronizedProhibits suspend calls inside autoreleasepool {} on Native.
autoreleasepoolChanges the deprecation level to error for KotlinCompile setClasspath/getClasspath methods.
KotlinCompilesetClasspathgetClasspathProhibits upper bound violations with generic typealiases that do not use all type parameters as arguments for the underlying type in supertypes.
Forbids the @Synchronized annotation on suspend functions.
@SynchronizedReports an error instead of a warning for 'Public property exposes its private type' on primary constructor properties.
Forbids usages of super or super<Some> when it accesses an abstract member.
supersuper<Some>Prohibits calling Any methods with the super qualifier once overridden as abstract in a superclass.
AnysuperReverses reservation of 'yield' as a keyword.
yieldChanges behavior of private constructors of sealed classes.
Prohibits access to members of an enum companion from initializers of that enum's entries.
Removes the kotlin.experimental.coroutines Gradle DSL option.
kotlin.experimental.coroutinesFails Gradle builds when deprecated kotlinOptions.jdkHome is set.
kotlinOptions.jdkHomeProhibits access to class members in the super constructor call of its companion and nested object.
Prohibits @JvmField on a primary constructor property that overrides an interface property.
@JvmFieldProhibits using the old JVM backend with language version 1.6 or higher.
Forbids protected constructor calls from public inline functions.
Prohibits super calls in public-API inline functions.
Prohibits declarations of repeatable annotation classes whose container annotation violates the JLS.
Reports an error on declaration of a repeatable annotation class with a nested class named Container.
ContainerProhibits using dots in identifiers on Kotlin/Native.
Raises the deprecation level of KotlinGradleSubplugin to ERROR.
KotlinGradleSubpluginForbids using OptIn markers on local variables, value parameters or fields.
OptInForbids using OptIn markers on types or type parameters.
OptInForbids cinterop commonization when hierarchical commonization is turned off.
cinteropSecurity1
Protects system properties that can contain sensitive data.
Platform11
Supports Xcode 15.0 frameworks as Kotlin/Native platform libraries.
Bumps the minimal supported AGP version to 4.2.2.
AGPUpdates Kotlin/Wasm to support Gradle 8.
Bumps the minimal supported Gradle version to 6.8.3.
GradleSets minimal supported Android Gradle plugin version to 3.6.4.
Bumps minimal supported Gradle version to 6.7.1.
Requires Xcode 13 for building the Kotlin/Native compiler.
KJS supports Apple Silicon for node distribution download.
Adds support for Xcode 13 SDKs in Kotlin/Native.
Adds Gradle 7 support for Multiplatform.
Updates the minimal supported version of the Kotlin Gradle Plugin to 6.1.
Deprecations to plan for
Deprecated59
Implements deprecation for open val with backing field and deferred initialization in K1.
Deprecates enumValues and replaces it with enumEntries in the standard library.
enumValuesenumEntriesUpdates deprecations in native atomic classes for 1.9.20.
Deprecates HashSet.getElement() with WARNING in Native.
HashSet.getElement()Deprecates kotlin.native.SharedImmutable and kotlin.native.concurrent.SharedImmutable.
kotlin.native.SharedImmutablekotlin.native.concurrent.SharedImmutableDeprecates KmModule.annotations.
KmModule.annotationsElevates the deprecation of useLibraries to an error.
useLibrariesDeprecates the ios() preset in favor of the target hierarchy.
ios()Deprecates dependsOn edges ending at declared source sets of platform compilations.
dependsOnDeprecates platform, enforcedPlatform and related Gradle DependencyHandler methods in KotlinDependencyHandler.
platformenforcedPlatformKotlinDependencyHandlerDependencyHandlerDeprecates with ERROR the JvmDefault annotation and old -Xjvm-default modes.
JvmDefault-Xjvm-defaultAdds deprecation warning for missing PRIVATE_CLASS_MEMBER_FROM_INLINE error.
PRIVATE_CLASS_MEMBER_FROM_INLINEDeprecates and makes open Number.toChar().
Number.toChar()Deprecates and removes the Enum.declaringClass synthetic property.
Enum.declaringClassDeprecates ClassBuilderInterceptorExtension.interceptClassBuilderFactory and provides another method without dependency on K1.
ClassBuilderInterceptorExtension.interceptClassBuilderFactoryDeprecates external enum declarations in Kotlin/JS.
external enumDeprecates declaring expect and actual counterparts of the same class in one module.
expectactualDeprecates redundant public declarations in kotlin.native.concurrent.
kotlin.native.concurrentMarks Native Worker and related APIs as obsolete.
WorkerDeprecates the kotlin.jvm.Volatile annotation on platforms other than JVM.
kotlin.jvm.VolatileDeprecates incorrect callable references resolution behavior for KT-54316.
Deprecates @Synchronized on platforms other than JVM.
@SynchronizedDeprecates the "legacy" mode of the jvm-abi-gen plugin.
jvm-abi-genDeprecates commonMain.dependsOn(anything) in user scripts.
commonMain.dependsOn()Deprecates useLibraries.
useLibrariesMarks the LEGACY and BOTH constants of KotlinJsCompilerType and KotlinJsCompilerTypeHolder as deprecated in 1.8.
KotlinJsCompilerTypeKotlinJsCompilerTypeHolderLEGACYBOTHDeprecates pre-HMPP flags.
Adds an IDE notification that JPS and Maven support for Kotlin/JS is deprecated.
Reviews deprecations in stdlib for 1.8.
Undeprecates the kotlinOptions DSL.
kotlinOptionsDeprecates KotlinOptions in the AbstractKotlinCompilation class.
KotlinOptionsAbstractKotlinCompilationDeprecates and deletes downloading pod dependencies by direct link.
Deprecates the enableEndorsedLibs flag in Gradle.
enableEndorsedLibsDeprecates infix calls of functions named suspend with a dangling function literal.
suspendAdds a warning about the future change of the default linking type of frameworks provided via the CocoaPods plugin.
Deprecates using non-exhaustive if and when expressions on the right-hand side of elvis.
Deprecates computing constant values of complex boolean expressions in when branches and loop conditions.
Provides a Gradle Kotlin/DSL friendly deprecated classpath property in the KotlinCompiler task.
KotlinCompilerDeprecates the kotlin.compiler.execution.strategy system property in Gradle.
kotlin.compiler.execution.strategyAdds a deprecation warning for private constructors of sealed classes.
Adds deprecation for an invalid
if used as an expression on the right-hand side of an elvis operator.Deprecates the kotlin.experimental.coroutines Gradle DSL option and the kotlin.coroutines property.
kotlin.experimental.coroutineskotlin.coroutinesDeprecates confusing grammar in when-with-subject.
Deprecates the 'kapt.use.worker.api' property.
kapt.use.worker.apiDeprecates calls to suspend-named functions with a single dangling lambda argument.
Implements deprecation of computing constant values of complex boolean expressions in when condition branches and loop conditions.
Reviews deprecations in the standard library for 1.6.
Deprecates some of the JS-only standard library API.
Deprecates appendln in favor of appendLine.
appendlnappendLineDeprecates the Gradle option KotlinJvmOptions.useIR since 1.5.
KotlinJvmOptions.useIRDeprecates computing constant values for complex boolean expressions in when condition branches and loop conditions.
whenDeprecates (V)::a reference resolution to companion in FE 1.0.
Deprecates the -Xuse-experimental compiler flag.
-Xuse-experimentalDeprecates the 'kotlin.parallel.tasks.in.project' build property.
kotlin.parallel.tasks.in.projectDeprecates target.compilations in the Gradle plugin.
target.compilationsDeprecates the JvmDefault annotation and old -Xjvm-default modes.
JvmDefault-Xjvm-defaultDeprecates kotlin.Metadata.bytecodeVersion and avoids using it in the compiler.
kotlin.Metadata.bytecodeVersionDeprecates super calls in public API inline functions.
Deprecates the Gradle options includeRuntime, noStdlib and noReflect.
includeRuntimenoStdlibnoReflect