Kotlin Symbol Processing

Developer ToolsApache-2.0

Kotlin's annotation-processing API — what Room and its neighbours generate code through.

Latest 2.3.11 · by GoogleWritten in KotlinWebsitegoogle/kspRSS

Release activity

Release activity — 11 releases across 11 days since Nov 6, 2025. Each cell is one day; darker means more releases that day. Nothing is recorded before Nov 6, 2025. Older weeks are hidden at this screen width.
JunJulAugSep
SundayNo releases on May 24, 2026No releases on May 31, 2026No releases on Jun 7, 2026No releases on Jun 14, 2026No releases on Jun 21, 2026No releases on Jun 28, 2026No releases on Jul 5, 2026No releases on Jul 12, 2026No releases on Jul 19, 2026No releases on Jul 26, 2026No releases on Aug 2, 2026No releases on Aug 9, 2026No releases on Aug 16, 2026No releases on Aug 23, 2026No releases on Aug 30, 2026No releases on Sep 6, 2026
MondayNo releases on May 25, 2026No releases on Jun 1, 2026No releases on Jun 8, 2026No releases on Jun 15, 2026No releases on Jun 22, 2026No releases on Jun 29, 2026No releases on Jul 6, 2026No releases on Jul 13, 2026No releases on Jul 20, 2026No releases on Jul 27, 20261 release on Aug 3, 2026No releases on Aug 10, 2026No releases on Aug 17, 2026No releases on Aug 24, 2026No releases on Aug 31, 2026No releases on Sep 7, 2026
Tuesday1 release on May 26, 2026No releases on Jun 2, 2026No releases on Jun 9, 2026No releases on Jun 16, 2026No releases on Jun 23, 2026No releases on Jun 30, 2026No releases on Jul 7, 2026No releases on Jul 14, 2026No releases on Jul 21, 2026No releases on Jul 28, 2026No releases on Aug 4, 2026No releases on Aug 11, 2026No releases on Aug 18, 2026No releases on Aug 25, 2026No releases on Sep 1, 2026No releases on Sep 8, 2026
WednesdayNo releases on May 27, 2026No releases on Jun 3, 2026No releases on Jun 10, 2026No releases on Jun 17, 2026No releases on Jun 24, 2026No releases on Jul 1, 2026No releases on Jul 8, 2026No releases on Jul 15, 2026No releases on Jul 22, 2026No releases on Jul 29, 2026No releases on Aug 5, 2026No releases on Aug 12, 2026No releases on Aug 19, 2026No releases on Aug 26, 2026No releases on Sep 2, 2026
ThursdayNo releases on May 28, 2026No releases on Jun 4, 2026No releases on Jun 11, 2026No releases on Jun 18, 2026No releases on Jun 25, 2026No releases on Jul 2, 20261 release on Jul 9, 2026No releases on Jul 16, 2026No releases on Jul 23, 2026No releases on Jul 30, 2026No releases on Aug 6, 2026No releases on Aug 13, 2026No releases on Aug 20, 2026No releases on Aug 27, 2026No releases on Sep 3, 2026
FridayNo releases on May 29, 2026No releases on Jun 5, 2026No releases on Jun 12, 2026No releases on Jun 19, 2026No releases on Jun 26, 2026No releases on Jul 3, 2026No releases on Jul 10, 2026No releases on Jul 17, 2026No releases on Jul 24, 2026No releases on Jul 31, 2026No releases on Aug 7, 2026No releases on Aug 14, 2026No releases on Aug 21, 2026No releases on Aug 28, 2026No releases on Sep 4, 2026
SaturdayNo releases on May 30, 2026No releases on Jun 6, 2026No releases on Jun 13, 2026No releases on Jun 20, 2026No releases on Jun 27, 2026No releases on Jul 4, 2026No releases on Jul 11, 2026No releases on Jul 18, 2026No releases on Jul 25, 2026No releases on Aug 1, 2026No releases on Aug 8, 2026No releases on Aug 15, 2026No releases on Aug 22, 2026No releases on Aug 29, 2026No releases on Sep 5, 2026

11 releases since Nov 6, 2025

Changelog

2.3.11

Latest
Added 3
  • Support org.gradle.isolated-projects for project isolation
  • Add org.gradle.isolated-projects=true to KSP Gradle properties reference table
  • Add KSP Gradle properties reference table to README documentation
Changed 3
  • Clean output directories instead of skipping tasks when processor classpath transitions to empty
  • Document collection values in KSValueArgument.value
  • Update error messaging for ksp.useKSP2 deprecation notice
Fixed 3
  • Fix premature kspDebugAndroidTest task skipping on Android library modules
  • Fix missing parent declaration exception for @NotNull annotations during incremental compilation
  • Fix build cache misses by marking KspGradleConfig.logLevel as @Internal

From Kotlin Symbol Processing

What's Changed
  • Support org.gradle.isolated-projects for project isolation (#3051)
  • Fix premature kspDebugAndroidTest task skipping on Android library modules (#3050)
  • Fix missing parent declaration exception for @NotNull annotations during incremental compilation (#3030)
  • Clean output directories instead of skipping tasks when processor classpath transitions to empty (#3046)
  • Fix build cache misses by marking KspGradleConfig.logLevel as @Internal (#3039)
  • Add org.gradle.isolated-projects=true to KSP Gradle properties reference table (#3076)
  • Add KSP Gradle properties reference table to README documentation (#3070)
  • Document collection values in KSValueArgument.value (#3069)
  • Update error messaging for ksp.useKSP2 deprecation notice (#3066)
Contributors
  • Thanks to @simonlebras, @ChristianKatzmann, @Yong-yuan-X, @bacecek, @KlyneChrysler, @Shaurya2k06, and everyone who reported bugs and participated in discussions!

Full Changelog: https://github.com/google/ksp/compare/2.3.10...2.3.11

View originalPermalink
How 2.3.11 went

2.3.10

Added 2
  • Include kotlinx.coroutines in the distributed uber jar symbol-processing-aa-embeddable
  • New debugging features for incremental compilation, including additional logging and dependency graph visualization
Changed 1
  • Memoized hash code for KSTypeImpl to speed up processing
Fixed 10
  • Fix OOMs caused by unstopped coroutine Dispatcher threads by moving KSP task cache to a gradle build service
  • Sanitize ':' in internal-name module suffix so KSP works with Kotlin 2.4.0 default module names
  • Filter source file trees in KspAATask to restore NO-SOURCE skipping behaviour
  • Fix R-class resolution in KSP when AGP 9 built-in Kotlin is enabled
  • Fix KSP2 incremental cache path normalization mismatch
  • Normalize line endings for KspAATask source roots to prevent cross-platform remote build cache misses
Deprecated 1
  • Deprecate the ksp(...) Gradle configuration in Kotlin Multiplatform (KMP) projects in favor of target-specific configurations

From Kotlin Symbol Processing

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
  • Thanks to @mvanhorn, @Yong-yuan-X, @MariusVolkhart, @shmuelr and everyone who reported bugs and participated in discussions!

Full Changelog: https://github.com/google/ksp/compare/2.3.9...2.3.10

View originalPermalink
How 2.3.10 went

2.3.9

Fixed 2
  • Cleaned up native cross-compilation support checks to prevent Gradle Configuration Cache invalidation
  • Fixed a compilation performance regression in PsiResolutionStrategy introduced in 2.3.8

From Kotlin Symbol Processing

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: https://github.com/google/ksp/compare/2.3.8...2.3.9

View originalPermalink
How 2.3.9 went

2.3.8

Changed 3
  • Enabled new default annotation use-site rules in Kotlin's Analysis API for more information
  • Enabled ksp.project.isolation by default when Gradle isolated projects are enabled
  • Improved getSymbolsWithAnnotation performance by implementing a new PSI-based resolution strategy

From Kotlin Symbol Processing

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: https://github.com/google/ksp/compare/2.3.7...2.3.8

View originalPermalink
How 2.3.8 went

2.3.7

Changed 1
  • Bumped Kotlin target language version to 2.3
Fixed 2
  • Fixed crash caused by upstream dependency
  • Fixed support for Gradle Isolated Projects

From Kotlin Symbol Processing

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: https://github.com/google/ksp/compare/2.3.6...2.3.7

View originalPermalink
How 2.3.7 went

2.3.6

Added 2
  • Added symbol-processing-api and common-deps to compile dependencies
  • Added support for nested typealias Kotlin language feature
Changed 2
  • Improved the detection of built-in Kotlin by removing the reliance on KotlinBaseApiPlugin
  • Back-ported a performance optimization in the Intellij / Analysis API
Fixed 3
  • Fixed an issue where module recompilation would fail on Windows environments when KSP2 was enabled
  • Resolved an issue where generated Java sources were ignored when using Android Kotlin Multiplatform with IP-compatible paths
  • Fixed a KSP version 2.3.5 CI error exception that does not break build checks
Security 1
  • Exclude jdbc package from log4j to prevent vulnerability issue

From Kotlin Symbol Processing

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
  • Thanks to @salmanmkc, @jaschdoc, @gurusai-voleti and everyone who reported bugs and participated in discussions!

Full Changelog: https://github.com/google/ksp/compare/2.3.5...2.3.6

View originalPermalink
How 2.3.6 went

2.2.21-2.0.5

Added 1
  • A new Gradle property flag warn.on.ksp1.usage was added to mute warnings about KSP1 usage

From Kotlin Symbol Processing

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: https://github.com/google/ksp/compare/2.2.21-2.0.4...2.2.21-2.0.5

View originalPermalink
How 2.2.21-2.0.5 went

2.3.5

Fixed 3
  • KSPCoreEnvironment.instance_prop memory leak when used programmatically
  • Missing first annotation argument when toByte is used
  • Circular dependency between KSP and KAPT in AGP 9.0

From Kotlin Symbol Processing

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: https://github.com/google/ksp/compare/2.3.4...2.3.5

View originalPermalink
How 2.3.5 went

2.3.4

Fixed 3
  • KSP ignores sources in Kotlin directory
  • Avoid recording Java symbol lookups in non-incremental builds
  • Clean up ThreadLocals when processing is done

From Kotlin Symbol Processing

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: https://github.com/google/ksp/compare/2.3.3...2.3.4

View originalPermalink
How 2.3.4 went

2.3.3

Changed 1
  • Migrate away from a deprecated compilerOptions KGP API

From Kotlin Symbol Processing

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: https://github.com/google/ksp/compare/2.3.2...2.3.3

View originalPermalink
How 2.3.3 went

2.3.2

Fixed 2
  • KSP incorrectly processed specific nullable annotations from Java interfaces, leading to incorrect nullability in the generated Kotlin code
  • Regression that caused runtime failures for projects using AGP 8.8.0 and older due to an incompatible, version-specific type check

From Kotlin Symbol Processing

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: https://github.com/google/ksp/compare/2.3.1...2.3.2

View originalPermalink
How 2.3.2 went
View all

Discussion

If you publish Kotlin Symbol Processing, you can claim this product by proving you administer its repository.