Upgrading org.jetbrains.kotlin:kotlin-android-extensions-runtime 1 to 2
Breaking1.9.25 → 2.2.10Breaking82Platform3Deprecated43New319Changed454Fixed2455Other341
Fetching 45 releases from GitHub…31 / 45
BreakingUpgrade verdict
82 breaking changes and 3 platform requirement changes.
In plain terms
- The compiler no longer supports targeting Kotlin language versions 1.6 and 1.7.
- The old switch for choosing the K2 compiler is removed.
- Drops the IrElementVisitor, IrElementVisitorVoid and IrElementTransformer interfaces.
- Removes the Ir class.
Must act Top 5 of 128 that need code or config changes
What you must change
Breaking82
Drops language versions 1.6 and 1.7.
Drops the -Xuse-k2 compiler flag.
-Xuse-k2Drops the IrElementVisitor, IrElementVisitorVoid and IrElementTransformer interfaces.
IrElementVisitorIrElementVisitorVoidIrElementTransformerRemoves the Ir class.
IrRemoves IrErrorDeclaration from IR.
IrErrorDeclarationRemoves the kotlin.incremental.useClasspathSnapshot property.
kotlin.incremental.useClasspathSnapshotRemoves the deprecated JS/Dce Gradle DSL.
DceRemoves support for Legacy Metadata Compilation with the Compatibility Metadata Variant.
Removes KotlinTarget.useDisambiguationClassifierAsSourceSetNamePrefix and overrideDisambiguationClassifierOnIdeImport from KGP.
KotlinTarget.useDisambiguationClassifierAsSourceSetNamePrefixoverrideDisambiguationClassifierOnIdeImportRemoves preset APIs.
Removes legacy KMP flags.
Removes the 'android()' target.
android()Removes PomDependenciesRewriter, which is not compatible with Project Isolation.
PomDependenciesRewriterRemoves konanVersion from CInteropProcess.
CInteropProcesskonanVersionRemoves the Kotlin Native Performance plugin.
Removes multiplatform support from the Maven Plugin.
Removes the custom class loader option when creating a Standalone Analysis API session.
Removes JAR publications with old artifact names in the high-level-api family.
Removes the deprecated Analysis API API.
Removes the deprecated mod operator convention.
modDrops IrAttributeContainer.
IrAttributeContainerDrops obsolete parts of the Skia (ad-hoc C++) import in Kotlin/Native.
Removes the deprecated KotlinPlatformJsPlugin.
KotlinPlatformJsPluginRemoves the deprecated KotlinPlatformAndroidPlugin.
KotlinPlatformAndroidPluginRemoves the kotlin.androidExtensionsPlugin.enabled flag.
kotlin.androidExtensionsPlugin.enabledRemoves the Legacy Multiplatform Gradle Plugin.
Removes the built-in ABI snapshot implementation.
Removes default exports from Wasm exports in Kotlin/Wasm.
Removes the create###Array functions from the WASM stdlib.
create###ArrayDrops language versions 1.4 and 1.5.
Removes decoy support for the JS target from the Compose compiler.
Removes the ability to apply compiler plugins during the KAPT stub generation phase.
Deletes the org.jetbrains.kotlin.cli.js.K2JSCompiler class.
org.jetbrains.kotlin.cli.js.K2JSCompilerRenames org.jetbrains.kotlin.cli.js.K2JsIrCompiler to K2JSCompiler.
org.jetbrains.kotlin.cli.js.K2JsIrCompilerK2JSCompilerRemoves kotlin-compiler-embeddable from Gradle build runtime dependencies.
kotlin-compiler-embeddableRemoves the deprecated common platform plugin id.
Removes useLibraries from the CocoaPods plugin.
useLibrariesRemoves ChromeWasmGc from Kotlin/Wasm.
ChromeWasmGcRenames the 'high-level-api' family of JARs to 'analysis-api'.
Renames KaClassLikeSymbol.classIdIfNonLocal to classId.
KaClassLikeSymbol.classIdIfNonLocalKaClassLikeSymbol.classIdRenames KtCallableSymbol.callableIdIfNonLocal to callableId.
KtCallableSymbol.callableIdIfNonLocalKtCallableSymbol.callableIdRemoves
infix modifiers from Analysis API type equality and subtyping functions.Drops DecompiledPsiDeclarationProvider-related APIs.
DecompiledPsiDeclarationProviderRemoves support for bitcode embedding on Kotlin/Native.
K2 drops support for UseBuilderInferenceOnlyIfNeeded=false.
UseBuilderInferenceOnlyIfNeededDisallows open @Composable functions with default params to fix binary compatibility issues.
@ComposableDeletes the IrMessageLogger interface.
IrMessageLoggerDrops library versions from KLIB manifests.
Drops the "-repository <path>" CLI parameter from the KLIB tool.
-repositoryDrops the "install" and "remove" commands from the KLIB tool.
installremoveRemoves the deprecated KotlinToolRunner(project) constructor.
KotlinToolRunnerAnalysis API drops the ability to enable the global phase resolve lock.
Bumps the KLIB ABI version in 2.2.0.
Changes deprecation level to ERROR for kotlinOptions DSL.
kotlinOptionsChanges deprecation level to error for KotlinCompilation.source.
KotlinCompilation.sourceRaises the deprecation of KotlinCompilationOutput#resourcesDirProvider to an error.
KotlinCompilationOutput#resourcesDirProviderDeprecates commonization parameters in KGP with an error.
K2 now prohibits declaring local type aliases.
Forbids using inline and value class modifiers together.
inlinevalueMakes the kotlin-android-extensions plugin fail the build on apply.
kotlin-android-extensionsDecommissions Gradle properties that disable precise task outputs backup.
Makes using the -Xuse-k2 compiler flag an error.
-Xuse-k2Kotlin/Native makes the @Escapes annotation required for all external functions.
@EscapesProhibits exposing types via type parameters' bounds.
Forbids projection modifiers inside a top-level Array in an annotation's value parameter.
ArrayKLIB Resolve forbids passing KLIB unique names via CLI.
Fixes a binary incompatible change to KotlinLibraryResolver.resolveWithDependencies.
KotlinLibraryResolver.resolveWithDependenciesProhibits implementing a var property with an inherited val property.
Cleans up obsolete Gradle plugin variants for Gradle versions below 7.6.
Changes KotlinTargetAlreadyDeclaredChecker severity from warning to error.
KotlinTargetAlreadyDeclaredCheckerRaises deprecation level to Error for KotlinTarget.useDisambiguationClassifierAsSourceSetNamePrefix and overrideDisambiguationClassifierOnIdeImport.
KotlinTarget.useDisambiguationClassifierAsSourceSetNamePrefixoverrideDisambiguationClassifierOnIdeImportDeprecates the targetFromPreset API with an error.
targetFromPresetDeprecates ios, tvos and watchos presets with an error.
iostvoswatchosMoves ExperimentalSwiftExportDsl to another package.
ExperimentalSwiftExportDslMoves KaSymbolBasedReference to the resolution package.
KaSymbolBasedReferenceMoves KaTypeProjection to the types package.
KaTypeProjectionMerges the IrPrivateSymbolBase and IrPublicSymbolBase hierarchies in IR.
IrPrivateSymbolBaseIrPublicSymbolBaseForbids expect class A actual constructor.
Prohibits exposing anonymous types from private inline functions.
Forbids multiple labels per statement in K2.
Prohibits
header and impl in MPP.headerimplMarks KaFirReference and all its implementations with the internal modifier.
KaFirReferencePlatform3
Bumps the minimal supported Gradle version to 7.6.3.
Bumps the minimal supported Android Gradle plugin version to 7.3.1.
Adds Xcode 16 support in Kotlin.
Deprecations to plan for
Deprecated43
Removes -Xextended-compiler-checks in favor of a deprecation cycle.
-Xextended-compiler-checksDeprecates language versions 1.8 and 1.9.
Deprecates the hasAnnotations flag in kotlin-metadata and adds JVM-only hasAnnotationsInBytecode instead.
hasAnnotationshasAnnotationsInBytecodeReviews deprecations in stdlib for 2.2.
Deprecates Windows 7 support in Kotlin/Native.
Deprecates Ant support.
Deprecates atomic properties marked with
@PublishedApi as an error.@PublishedApiDeprecates remaining kotlinOptions DSL features that were not yet deprecated.
kotlinOptionsUpdates Kotlin Gradle plugin deprecations ahead of 2.2.
Deprecates phantom-js for Karma in Wasm/JS targets.
phantom-jsKarmaDeprecates publishAllLibraryVariants in kotlin-android.
publishAllLibraryVariantsIncreases DeprecationLevel to 'Error' on deprecated 'ExtrasProperty.kt' in Kotlin 2.2.
ExtrasProperty.ktDeprecates kotlinArtifacts with a warning.
kotlinArtifactsContinues deprecation of the REPL built into kotlinc.
kotlincAccessing Task.project during execution is being deprecated in Gradle 8.12.
Task.projectAddresses the upcoming deprecation of Boolean 'is-' properties in Gradle Groovy scripts.
Deprecates the JvmDefault annotation with level HIDDEN.
JvmDefaultWarns users about the removal of context classes and constructors.
Implements a deprecation error for FIELD-targeted annotations on annotation properties.
FIELDProhibits via a deprecation warning accessing a nested class through a generic outer class.
KMM Wizards stop using the deprecated 'kotlinOptions'.
kotlinOptionsHandles ProjectDependency.getDependencyProject() being deprecated in Gradle 8.11.
ProjectDependency.getDependencyProject()Deprecates the non-Provider API in JS infrastructure extensions.
Deprecates download in NodeJsRootExtension in favor of download from NodeJsExtension, to be removed in 2.2.
NodeJsRootExtensionNodeJsExtensionNodeJsPlugindownloadDeprecates and removes support for bitcode embedding from the Kotlin Gradle plugin.
Deprecates instantiating reified type parameters into intersection types.
Implements a general deprecation of types with inaccessible type arguments.
Implements a deprecation error for Synchronized, Throws and JvmField on annotation parameters in K2.
SynchronizedThrowsJvmFieldAdds a deprecation warning for the reified modifier on type parameters of a type alias.
reifiedDeprecates passing KLIB unique names via CLI in KLIB Resolve.
Reviews deprecations in stdlib for 2.1.
Deprecates Kotlin/Native APIs marked with FreezingIsDeprecated to error.
FreezingIsDeprecatedDeprecates KotlinCompilationOutput#resourcesDirProvider.
KotlinCompilationOutput#resourcesDirProviderChanges the deprecation message for KMP target shortcuts.
Implements deprecation of smartcasts on class-delegated properties.
Deprecates error tolerance in JS.
Deprecates JVM history files based incremental compilation.
Deprecates combinations of the KMP plugin with some Gradle Java plugins.
KMPK2 deprecates using a typealias as a callable qualifier in imports.
typealiasK2 marks all potential implementations of List.getFirst()/getLast() as deprecated independently of JDK.
List.getFirst()List.getLast()Implements a deprecation warning for KT-57014, the wrong nullability returned from JDK SAM constructor lambdas.
Deprecates SAM constructor usages that require OptIn without an annotation.
OptInDeprecates upper bound violations in typealias constructors.