Skip to content

Update Kotlin, KSP and Compose Compiler - #668

Merged
renovate[bot] merged 1 commit into
mainfrom
renovate/kotlin
Oct 14, 2026
Merged

renovate[bot] merged 1 commit into
mainfrom
renovate/kotlin

Conversation

@renovate

@renovate renovate Bot commented Sep 10, 2026 •

Copy link
Copy Markdown
Contributor

This PR contains the following updates:

Package Change Age Confidence
com.google.devtools.ksp (source) 2.3.11 → 2.3.12 age confidence
org.jetbrains.kotlin.kapt (source) 2.4.20 → 2.4.21 age confidence
org.jetbrains.kotlin.plugin.serialization (source) 2.4.20 → 2.4.21 age confidence
org.jetbrains.kotlin.multiplatform 2.4.20 → 2.4.21 age confidence
org.jetbrains.kotlin.android (source) 2.4.20 → 2.4.21 age confidence

Release Notes

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

v2.3.12

Compare Source

What's Changed

Migrating Processors to Support Backing Fields

This release introduces support for explicit backing fields (#​2873), which may now be returned by Resolver.getSymbolsWithAnnotation. To prevent breaking existing processors, new language features require an explicit opt-in.

More generally, the KSP API now explicitly models backing fields for properties. The following is an exhaustive list of functions in KSP API where processor may observe the change after opting in:

  • Resolver.getSymbolsWithAnnotation: The function now returns a KSBackingField if the given annotation targeted a field. Previously, if a field were targeted, the function would return a KSProperty.
  • Resolver.effectiveJavaModifiers: The function returns fewer modifiers for a KSPropertyDeclaration if it has a backing field, since most of the JVM-specific annotations apply to the backing field. If you are interested in the JVM modifiers, you should call the function with the KSBackingField obtained from the property instead.

Additionally, KSP now models Java fields as properties that always have backing fields. Some of the modifiers now apply to the backing field instead.

Processors adapting to new features must opt in via both of the following steps simultaneously (failing to do both may lead to undefined behavior):

  1. The processor should call the registerProcessorForNewFeatures function in SymbolProcessorEnvironment immediately when created (and only once). Example: AbstractTestProcessor.kt#L30
  2. All implementations of KSVisitor should move to KSVisitorNext. If their processor code does not directly implement the interface but instead extends one of the KSP-provided visitors (such as KSTopDownVisitor), they should instead extend KSTopDownVisitor(enableNewFeatures = true) and override visitBackingField depending on their code and needs.

Let us know if you run into unexpected behavior!

Bug Fixes
  • Fix Resolver.getDeclarationsFromPackage returning incomplete declarations from KLibs in Kotlin Multiplatform (#​2396)
  • Fix KSP CLI process hanging indefinitely when a processor throws an unhandled exception (#​3120)
  • Fix implicit task dependency error between KSP and Android Lint in Android KMP (#​3128)
  • Fix NullPointerException by registering PluginProblemReporter as an application service (#​3140)
  • Do not mark companion objects as JAVA_STATIC in Resolver.effectiveJavaModifiers (#​3125)
  • Fix JAVA_STATIC modifier resolution for @​JvmStatic members in Resolver.effectiveJavaModifiers (#​3124)
  • Update minimum supported Android Gradle Plugin (AGP) version to 8.12.0 (#​3149)

New Contributors

Thanks to @​KlyneChrysler, @​budindepunk, and everyone who reported bugs and participated in discussions!

Full Changelog: google/ksp@2.3.11...2.3.12

JetBrains/kotlin (org.jetbrains.kotlin.kapt)

v2.4.21

Backend. Wasm
  • KT-89267 K/Wasm: calling a (T) -> R lambda with an argument that isn't a T traps instead of throwing ClassCastException
JVM. Reflection
  • KT-89280 NoSuchElementException in argumentsMakeSenseOnlyForMutableContainer for Java non-static inner class of generic outer class
  • KT-80710 Reflection: change KCallable representation to avoid dependency on K1
JavaScript
  • KT-89449 Kotlin/JS: Member names no longer minified in production
  • KT-89363 KJS. Regular class with companion can't extend external class
Tools. Compiler plugins. Serialization
  • KT-89275 Kotlin/Wasm: Invalid Wasm is emitted for a @Serializable generic class with a class upper bound
Tools. Gradle. Native
  • KT-89285 SwiftPM import results in flooded log
  • KT-86251 K/N: Flaky linkDebugTestLinuxX64 failure with "truncated or malformed archive" on libstdlib-cache.a
Tools. Scripts
  • KT-89247 Kotlin Script: NoClassDefFoundError on 2nd execution with transitive dependency from imported script
  • KT-89220 JSR-223: generic Java bindings break all subsequent eval() calls
  • KT-88458 Audit closeable resource usage
  • KT-88453 VirtualFileScriptSource.text leaks an unclosed file stream — script source file handle held until GC, blocks file deletion on Windows

Configuration

📅 Schedule: (UTC)

  • Branch creation
    • At any time (no schedule defined)
  • Automerge
    • At any time (no schedule defined)

🚦 Automerge: Enabled.

♻ Rebasing: Whenever PR is behind base branch, 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 requested a review from skydoves as a code owner September 10, 2026 02:08
@renovate
renovate Bot force-pushed the renovate/kotlin branch from c7b3c6a to 1471612 Compare October 8, 2026 10:04
@renovate renovate Bot changed the title Update dependency com.google.devtools.ksp to v2.3.12 Update Kotlin, KSP and Compose Compiler Oct 8, 2026
@renovate
renovate Bot force-pushed the renovate/kotlin branch 3 times, most recently from ff640e4 to 6a07b3e Compare October 13, 2026 19:04
@renovate
renovate Bot force-pushed the renovate/kotlin branch from 6a07b3e to 61107e5 Compare October 13, 2026 23:25
@renovate
renovate Bot merged commit 69f596f into main Oct 14, 2026
4 checks passed
@renovate
renovate Bot deleted the renovate/kotlin branch October 14, 2026 01:24
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.

0 participants