Skip to content

Conversation

@renovate
Copy link
Contributor

@renovate renovate bot commented Apr 1, 2025

This PR contains the following updates:

Package Change Age Confidence
androidx.compose.material3:material3 (source) 1.3.1 -> 1.4.0 age confidence
me.saket.telephoto:zoomable 0.15.1 -> 0.18.0 age confidence
androidx.work:work-runtime-ktx (source) 2.10.0 -> 2.11.0 age confidence
androidx.webkit:webkit (source) 1.13.0-rc01 -> 1.14.0 age confidence
androidx.room:room-runtime (source) 2.6.1 -> 2.8.3 age confidence
androidx.room:room-ktx (source) 2.6.1 -> 2.8.3 age confidence
androidx.room:room-compiler (source) 2.6.1 -> 2.8.3 age confidence
androidx.navigation:navigation-compose (source) 2.8.8 -> 2.9.6 age confidence
com.tencent:mmkv 2.1.0 -> 2.2.4 age confidence
com.airbnb.android:lottie-compose 6.6.2 -> 6.7.1 age confidence
androidx.compose:compose-bom 2025.02.00 -> 2025.11.00 age confidence
androidx.activity:activity-compose (source) 1.10.1 -> 1.11.0 age confidence
androidx.lifecycle:lifecycle-runtime-ktx (source) 2.8.7 -> 2.9.4 age confidence
io.ktor:ktor-serialization-gson 3.1.1 -> 3.3.2 age confidence
io.ktor:ktor-client-logging 3.1.1 -> 3.3.2 age confidence
io.ktor:ktor-client-core 3.1.1 -> 3.3.2 age confidence
io.ktor:ktor-client-content-negotiation 3.1.1 -> 3.3.2 age confidence
io.ktor:ktor-client-android 3.1.1 -> 3.3.2 age confidence
org.jetbrains.kotlinx:kotlinx-coroutines-core 1.10.1 -> 1.10.2 age confidence
androidx.test.espresso:espresso-core 3.6.1 -> 3.7.0 age confidence
com.google.devtools.ksp (source) 2.1.10-1.0.31 -> 2.3.2 age confidence
androidx.test.ext:junit 1.2.1 -> 1.3.0 age confidence
androidx.core:core-ktx (source) 1.15.0 -> 1.17.0 age confidence
org.jetbrains.kotlin.plugin.compose (source) 2.1.10 -> 2.2.21 age confidence
org.jetbrains.kotlin.android (source) 2.1.10 -> 2.2.21 age confidence
androidx.javascriptengine:javascriptengine (source) 1.0.0-beta01 -> 1.0.0 age confidence
androidx.concurrent:concurrent-futures-ktx (source) 1.2.0 -> 1.3.0 age confidence
org.apache.commons:commons-compress (source) 1.27.1 -> 1.28.0 age confidence
io.coil-kt.coil3:coil-video 3.1.0 -> 3.3.0 age confidence
io.coil-kt.coil3:coil-network-okhttp 3.1.0 -> 3.3.0 age confidence
io.coil-kt.coil3:coil-gif 3.1.0 -> 3.3.0 age confidence
io.coil-kt.coil3:coil-compose 3.1.0 -> 3.3.0 age confidence
io.github.Rosemoe.sora-editor:bom 0.23.5 -> 0.23.6 age confidence
com.android.library (source) 8.8.2 -> 8.13.1 age confidence
com.android.application (source) 8.8.2 -> 8.13.1 age confidence
com.google.accompanist:accompanist-permissions 0.37.2 -> 0.37.3 age confidence

Release Notes

saket/telephoto (me.saket.telephoto:zoomable)

v0.18.0

Compare Source

Improvements

  • #​162: Added support for rendering images flipped using exif metadata

v0.17.0

Compare Source

Highlights

  • #​45, #​88, #​140, #​150, #​152, #​158: Upscaled images can now be zoomed.
  • #​135: Zoom to a specific pixel using ZoomFocalPoint:
    val imageState = rememberZoomableImageState()
    imageState.zoomableState.zoomTo(
      zoomFactor = 2f,
      focal = ZoomFocalPoint.moveToViewportCenter(…), // or zoomAround()
    )
  • #​141: Selectively disable zooming or panning:
    ZoomableAsyncImage(
      model = "https://dog.ceo",
      contentDescription = "",
      gestures = EnabledZoomGestures.ZoomOnly,  // or PanOnly
    )

⚠️ Potentially breaking changes

  • When a small image is upscaled to fit the viewport, its starting scale can be larger than its maximum zoom limit. In such cases, the image wouldn't respond to zoom gestures. telephoto now automatically increases the max zoom limit when this happens, ensuring the image can still be zoomed.
    • To disable this, pass DynamicZoomSpec.fixed(…) to rememberZoomableState().
    • If you're using a custom DoubleClickToZoomListener listener, review its behavior with small images.
  • The receiver of DoubleClickToZoomListener#onDoubleClick() has changed. This API was already marked experimental.
  • FlickToDismiss() now uses rubber banding. More on this below.

Improvements

  • ZoomableImage() / Modifier.zoomable
    • Added DynamicZoomSpec for lazy calculation of zoom limits using the layout info.
    • Improved zooming using mouse-wheel scrolls on JVM.
    • Migrated to LocalHapticFeedback so haptics can be customized or disabled.
  • SubSamplingImage()

Bug fixes

  • #​146: Added missing contentPadding param to ZoomableAsyncImage() (by @​xertrec).
  • #​160: Fixed ignored overzoom effect for under-zooms (by @​FooIbar).
  • Fixed broken double-click zooming for images that use ContentScale.FillBounds.
  • zoomTo() and zoomBy() no longer crash when given invalid or out-of-bound zoom factors.

Unreleased libraries

This release also includes updates to FlickToDismiss(). While it hasn't been officially released yet, some major apps have already started using it. I plan to announce it soon, but in the meantime here are the changes:

  • Improved drag physics and added a rubber banding effect. You can customize this via rememberFlickToDismissState().
  • A haptic feedback is now played when the dismiss threshold is crossed. This can customized via LocalHapticFeedback.

v0.16.0

Compare Source

Highlights

  • Spatial geometry types: A new system of spatial geometry makes it easy to convert coordinates between the viewport and the zoomable content's coordinate space: SpatialOffset and SpatialRect. See these recipes for their usage examples:

  • Content padding: Modifier.zoomable() and ZoomableImage() now accept a contentPadding parameter. This is similar to using Modifier.padding, but allows the zoomable content to display and receive touch events in the padded region. This is intended to be used by image croppers.

  • A new sample demonstrating how telephoto can be used to build image croppers.

image.cropper.mp4

Other changes

Bug fixes

  • #​139: Fixed ConnectivityManager$TooManyRequestsException in ZoomableAsyncImage
  • Small fixes for improved state restoration

Dependency updates

  • Kotlin 2.1.20
  • Compose Multiplatform 1.8.0
Tencent/MMKV (com.tencent:mmkv)

v2.2.4

This is a hotfix release mainly for iOS/macOS CocoaPods users.

Changes for All platforms
  • Improve the performance of MMBuffer a little bit in some cases.
iOS/macOS
  • Make MMKV and MMKVCore podspec define modules.

v2.2.3

This is a feature release that brings full desktop support to Flutter. It also includes key bug fixes and enhancements for Android and other platforms.

Flutter
  • Added Full Desktop Support: MMKV for Flutter now officially supports Windows, macOS, and Linux.
  • Example App: The example application has been updated to run on all new desktop platforms.
Android
  • Feature: Added MMKVHandler.getNativeLogHandler() to allow native handling of MMKV logs from C++ code, improving performance.
  • Fix: Corrected an integer overflow bug where a native memory address exceeding Long.MAX_VALUE was misinterpreted as a negative number.
  • Fix: Prevented potential memory overflow by ensuring JNI local references are deleted after use.
  • Fix: Fixed an issue where directories for special relative paths were not being created correctly.
  • Enhancement: Improved the thread-safety of the callback handler to prevent crashes.
iOS/macOS
  • Fix: Resolved a build error on Apple platforms that occurred when the MMKV_APPLE flag was not set.
  • Fix: Addressed a naming conflict in the Swift implementation.
Windows
  • Fix: Corrected character encoding issues in the Win32 demo by converting files to UTF-8.

v2.2.2

This is a hot fix version mainly for Android/Linux platforms. It’s highly recommended for v2.2.0~v2.2.1 users.

Changes for All platforms
  • Improve file lock consistency for Mayfly FD MMKV instances.
Android
  • Fix a potential ANR on multi-process mode MMKV init/creation.
POSIX
  • Fix a potential ANR on multi-process mode MMKV init/creation on Linux.
iOS/macOS
  • Retain the callback handler to prevent a potential short-lived callback handler from crashing.
Win32
  • Improve efficiency on MMKV instance init/creation.

v2.2.1

Changes for All platforms
  • Add importFrom().
Android
  • Fix a bug on initialization.

v2.2.0

We introduce the Mayfly FD (short-lived file descriptor) enhancement, reducing MMKV's fd footprint by half and more. For a single-process mode MMKV instance, the fd footprint is reduced to zero (except Android/OHOS, details below). For a multi-process mode MMKV instance, the fd footprint is reduced by half, for we still need a long-lived fd to inter-process lock the shared memory.

Changes for All platforms
  • Add Mayfly FD (short-lived file descriptor) enhancement.
  • Improve multi-process access efficiency by about 20%.
  • Add checkExist() to check if a MMKV instance exists on disk.
  • Drop deprecated armv7 AES hardware acceleration.
Android
  • Reduce the fd footprint by half. For a single-process mode MMKV instance, we still need a long-lived fd to support the process-mode checker and legacy name upgrading. In the far future, when all legacy names have been upgraded, we might drop the long-lived fd like other platforms.
  • Upgrade Android compileSdk/targetSdk to 35, NDK to 28.1, Java to 11, Gradle to 8.11.1, and AGP to 8.9.2.
HarmonyOS NEXT
  • Reduce the fd footprint by half. For a single-process mode MMKV instance, we still need a long-lived fd to support the legacy name upgrading. In the far future, when all legacy names have been upgraded, we might drop the long-lived fd like other platforms.
  • Drop checkProcessMode(), it’s never been used.
  • Improve obfuscation configuration with relative path.
iOS
  • Add +mmkvGroupPath to get the group folder for MMKV multi-process storage.
Flutter
  • Add isFileValid().
  • Add groupPath() on iOS.
  • Fix checkContentChangedByOuterProcess() not working bug.
airbnb/lottie-android (com.airbnb.android:lottie-compose)

v6.7.1

  • Safeguard against very large Bitmap creation (#​2662)

v6.7.0

New Features

v6.6.10

  • Add RTL support to lottie-android (#​2663)
  • Make lottieComposition public (#​2660)

v6.6.9

  • Fix transparent background rendering with MULTIPLY Blend mode on Android 34+ (#​2661)

v6.6.7

  • Fix crash when drawing shadow on image using RenderNode (#​2635)

v6.6.6

  • Guard against Bitmap allocations of size 0 (#​2626)

v6.6.4

v6.6.3

  • Support system property to set a testing executor (#​2613)
  • Fix a radial gradient crash (#​2611)
  • Fix a bitmap crash (#​2578)
ktorio/ktor (io.ktor:ktor-serialization-gson)

v3.3.2

Compare Source

Published 5 November 2025

Improvements
  • WebRTC Client. Remove redundant targets (KTOR-9062)
  • Add Socks proxy support to Darwin engine (KTOR-8968)
  • Java: Improve error message when SOCKS proxy is used (KTOR-2908)
Bugfixes
  • HttpRequestRetry: SendCountExceedException when max retries is more than maxSendCount of HttpSend (KTOR-5850)
  • Darwin: The maxFrameSize option has no effect (KTOR-6963)
  • OpenAPI: StackOverflowError when a response object has property with @​Contextual serializer (KTOR-8878)
  • OpenAPI gen: missing KDoc fields (KTOR-9021)
  • Server call.request.path() returns routing selectors in path (KTOR-7639)
  • StaticContent doesn't allow siblings (KTOR-9012)
  • HttpCache: FileStorage doesn't use given dispatcher for all file operations (KTOR-8832)
  • Curl: SOCKS proxy doesn't work (KTOR-9008)
  • Netty: java.lang.VerifyError is thrown on Android since 3.3.0 (KTOR-8916)
  • Response body channel is canceled while the body is being saved when having HttpRequestRetry and onDownload (KTOR-8975)
  • HttpCache: InvalidCacheStateException when varyKeys stored in files contain uppercase letters since 3.3.0 (KTOR-8970)

v3.3.1

Compare Source

Published 8 October 2025

Improvements
  • Add a note about SSE session lifetime in KDoc (KTOR-8440)
  • Update Kotlin to 2.2.20 (KTOR-8896)
Bugfixes
  • NumberFormatException when Content-Length header value contains null bytes (KTOR-4828)
  • SerializationException: Serializer for class 'ClientSSESession' is not found when server responds with JSON (KTOR-7631)
  • Netty: loadConfiguration missing enableHttp2 and enableH2c properties (KTOR-8898)
  • Netty: EmbeddedServer.stop always blocks for twice of shutdownGracePeriod (KTOR-8770)
  • shutdownGracePeriod is used instead of shutdownTimeout in EmbeddedServer.stop() (KTOR-8771)
  • Support serving static resources within bootJar (KTOR-8592)

v3.3.0

Compare Source

Published 11 September 2025

Features
  • Support for server side http2 without tls (h2c) (KTOR-4750)
  • OpenAPI generation build extension preview (KTOR-8721)
  • Serve static resources with caching headers and ETag based on sha256 of content (KTOR-6700)
  • Jetty engine: Upgrade Jetty dependencies to the latest version 12 (KTOR-6734)
  • Static content: Support a custom respond logic if the file is not found (KTOR-8496)
  • Upgrade OkHttp to version 5.0.0 (KTOR-8652)
  • WebRTC Client, Android + WASM (KTOR-7958)
Improvements
  • SSE: Cannot read response body from SSEClientException (KTOR-8165)
  • SSE: "SSEClientException: Content-Length mismatch" on saving response body in DefaultResponseValidation (KTOR-8753)
  • var Route.staticRootFolder: File? should be deprecated (KTOR-5836)
  • Add image/bmp to the ContentType (KTOR-8735)
  • Add some missing image content types (KTOR-8624)
  • Upgrade to Kotlin 2.2 (KTOR-8647)
  • Bump Kotlin API level to 2.2 (KTOR-8637)
  • CIO: The engine ignores system proxy settings (KTOR-5922)
Bugfixes
  • Performance regression when using ContentEncoding and HttpRequestRetry since 3.2.0 (KTOR-8820)
  • Big number of simultaneous outbound web socket connections leads to a coroutine deadlock (KTOR-8829)
  • DI: JobCancellationException during cleanup (KTOR-8785)
  • Autoreloading: JobCancellationException when app is reloaded in the debugger since 3.2.0 (KTOR-8810)
  • HttpRedirect: The client is redirected when no Location header in response (KTOR-8697)
  • SerializationException when Application.propertyOrNull() is called with type Map<String, Any?> (KTOR-8781)
  • "Failed resolution of: Ljava/lang/management/ManagementFactory" on Android when JvmGcMetrics are initialized (KTOR-8714)
  • HttpCache: all header values but first in HttpResponse.varyKeys() are ignored (KTOR-6402)
  • HttpCache: plugin selects wrong cache entry when filtering Vary headers with different case (KTOR-7621)
  • CountedByteWriteChannel: autoFlush of the source channel doesn't make the channel auto flushing (KTOR-8411)

v3.2.3

Compare Source

Published 29 July 2025

Improvements
  • Server only accepts yaml as the configuration file suffix (KTOR-8712)
  • JS / WASM error when process global is undefined (KTOR-8686)
  • DI async duplicate resolution (KTOR-8681)
Bugfixes
  • CIO: Expect 100-continue response is missing a final \r\n (KTOR-8687)
  • Intermittent "ParserException: No colon in HTTP header" when parsing multipart request (KTOR-8523)
  • Infinite loop in ByteReadChannel.readFully (KTOR-8682)
  • ShutDownUrl: The server cannot shut down since 3.2.0 (KTOR-8674)

v3.2.2

Compare Source

Published 14 July 2025

Improvements
  • SSE: Change the order of SSE field serialization: put event before data (KTOR-8627)
Bugfixes
  • CORS: server replies with the 405 status code on a preflight request when the plugin is installed in a route (KTOR-4499)
  • Darwin: The Content-Encoding header is removed since 3.0.3 (KTOR-8526)
  • JS/WASM: response doesn't contain the Content-Length header in a browser (KTOR-8377)
  • StatusPages: response headers of OutgoingContent aren't available in the status handlers (KTOR-8232)
  • testApplication: The client.sse() acts like a REST call and not a stream in test environment (KTOR-7910)
  • Config deserialization - default properties problem (KTOR-8654)
  • kotlinx.datetime is not available transitively in 3.2.1 (KTOR-8656)
  • Request builder block overrides HTTP method in specific request builders (get, post, etc) (KTOR-8636)

v3.2.1

Compare Source

Published 3 July 2025

Improvements
  • Replace kotlinx.datetime APIs with kotlin.time (KTOR-8635)
  • Thymeleaf: null values in template model (KTOR-8559)
  • Publish Javadoc as a maven artifact (KTOR-3962)
  • Netty: Invalid hex byte with malformed query string (KTOR-2934)
Bugfixes
  • "Space characters in SimpleName" error when executing R8 mergeExtDex task with 3.2.0 (KTOR-8583)
  • ForwardedHeaders: the plugin does not handle parameters case-insensitively (KTOR-8622)
  • Potential race condition in socket.awaitClosed (hangs indefinitely) since 3.2.0 (KTOR-8618)
  • Module parameter type Application.() -> kotlin.Unit is not supported in 3.2.0 (KTOR-8602)
  • OkHttp: java.net.ProtocolException when sending MultiPartFormDataContent with onUpload (KTOR-6790)
  • OAuth2 authentication provider breaks form-urlencoded POST requests when receiving request body (KTOR-4420)
  • 404 for a link in KDoc for io.ktor.server.plugins.contentnegotiation.ContentNegotiation (KTOR-8597)
  • Ktor fails to boot with default jvminline argument (KTOR-8608)
  • Flow invariant is violated since 3.2.0 (KTOR-8606)
  • ResponseSent hook handler of the plugin installed into a route isn't executed when an exception is thrown from the route (KTOR-6794)

v3.2.0

Compare Source

Published 12 June 2025

Features
  • Dependency injection Ktor extension (KTOR-8267)
  • Support Version Catalog (KTOR-8162)
  • Unix domain socket support at the Ktor Engine level (KTOR-4766)
  • Allow suspend Ktor modules (KTOR-8005)
  • Ability to use browser cookie storage (KTOR-539)
  • Configuration file deserialization (KTOR-7874)
  • HttpCache: Support evicting/clearing cache (KTOR-6653)
  • File configuration for dependencies (KTOR-8304)
Improvements
  • Excessive allocation of ApplicationConfig when loading multiple files from CLI (KTOR-8563)
  • Linux curl engine doesn't work for simultaneous websocket and http request (KTOR-8259)
  • ktor-network produces ProGuard warning (KTOR-8525)
  • More overloads for StringValuesBuilder.appendAll (KTOR-8573)
  • HttpClientCall: Deprecate wrapWithContent and wrap (KTOR-8378)
  • Add a way to create an ApplicationCall for testing (KTOR-7607)
  • Configuration access API improvements (KTOR-8185)
  • Application instance access in testApplication (KTOR-8215)
  • The TestApplication client should be configurable and mutable (KTOR-8465)
  • Support accessing resolved IP address on an instance of io.ktor.network.sockets.InetSocketAddress (KTOR-8490)
  • Deprecate SaveBodyPlugin in favor of HttpClientCall.save (KTOR-8367)
  • Obscure log message on server startup (KTOR-8519)
  • Routing: accept should return 406 if the Accept header isn't matched (KTOR-8416)
  • MicrometerMetrics: the route label can exceed length limit (KTOR-7274)
  • Micrometer: Make route label configurable (KTOR-8183)
  • Add more common ContentType values (KTOR-7108)
Bugfixes
  • Logging/Darwin: IOException is thrown when detecting if body is a binary (KTOR-8581)
  • Netty: NoSuchElementException or empty headers when responding with 204 (KTOR-8528)
  • YAML configuration: NoSuchElementException when parameter is expanded with curly braces (KTOR-8575)
  • ApplicationConfig: Most of the content is absent after merging configs (KTOR-8565)
  • Android: "ProtocolException: TRACE does not support writing" when sending TRACE request (KTOR-8352)
  • The "Content-Length: 0" header is added for GET requests sent to some servers (KTOR-6508)
  • HttpRequestRetry: requests with some IOException's thrown by Java engine aren't retried (KTOR-6770)
  • HttpCookies: Encoding of request cookies is not preserved in CookiesStorage (KTOR-8343)
  • Url class mangles data URLs (KTOR-5708)
  • SaveBodyPlugin: Logging plugin consumes response body (KTOR-6474)
  • Config deserialization does not respect testApplication environment (KTOR-8436)
  • Resources: Exclude a parent from query params when it is an object (KTOR-8507)
  • BearerAuthProvider does not clear token if refreshTokens returns null (KTOR-8470)
  • Coroutines launched from RoutingContext are not cancelled upon server shutdown (KTOR-8338)
  • Application job is not joined during shutdown (KTOR-8291)
  • HttpCache: InvalidCacheStateException thrown when Vary header has different entries is overly severe (KTOR-8345)
  • Fix socket channel close handling (KTOR-8201)

v3.1.3

Compare Source

Published 5 May 2025

Improvements
  • Implement toString for staticContentRoute (KTOR-8451)
  • Don't send Authorization header for requests marked with markAsRefreshTokenRequest (KTOR-8107)
  • ByteChannel single-byte operations are slow (KTOR-8412)
  • Receiving multipart without Content-Length is very slow (KTOR-8407)
  • MicrometerMetrics: different path 404s requests can be abused to trigger OOM (KTOR-8276)
  • Compression & Static Content: No Vary Header when serving a compressed resource (KTOR-8326)
  • HttpTimeout: Reference to nonexistent INFINITE_TIMEOUT_MS in the exception message (KTOR-8358)
Bugfixes
  • Websockets: Unable to send a frame when ktor-serialization-kotlinx-json-jvm dependency is defined in Maven build (KTOR-7662)
  • OkHttp: Cancelling of SSE request job doesn't cancel the connection (KTOR-8409)
  • OkHttp: Exceptions are not propagated to flow collectors (KTOR-7947)
  • OOM in CountedByteReadChannel while copying from multipart/form-data part channel (KTOR-8317)
  • Apache5: "ProtocolException: OPTIONS request must have Content-Type header" is thrown when body isn't set (KTOR-8318)
  • Netty/Websockets: server processes hanging in CLOSE_WAIT state after many concurrent requests (KTOR-7965)
  • Update JTE to the version supporting Kotlin 2.1.0 (KTOR-8030)

v3.1.2

Compare Source

Published 27 March 2025

Improvements
Bugfixes
  • URL-safe base64 decoding problem (KTOR-8292)
  • Auth: AuthTokenHolder.clearToken executed in the middle of an ongoing token update doesn't actually clear (KTOR-8312)
  • Android: "Array has more than one element" error when starting a server with release build (KTOR-7298)
  • WebSockets: extensions in sec-websocket-extensions header must be separated by comma (KTOR-6384)
  • OkHttp: Cancelling of SSESession.incoming flow doesn't cancel connection (KTOR-8244)
Kotlin/kotlinx.coroutines (org.jetbrains.kotlinx:kotlinx-coroutines-core)

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.
google/ksp (com.google.devtools.ksp)

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

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.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

Configuration

📅 Schedule: Branch creation - "every 3 months on the first day of the month" (UTC), Automerge - At any time (no schedule defined).

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

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 added the dependencies label Apr 1, 2025
@renovate renovate bot force-pushed the renovate/gradle-dependencies branch 3 times, most recently from e86d068 to 572fee9 Compare April 10, 2025 03:34
@renovate renovate bot force-pushed the renovate/gradle-dependencies branch 5 times, most recently from cd52406 to daa5a65 Compare April 28, 2025 13:33
@renovate renovate bot force-pushed the renovate/gradle-dependencies branch 4 times, most recently from 1a7ea08 to 538df59 Compare May 7, 2025 23:38
@renovate renovate bot force-pushed the renovate/gradle-dependencies branch 4 times, most recently from 5ed9354 to e11aa1b Compare May 13, 2025 22:14
@renovate renovate bot force-pushed the renovate/gradle-dependencies branch 2 times, most recently from fa55fb7 to 10aaa23 Compare May 20, 2025 23:07
@renovate renovate bot force-pushed the renovate/gradle-dependencies branch 2 times, most recently from 0f890bc to c6ff1e4 Compare June 4, 2025 19:00
@renovate renovate bot force-pushed the renovate/gradle-dependencies branch 2 times, most recently from 61e8ccd to a187ff9 Compare June 12, 2025 19:08
@renovate renovate bot force-pushed the renovate/gradle-dependencies branch 5 times, most recently from ee4f0cf to 1034016 Compare June 23, 2025 16:41
@renovate renovate bot force-pushed the renovate/gradle-dependencies branch 2 times, most recently from 8fb03ff to 4517ca6 Compare June 25, 2025 21:49
@renovate renovate bot force-pushed the renovate/gradle-dependencies branch 2 times, most recently from e055c49 to 988c2f2 Compare August 31, 2025 10:45
@renovate renovate bot force-pushed the renovate/gradle-dependencies branch 6 times, most recently from f17d6a7 to f419a44 Compare September 13, 2025 02:13
@renovate renovate bot force-pushed the renovate/gradle-dependencies branch 3 times, most recently from 6d5f0d6 to 90658dc Compare September 18, 2025 22:39
@renovate renovate bot force-pushed the renovate/gradle-dependencies branch 2 times, most recently from a5b38af to 3d483a2 Compare September 25, 2025 10:12
@renovate renovate bot force-pushed the renovate/gradle-dependencies branch 6 times, most recently from c619120 to 7c1adde Compare October 8, 2025 18:47
@renovate renovate bot force-pushed the renovate/gradle-dependencies branch 4 times, most recently from 449bc96 to 4f01ecb Compare October 28, 2025 00:52
@renovate renovate bot force-pushed the renovate/gradle-dependencies branch 5 times, most recently from 9e77bc5 to 86db459 Compare November 6, 2025 22:58
@renovate renovate bot force-pushed the renovate/gradle-dependencies branch from 86db459 to f5ac0b4 Compare November 11, 2025 00:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant