Skip to content

Update kotlin#1026

Open
renovate[bot] wants to merge 1 commit into
mainfrom
renovate/kotlin
Open

Update kotlin#1026
renovate[bot] wants to merge 1 commit into
mainfrom
renovate/kotlin

Conversation

@renovate

@renovate renovate Bot commented Feb 28, 2025

Copy link
Copy Markdown
Contributor

ℹ️ Note

This PR body was truncated due to platform limits.

This PR contains the following updates:

Package Change Age Confidence
com.google.devtools.ksp (source) 2.1.10-1.0.302.3.10 age confidence
org.jetbrains.kotlinx:kotlinx-serialization-json 1.8.01.11.0 age confidence
org.jetbrains.kotlinx:kotlinx-datetime 0.6.20.8.0-0.6.x-compat age confidence
org.jetbrains.kotlinx:kotlinx-coroutines-test 1.10.11.11.0 age confidence
org.jetbrains.kotlinx:kotlinx-coroutines-android 1.10.11.11.0 age confidence
org.jetbrains.kotlin.plugin.serialization (source) 2.1.102.4.10 age confidence
org.jetbrains.kotlin.jvm (source) 2.1.102.4.10 age confidence
org.jetbrains.kotlin.android (source) 2.1.102.4.10 age confidence
org.jetbrains.kotlin.plugin.compose (source) 2.1.102.4.10 age confidence
org.jetbrains.kotlin:kotlin-gradle-plugin (source) 2.1.102.4.10 age confidence
org.jetbrains.kotlin:kotlin-stdlib-jdk8 (source) 2.1.102.4.10 age confidence

Release Notes

google/ksp (com.google.devtools.ksp)

v2.3.10

Compare Source

What's Changed

  • Fix OOMs caused by unstopped coroutine Dispatcher threads by moving KSP task cache to a gradle build service (#​2817)
  • Sanitize ':' in internal-name module suffix so KSP works with Kotlin 2.4.0 default module names (#​2964)
  • Filter source file trees in KspAATask to restore NO-SOURCE skipping behaviour (#​2947)
  • Fix R-class resolution in KSP when AGP 9 built-in Kotlin is enabled (#​2857)
  • Fix KSP2 incremental cache path normalization mismatch (#​2854)
  • Normalize line endings for KspAATask source roots to prevent cross-platform remote build cache misses (#​2849)
  • Fix bug where KSP incremental compilation does not consider library class references in annotations (#​3011)
  • Consume all Kotlin sources in KSP to support other code generators (#​3001)
  • Fix configuration cache invalidation in klib cross-compilation check (#​3014)
  • Memoized hash code for KSTypeImpl to speed up processing (#​2896)
  • Fix incorrect name generation for data classes annotated with @JvmRecord (#​2813)
  • Include kotlinx.coroutines in the distributed uber jar symbol-processing-aa-embeddable (#​2938)
  • New debugging features for incremental compilation, including additional logging and dependency graph visualization (#​3015)
  • Deprecate the ksp(...) Gradle configuration in Kotlin Multiplatform (KMP) projects in favor of target-specific configurations (#​2956). Note: Non-KMP projects are also affected. For migration details, see the documentation.

Contributors

Full Changelog: google/ksp@2.3.9...2.3.10

v2.3.9

Compare Source

What's Changed

  • Cleaned up native cross-compilation support checks to prevent Gradle Configuration Cache invalidation (#​2953)
  • Fixed a compilation performance regression in in PsiResolutionStrategy introduced in 2.3.8 (#​2948)

Contributors

  • Thanks to everyone who reported bugs and participated in discussions!

Full Changelog: google/ksp@2.3.8...2.3.9

v2.3.8

Compare Source

What's Changed

  • Enabled new default annotation use-site rules in Kotlin's Analysis API (see KEEP 402) for more information. Note: KSP was already mostly compatible with KEEP 402, so there shouldn't be any visible changes for users. (#​2888)
  • Enabled ksp.project.isolation by default when Gradle isolated projects are enabled (#​2866)
  • Improved getSymbolsWithAnnotation performance by implementing a new PSI-based resolution strategy (#​2816)

Contributors

  • Thanks to @​hugoncosta and everyone who reported bugs and participated in discussions!

Full Changelog: google/ksp@2.3.7...2.3.8

v2.3.7

Compare Source

What's Changed

  • Bumped Kotlin target language version to 2.3 (#​2821)
  • Fixed crash caused by upstream dependency (#​2856)
  • Fixed support for Gradle Isolated Projects (#​2844)

Contributors

  • Thanks to everyone who reported bugs and participated in discussions!

Full Changelog: google/ksp@2.3.6...2.3.7

v2.3.6

Compare Source

What's Changed

  • Fixed an issue where module recompilation would fail on Windows environments when KSP2 was enabled (#​2774)
  • Resolved an issue where generated Java sources were ignored when using Android Kotlin Multiplatform with IP-compatible paths (#​2744)
  • Fixed a KSP version 2.3.5 CI error exception that does not break build checks (#​2763)
  • Added symbol-processing-api and common-deps to compile dependencies (#​2789)
  • Improved the detection of built-in Kotlin by removing the reliance on KotlinBaseApiPlugin (#​2772)
  • A back-port of a performance optimization in the Intellij / Analysis API (2785 )
  • Added support for nested typealias Kotlin language feature #​2588
  • Exclude jdbc package from log4j to prevent vulnerability issue #​2651

Contributors

Full Changelog: google/ksp@2.3.5...2.3.6

v2.3.5

Compare Source

What's Changed

  • KSPCoreEnvironment.instance_prop leaks memory when used programmatically #​2742
  • Missing first annotation argument when toByte is used #​2672
  • Fix circular dependency between KSP and KAPT in AGP 9.0 #​2743

Contributors

  • Thanks to everyone who reported bugs and participated in discussions!

Full Changelog: google/ksp@2.3.4...2.3.5

v2.3.4

Compare Source

What's Changed

  • KSP ignores sources in Kotlin directory #​2730
  • Avoid recording Java symbol lookups in non-incremental builds #​2728
  • Clean up ThreadLocals when processing is done #​2709

Contributors

  • Thanks to everyone who reported bugs and participated in discussions!

Full Changelog: google/ksp@2.3.3...2.3.4

v2.3.3

Compare Source

What's Changed

  • Migrate away from a deprecated compilerOptions KGP API #​2703

Contributors

  • Thanks to everyone who reported bugs and participated in discussions!

Full Changelog: google/ksp@2.3.2...2.3.3

v2.3.2

Compare Source

What's Changed

Note: This release is a hotfix for a regression introduced in 2.3.1

  • Fixed an issue where KSP incorrectly processed specific nullable annotations from Java interfaces, leading to incorrect nullability in the generated Kotlin code #​2696
  • Fixed a regression introduced in #​2656 that caused runtime failures for projects using AGP 8.8.0 and older due to an incompatible, version-specific type check. #​2694

Contributors

Thanks to everyone who reported bugs and participated in discussions!

Full Changelog: google/ksp@2.3.1...2.3.2

v2.3.1

Compare Source

What's Changed

  • Added support for AGP 9.0 and built-in Kotlin #​2674
  • Fixed a bug in getJvmCheckedException that incorrectly handled nested classes. #​2584
  • Removed incorrect caching for KSValueArgumentLiteImpl that wrongly merged arguments with different parents, origins, or locations #​2677

Contributors

Thanks to everyone who reported bugs and participated in discussions!
Full Changelog: google/ksp@2.3.0...2.3.1

v2.3.0

Compare Source

What's Changed

  • KSP1 has been deprecated #​2657
  • KSP version is no longer tied to the Kotlin compiler version (moving away from the old - format). #​2658
  • KSP is no longer a compiler plugin (like KSP1). It now operates as a more standalone tool built on stable compiler APIs (shared with tools like IntelliJ).
  • KSP now has fewer limitations on the Kotlin version in use and allows the KSP team to provide better compatibility to KGP/AGP/Gradle
  • Read more about KSP2: https://github.com/google/ksp/blob/main/docs/ksp2.md

Reason for 2.3.0 version name:

  • It is independent of Kotlin now
  • We wanted to match the Kotlin language version
  • It is newer than the latest KSP 2.2.20-2.0.4 release.

Full Changelog: google/ksp@2.2.20-2.0.4...2.3.0

v2.2.21-2.0.5

Compare Source

What's Changed

  • A new Gradle property flag was added to mute the warnings about KSP1 usage. You can enable this by setting warn.on.ksp1.usage=false in your gradle.properties file.

Full Changelog: google/ksp@2.2.21-2.0.4...2.2.21-2.0.5

v2.2.21-2.0.4

Compare Source

What's Changed

Full Changelog: google/ksp@2.2.21-RC2-2.0.4...2.2.21-2.0.4

v2.2.20-2.0.4

Compare Source

What's Changed

  • Unable to build on AGP 8.11.1 using KSP 2.2.20-2.0.3 due to class cast exception #​2614

  • Resolver#getJvmCheckedException(KSPropertyAccessor) throws IllegalArgumentException #​2548

  • ClassCastException when building with 2.2.20-2.0.3 #​2598

  • Replace KaFirStopWorldCacheCleaner with no-op implementation #​2626

  • BuildConfig values are not available during annotation process after upgrading ksp from 2.2.10-2.0.2 -> 2.2.20-2.0.3 #​2597

  • Missing Gradle task wiring with 2.2.20-2.0.3 #​2595

  • 2.2.20-2.0.3 + protobufJavalite build errors #​2596

Contributors

Thanks to everyone who reported bugs and participated in discussions!

Full Changelog: google/ksp@2.2.20-2.0.3...2.2.20-2.0.4

v2.2.20-2.0.3

Compare Source

What's Changed

  • Removed usages of deprecated KGP ApiVersion - #​2400
  • Android integration for KSP has moved on to the new Variant API - #​2250
  • Runtime warning was added for projects that opt out of KSP2 - #​2538
  • AGP version against which KSP is compiled has been upgraded - #​2552

Contributors

Thanks to everyone who reported bugs and participated in discussions!

Full Changelog: google/ksp@2.1.21-2.0.2...2.2.20-2.0.3

v2.2.20-2.0.2

Compare Source

What's Changed

Full Changelog: google/ksp@2.2.20-RC2-2.0.2...2.2.20-2.0.2

v2.2.10-2.0.2

Compare Source

What's Changed

Full Changelog: google/ksp@2.2.10-RC2-2.0.2...2.2.10-2.0.2

v2.2.0-2.0.2

Compare Source

What's Changed

Full Changelog: google/ksp@2.2.0-RC3-2.0.2...2.2.0-2.0.2

v2.1.21-2.0.2

Compare Source

What's Changed

KSP1: use new mangling scheme for inline classes #​2446
KSP task (non-)registration happens too soon #​1789
[ksp2] Resolver.getJvmName wrong for properties starts with is #​2275
Inlined JVM name is not correct #​1493
[KSP2] Annotation values of inner annotations shouldn't be marked as default #​2437
Properly support @​ all annotation use site target #​2438

Contributors

Thanks to everyone who reported bugs and participated in discussions!

Full Changelog: google/ksp@2.1.21-2.0.1...2.1.21-2.0.2

v2.1.21-2.0.1

Compare Source

What's Changed

Full Changelog: google/ksp@2.1.21-RC2-2.0.1...2.1.21-2.0.1

v2.1.20-2.0.1

Compare Source

What's Changed

  • [KSP2] Annotation values shouldn't be marked as default (synthetic origin) broken after PR #​2424 in #​2425
  • [KSP2] Wrong internal method name with custom moduleName compiler option in #​2415
  • [KSP2] getJvmName for internal method did not sanitize java identifiers in #​2413
  • [KSP2] Annotation and argument's origin is wrong in #​2412
  • [KSP2] functionKind is MEMBER for static method in interface in Java in #​2410
  • KSP2 Generated .class files are not added to the classpath in #​2365
  • When I write specific code, KSP throws an Unexpected class for KtSymbol error. in #​2303

Contributors

Thanks to everyone who reported bugs and participated in discussions!

Full Changelog: google/ksp@2.1.20-2.0.0...2.1.20-2.0.1

v2.1.20-2.0.0

Compare Source

What's Changed

  • Bumped version to 2.0.0 and enabled KSP2 by default!
  • No-op blockOtherCompilerPlugins #​2397
  • A couple of fixes to compilation avoidance #​2401
  • KSTypeReferenceResolvedImpl.toString(): render unexpanded #​2393

Full Changelog: google/ksp@2.1.20-1.0.32...2.1.20-2.0.0

v2.1.20-1.0.32

Compare Source

What's Changed

#​2379 [KSP2] resolved type of vararg parameter in functions changed vs KSP1
#​2358 [KSP2] Annotation missing from property when VALUE_PARAMETER target is used.

And various performance optimizations!

v2.1.20-1.0.31

Compare Source

What's Changed

Full Changelog: google/ksp@2.1.20-RC2-1.0.31...2.1.20-1.0.31

v2.1.10-1.0.31

Compare Source

Bug Fixes

  • [KSP2] KSPropertyDeclaration#type for typealias does not match its declaration. #​2345
  • Incorrect isMutable on KSPropertyDeclaration from a JAVA_LIB in 2.1.10-1.0.30 #​2346
  • KSP breaks compilation avoidance #​2347
Kotlin/kotlinx.serialization (org.jetbrains.kotlinx:kotlinx-serialization-json)

v1.11.0: 1.11.0

This release is based on Kotlin 2.3.20 and provides a new Json exceptions API and some bugfixes and improvements.

Expose Json exceptions structure

To make working with exceptions easier and providing proper error codes in e.g., REST APIs,
classes JsonException, JsonDecodingException, and JsonEncodingException are now public.
They have relevant public properties, such as shortMessage, path, offset, and others.
This API is currently experimental, and we're going to improve it further in the subsequent releases.
See the linked issues for the details: #​1930, #​1877.

Ability to hide user input from exception messages for security/privacy reasons.

Historically, exception messages in kotlinx.serialization often included the input Json itself for debuggability reason.
Such behavior may pose additional challenges for logging, analytics, and other systems, since
a system is not always allowed to store user data due to privacy/security reasons, which imposes additional sanitation logic.
To address this issue, a new property exceptionsWithDebugInfo is added to JsonConfiguration.
Disable it to hide user input from exception messages.
IMPORTANT: This behavior will be enabled by default when this property becomes stable.
See #​2590 for more details.

Bugfixes and improvements

  • CBOR: Relax value range check when decoding numbers (#​3167)
  • Use a specialized writeDecimalLong method for IO stream integrations in Json (#​3152)

v1.10.0: 1.10.0

This release is based on Kotlin 2.3.0 and contains all of the changes from 1.10.0-RC.
The only additional change is a fix for ProtoBuf packing of Kotlin unsigned types (#​3079).
Big thanks to KosmX for contributing the fix.

For your convenience, the changelog for 1.10.0-RC is duplicated below:

Stabilization of APIs

kotlinx-serialization 1.10 and subsequent releases will be focused on stabilization of existing APIs.
The following APIs and configuration options are no longer experimental because they're widely used without any known major issues:

  • Json configuration options: decodeEnumsCaseInsensitive, allowTrailingComma, allowComments, and prettyPrintIndent. (#​3100)
  • @EncodeDefault annotation and its modes. (#​3106)
  • JsonUnquotedLiteral constructor function (#​2900)
  • JsonPrimitive constructor function overloads that accept unsigned types. (#​3117)
  • JSON DSL functions on JsonElement with Nothing? overloads. (#​3117)

Readiness for return value checker

Kotlin 2.3.0 introduces a new feature aimed at helping you to catch bugs related to the accidentally ignored return value of the function.
kotlinx-serialization 1.10.0-RC code is fully marked for this feature, meaning that you can get warnings for unused function calls like Json.encodeToString(...). To get the warnings, the feature has to be enabled in your project as described here.

Polymorphism improvements

Polymorphic serialization received a couple of improvements in this release:

New subclassesOfSealed utility to automatically register sealed subclasses serializers in polymorphic modules (#​2201).

Use it in your SerializersModule when configuring a polymorphic hierarchy which contains both abstract and sealed classes. For example, when root of your hierarchy is an interface, but most of your inheritors are sealed classes. The new function will register all known sealed subclasses for you, so you don’t need to list them one by one. This makes writing your SerializerModules much faster and simpler. Big thanks to Paul de Vrieze for contributing this feature.

Class discriminator conflict check rework (#​3105).

If a payload already contains a property with the same name as the configured discriminator (for example, type),
it is called a class discriminator conflict. To produce a correct output and allow more inputs to be deserialized at the same time, the following changes were made:

  • Conflicts introduced by JsonNamingStrategy transformations are now detected during serialization as well and will cause SerializationException.
    It also affects non-polymorphic classes.
  • Conflicts from ClassDisciminatorMode.ALL_JSON_OBJECTS and SerializersModuleBuilder.polymorphicDefaultSerializer are also detected.
  • It is allowed to deserialize such a conflicting key for both sealed and open polymorphic hierarchies.
    Previously, it was possible in the sealed hierarchies alone due to missing assertion. See #​1664 for details.

General improvements

  • Add .serialName to MissingFieldException for clearer diagnostics. (#​3114)
  • Generate unique Automatic-Module-Name entries for metadata JARs. (#​3109)
  • Revised ProGuard rules and added R8 tests. (#​3041)
  • CBOR: Improved error message when a byte string/array type mismatch is encountered. (#​3052)

Bugfixes

  • Fix the typo in the BIGNUM_NEGATIVE tag name. (#​3090)
  • CBOR: Fix various bugs in the decoder implementation to be more strict and consistent with the specification.

v1.9.0

==================

This release updates Kotlin version to 2.2.0, includes several bugfixes and provides serializers for kotlin.time.Instant.

Add kotlin.time.Instant serializers

Instant class was moved from kotlinx-datetime library to Kotlin standard library.
As a result, kotlinx-datetime 0.7.0 no longer has serializers for the Instant class.
To use new kotlin.time.Instant class in your @​Serializable classes,
you can use this 1.9.0 kotlinx-serialization version (Kotlin 2.2 is required).
You can choose between default InstantSerializer which uses its string representation,
or specify InstantComponentSerializer that represents instant as its components.
See details in the PR.

Other bugfixes

  • Fix resize in JsonPath (#​2995)
  • Fixed proguard rules for obfuscation to work correctly (#​2983)

v1.8.1

==================

This release updates Kotlin version to 2.1.20, while also providing several important improvements
and bugfixes.

Improvements

Bugfixes

  • Fix incorrect enum coercion during deserialization from JsonElement (#​2962)
  • Supply proper equals(), hashCode(), and toString() for SerialDescriptor() wrapper (#​2942)
  • Do not encode empty packed collections in protobuf (#​2907)
Kotlin/kotlinx-datetime (org.jetbrains.kotlinx:kotlinx-datetime)

v0.8.0-0.6.x-compat

v0.8.0

Breaking changes:

  • Deprecate TimeZone serialization (#​576).

Additions:

  • Add orNull functions for non-throwing construction of datetime entities (#​68).
  • Add parseOrNull extension functions for non-throwing attempts at parsing (#​508).
  • Introduce LocalIsoWeekDate for representing ISO week dates (#​603).
  • Introduce functions for finding the next or previous date with the given day-of-week (#​129).

Tweaks and fixes:

  • Fix bugs in Instant.until and Instant.periodUntil (#​534).
  • Always output seconds in the DateTimeComponents.Formats.RFC_1123 format (#​608).
  • On Kotlin/Native for Windows, whenever DST transitions are turned off by the user, the current system time zone is now fixed-offset (#​575).
Changelog relative to version 0.8.0-rc02

No changes, only the version is increased.

v0.7.1-0.6.x-compat

v0.7.1

  • Add kotlinx.datetime.Instant and kotlinx.datetime.Clock type aliases to, respectively, kotlin.time.Instant and kotlin.time.Clock to make migration more convenient.
  • Add a fallback timezone database implementation for Darwin that uses the Foundation framework if the timezone database is unavailable on the filesystem (#​485).
  • Restore binary compatibility in string format definitions utilizing dates on the JVM (#​545).

v0.7.0-0.6.x-compat

v0.7.0

Breaking changes:

  • Remove kotlinx.datetime.Instant and kotlinx.datetime.Clock in favor of kotlin.time.Instant (#​506). See https://github.com/Kotlin/kotlinx-datetime?tab=readme-ov-file#deprecation-of-instant for a description of what to do if this causes problems.
  • Unify the range of admissible LocalDate and LocalDateTime values on all platforms (#​432).
  • Rename dayOfMonth to day, monthNumber to month (#​84).
  • Make DayOfWeek and Month no longer type aliases to java.time.DayOfWeek and java.time.Month (#​96).
  • Make "UTC" and not "Z" be the timezone identifier for TimeZone.UTC (#​474).
  • Accept "z" in TimeZone.of, with the same meaning as "Z" (#​529).
  • Add DateTimeFormat-based KSerializer implementations for datetime entities, and change the default serializers to be based on toString/parse pairs (#​415).

Additions:

  • Add java.io.Serializable implementations for most of the entities in the library (#​143). Thanks for spotting and fixing a potential vulnerability, @​lukellmann!
  • Add LocalDateRange, a range of LocalDate values (#​190). Thanks, @​PeterAttardo!
  • Add YearMonth and YearMonthRange (#​457).

Tweaks and fixes:

  • Support obtaining the system timezone on old Debian-based distributions (#​430).
  • Fix not being able to parse some valid timezone identifiers using the timeZoneId() directive (#​444).
  • Use the grammar defined in RFC 9557 for parsing timezone identifiers in the timeZoneId() directive, allowing parsing values not present in the timezone database (#​531).
  • Improved error messages when formatting an invalid DateTimeComponents value (#​471).
  • Set the JPMS dependency on kotlinx.serialization.core to be optional (#​496).
Kotlin/kotlinx.coroutines (org.jetbrains.kotlinx:kotlinx-coroutines-test)

v1.11.0

Compare Source

Various
  • Kotlin was updated to 2.2.20 (#​4545).
  • Improved the published jar files (#​3842, #​4599).
  • Various documentation improvements, including complete rewrites of structured concurrency and error handling-related KDoc (#​4433, #​4596).
Breaking changes and deprecations
  • Moved Promise-related functions from JS and Wasm/JS to the new web target. On Wasm/JS, this is a breaking change. Before the change, Promise on Wasm/JS could work with arbitrary Kotlin types, but now, only JsAny subtypes are accepted (#​4563).
  • Changed handling of coroutine exceptions that can't be propagated on JS and Wasm/JS. B
    efore, exceptions were logged, but now, they are reported to the JS runtime (#​4451, #​4631).
  • Deprecated using CoroutineDispatcher as the coroutine context key; now, ContinuationInterceptor has to be used instead (#​4333).
  • Advanced the deprecation levels on kotlinx-coroutines-test APIs (#​4604).
  • Added lint functions that mark passing a Job to coroutine builders as deprecated (#​4435).
Bug fixes and improvements
  • Added a callsInPlace(EXACTLY_ONCE) contract to runBlocking in code shared between JVM and Native (#​4368).
  • Added a callsInPlace(EXACTLY_ONCE) contract to suspendCancellableCoroutine (#​4574).
  • Fixed flowOn incorrectly handling ThreadContextElement updates (#​4403).
  • Fixed exceptions in user-supplied Thread.UncaughtExceptionHandler instances causing the internal coroutines machinery to fail (#​4516).
  • Fixed CoroutineDispatcher.asScheduler in the RxJava integration not cancelling outstanding work when a Worker gets cancelled, which led to memory leaks in some scenarios (#​4615).
  • Fixed SharedFlow entering an invalid state when a subscriber and an emitter are cancelled simultaneously (#​4583).
  • Fixed an R8 optimization leading to shareIn/stateIn coroutines getting garbage-collected (#​4646). Thanks, @​solevic!
Small additions
  • Added CompletableDeferred.asDeferred for obtaining a read-only Deferred view (#​4408).
  • Added SharedFlow.asFlow for obtaining a Flow view with hidden hot flow semantics (#​4530). Thanks, @​g000sha256!
  • Added a StateFlow.collectLatest overload returning Nothing to assist with finding unreachable code (#​4454).
  • Added ReceiveChannel.consumeTo for consuming a ReceiveChannel into a MutableCollection (#​4520).
  • Added a StateFlow<T>.onSubscription overload returning a StateFlow<T>, similar to SharedFlow<T>.onSubscription returning SharedFlow<T> (#​4275). Thanks, @​xit0c!
  • Added terminal Flow operators for collecting a Flow to a Map (#​1541).
Changelog relative to version 1.11.0

No changes, only the version is increased.

v1.10.2

Compare Source

  • Fixed the kotlinx-coroutines-debug JAR file including the module-info.class file twice, resulting in failures in various tooling (#​4314). Thanks, @​RyuNen344!
  • Fixed Flow.stateIn hanging when the scope is cancelled in advance or the flow is empty (#​4322). Thanks, @​francescotescari!
  • Improved handling of dispatcher failures in .limitedParallelism (#​4330) and during flow collection (#​4272).
  • Fixed runBlocking failing to run its coroutine to completion in some cases if its JVM thread got interrupted (#​4399).
  • Small tweaks, fixes, and documentation improvements.
JetBrains/kotlin (org.jetbrains.kotlin.plugin.serialization)

v2.4.10: Kotlin 2.4.10

Changelog

Backend. Wasm
  • KT-87066 K/Wasm: Not all files are presented in compiler output directory with multimodule-closed-world and incremental compilation
Compiler
  • KT-86939 JVM: IllegalStateException "No value for annotation parameter" when using const val in nested Java annotation array argument
  • KT-83766 K2: Wrong sourcePsi is set for SymbolPsiLiteral in SLC for annotation arguments referencing a const val
  • KT-86728 Reified type inference: expected type not propagated into inline call inside lambda with elvis operator
Compose Compiler
  • b/522127447 Compose Compiler 2.4: classes previously inferred stable now reported runtime/Uncertain
Klibs
  • KT-86501 Native: IrTypeAliasSymbolImpl is already bound. Signature: kotlinx.datetime/Instant|null[0] on iosSimulatorArm64
Tools. CLI
  • KT-86930 Introduce kotlinr in the Kotlin distribution
Tools. Gradle. BCV
  • KT-87223 Gradle, BCV: open version range in kotlinAbiValidationCompatClasspath causes kotlin-build-tools-impl to resolve to 2.4.20-Beta1 instead of 2.4.0
Tools. Gradle. JS
  • KT-87304 jsBrowserTest fails with "exited with errors (exit code: 1)"
  • KT-86057 kotlinUpgradeYarnLock skips lock file regeneration when kotlinNpmInstall is up-to-date, causing kotlinStoreYarnLock to fail
Tools. Gradle. Multiplatform
  • KT-87084 False positive warning for JS and Wasm compilations when CRI is enabled
Tools. Scripts
  • KT-87076 @file:CompilerOptions("-jvm-target", ...) ignored in .main.kts scripts in Kotlin 2.4.0, falling back to JVM target 1.8
  • KT-86352 K2 scripting: FirResolvedTypeRef exception when resolving extension functions from imported scripts

v2.4.0: Kotlin 2.4.0

Changelog

Analysis API
  • KT-83867 OVERLOAD_RESOLUTION_AMBIGUITY false positive with assertEquals in IJ repo
  • KT-83723 [Analysis API] Enable experimental KDoc resolver by default
  • KT-83388 Analysis API: properly support KMP in KotlinPackageProvider
  • KT-65683 Analysis API: Dangling file session creation causes a computeIfAbsent contract violation
Analysis API. Code Compilation
  • KT-78946 Evaluation of variable with local class in type parameter leads to InventNamesForLocalClasses exception
Analysis API. FIR
  • KT-68260 K2 AA: InvalidFirElementTypeException “For CALLABLE_REFERENCE_EXPRESSION with text ::lam1, unexpected element of type: no element found” with illegal callable reference call
  • KT-70896 AA: False positive deprecation warning with override of built-in method in JDK mapped class
  • KT-84711 K2 IDE sometimes loses FIR plugin-generated declarations after file changes
  • KT-84625 Analysis API: collectDesignationPath fails for nested classes inside plugin-generated top-level classes
  • KT-84596 Improve K2 Jooq completion performance
  • KT-84525 KaValueParameterSymbol#getHasSynthesizedName returns false for FirDeclarationOrigin.SubstitutionOverride.DeclarationSite
  • KT-83546 Kotlin analysis reach ClsCustomNavigationPolicy
  • KT-84259 Move CommonDefaultImportsProvider to the frontend independent module
  • KT-82945 Analysis API: KotlinIllegalArgumentExceptionWithAttachments: Expected FirResolvedTypeRef with ConeKotlinType but was FirUserTypeRefImpl
  • KT-71135 AA: exception from sealed inheritors checker when analyzeCopy
Analysis API. Infrastructure
Fixes
  • KT-83905 Analysis API: Improve UX with test data
  • KT-84913 Extract compiler classes used by the PSI & Analysis API to a separate module
  • KT-64986 Analysis API: Implement Analysis API tests for different KMP Platforms
  • KT-84776 The test data manager misses the redundancy check in the update mode
  • KT-84962 The test data manager misses -ea flag
  • KT-84388 Preserve the EOF status in the test data manager to avoid extra changes
  • KT-84362 Analysis API tests produce many warnings due to "not yet loaded registry"
  • KT-84279 Test Data Manager fails on a clean build
  • KT-83913 Exclude compiler-based Analysis API tests from Git tracking
  • KT-80379 Extract per-module test generators for AA tests
  • KT-84120 Move CLI modules out of kotlin-compiler-fe10-for-ide
  • KT-83200 Track external dependencies of the Analysis API modules
Analysis API. Light Classes
  • KT-82434 Light classes should prefer enum entries to properties
  • KT-84200 SLC: return type is not boxed for delegated methods with generic original method
  • KT-72451 "CCE: class PsiPrimitiveType cannot be cast to class PsiClassType" with same-named enum class and typealias
Analysis API. PSI
  • KT-84715 removeModifier doesn't delete whitespaces around the removed modifier
  • KT-84564 KtEnumEntry.delete deletes semicolon
  • KT-84781 Use computed properties in KotlinElementTypeProviderImpl
  • KT-83846 Set up guidelines for PSI
  • KT-84135 Deprecate KtSelfType
Analysis API. Providers and Caches
  • KT-82731 Analysis API: Limit granular tree change processing to a few files
  • KT-79234 Analysis API: Usage of asMap() on Caffeine caches bypasses stats counters
  • KT-74090 Analysis API: Support dumb mode (restricted analysis)
Analysis API. Standalone
  • KT-83801 Nested typealiases are not correctly indexed in standalone mode
Analysis API. Stubs and De

Note

PR body was truncated to here.


Configuration

📅 Schedule: (UTC)

  • Branch creation
    • Between 12:00 AM and 03:59 AM (* 0-3 * * *)
  • Automerge
    • At any time (no schedule defined)

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovate
renovate Bot force-pushed the renovate/kotlin branch from b7271a2 to 3959686 Compare March 20, 2025 12:05
@renovate renovate Bot changed the title Update dependency com.google.devtools.ksp 2.1.10-1.0.30 to v2.1.10-1.0.31 Update kotlin Mar 20, 2025
@renovate
renovate Bot force-pushed the renovate/kotlin branch 2 times, most recently from def3efa to d690808 Compare March 26, 2025 18:55
@renovate
renovate Bot force-pushed the renovate/kotlin branch from d690808 to fddf59a Compare April 1, 2025 11:58
@renovate
renovate Bot force-pushed the renovate/kotlin branch 2 times, most recently from 9cbc5c3 to e79d963 Compare April 9, 2025 01:55
@renovate
renovate Bot force-pushed the renovate/kotlin branch from e79d963 to 3749568 Compare April 30, 2025 23:42
@renovate
renovate Bot force-pushed the renovate/kotlin branch 2 times, most recently from 780f944 to 1b3edcf Compare May 13, 2025 22:41
@renovate
renovate Bot force-pushed the renovate/kotlin branch from 1b3edcf to d44f2c7 Compare June 10, 2025 03:31
@renovate
renovate Bot force-pushed the renovate/kotlin branch 3 times, most recently from 248c1e3 to 904a1bb Compare June 27, 2025 18:47
@renovate
renovate Bot force-pushed the renovate/kotlin branch from 904a1bb to f47bfa8 Compare July 7, 2025 23:15
@renovate
renovate Bot force-pushed the renovate/kotlin branch from f47bfa8 to a087208 Compare August 10, 2025 14:03
@renovate
renovate Bot force-pushed the renovate/kotlin branch 2 times, most recently from ce8b815 to 9fff1ba Compare August 15, 2025 01:39
@renovate
renovate Bot force-pushed the renovate/kotlin branch 3 times, most recently from 3cc32f0 to 8c41c12 Compare September 12, 2025 00:05
@renovate
renovate Bot force-pushed the renovate/kotlin branch from 8c41c12 to 5916a7f Compare October 8, 2025 04:14
@renovate
renovate Bot force-pushed the renovate/kotlin branch 2 times, most recently from 80e576c to f8a1604 Compare October 23, 2025 14:14
@renovate
renovate Bot force-pushed the renovate/kotlin branch 2 times, most recently from f0db574 to c203411 Compare November 9, 2025 11:52
@renovate
renovate Bot force-pushed the renovate/kotlin branch from c203411 to 5bebf36 Compare November 21, 2025 01:04
@renovate
renovate Bot force-pushed the renovate/kotlin branch from 5bebf36 to 401b29b Compare December 16, 2025 12:56
@renovate
renovate Bot force-pushed the renovate/kotlin branch from 401b29b to c5ed8e5 Compare December 16, 2025 18:01
@renovate
renovate Bot force-pushed the renovate/kotlin branch from c5ed8e5 to 66d60d8 Compare January 21, 2026 18:09
@renovate
renovate Bot force-pushed the renovate/kotlin branch from 66d60d8 to 41de403 Compare January 28, 2026 20:45
@renovate
renovate Bot force-pushed the renovate/kotlin branch from 41de403 to a2e76a7 Compare February 5, 2026 09:33
@renovate
renovate Bot force-pushed the renovate/kotlin branch from a2e76a7 to aedcc2e Compare February 18, 2026 02:28
@renovate
renovate Bot force-pushed the renovate/kotlin branch from aedcc2e to 5b0f72d Compare March 16, 2026 09:12
@renovate
renovate Bot force-pushed the renovate/kotlin branch from 5b0f72d to c311808 Compare April 9, 2026 21:32
@renovate
renovate Bot force-pushed the renovate/kotlin branch 2 times, most recently from 6af37b1 to 7ad7dfa Compare April 23, 2026 09:41
@renovate
renovate Bot force-pushed the renovate/kotlin branch 3 times, most recently from 984415e to 6e644da Compare May 13, 2026 20:04
@renovate
renovate Bot force-pushed the renovate/kotlin branch from 6e644da to 01266b9 Compare May 26, 2026 21:52
@renovate
renovate Bot force-pushed the renovate/kotlin branch from 01266b9 to 58651c5 Compare June 3, 2026 11:38
@renovate
renovate Bot force-pushed the renovate/kotlin branch from 58651c5 to 1405484 Compare July 10, 2026 03:10
@renovate
renovate Bot force-pushed the renovate/kotlin branch from 1405484 to 498e191 Compare July 14, 2026 11:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant