mirror of
https://github.com/pachli/pachli-android.git
synced 2025-02-09 16:38:52 +01:00
[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Change | Age | Adoption | Passing | Confidence | |---|---|---|---|---|---| | [com.google.devtools.ksp](https://goo.gle/ksp) ([source](https://togithub.com/google/ksp)) | `2.0.0-1.0.22` -> `2.0.0-1.0.23` | [![age](https://developer.mend.io/api/mc/badges/age/maven/com.google.devtools.ksp/2.0.0-1.0.23?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/com.google.devtools.ksp/2.0.0-1.0.23?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/com.google.devtools.ksp/2.0.0-1.0.22/2.0.0-1.0.23?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/com.google.devtools.ksp/2.0.0-1.0.22/2.0.0-1.0.23?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | [com.google.devtools.ksp:com.google.devtools.ksp.gradle.plugin](https://goo.gle/ksp) ([source](https://togithub.com/google/ksp)) | `2.0.0-1.0.22` -> `2.0.0-1.0.23` | [![age](https://developer.mend.io/api/mc/badges/age/maven/com.google.devtools.ksp:com.google.devtools.ksp.gradle.plugin/2.0.0-1.0.23?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/com.google.devtools.ksp:com.google.devtools.ksp.gradle.plugin/2.0.0-1.0.23?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/com.google.devtools.ksp:com.google.devtools.ksp.gradle.plugin/2.0.0-1.0.22/2.0.0-1.0.23?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/com.google.devtools.ksp:com.google.devtools.ksp.gradle.plugin/2.0.0-1.0.22/2.0.0-1.0.23?slim=true)](https://docs.renovatebot.com/merge-confidence/) | | [org.jetbrains.kotlinx:kotlinx-coroutines-play-services](https://togithub.com/Kotlin/kotlinx.coroutines) | `1.4.1` -> `1.8.1` | [![age](https://developer.mend.io/api/mc/badges/age/maven/org.jetbrains.kotlinx:kotlinx-coroutines-play-services/1.8.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/org.jetbrains.kotlinx:kotlinx-coroutines-play-services/1.8.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/org.jetbrains.kotlinx:kotlinx-coroutines-play-services/1.4.1/1.8.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/org.jetbrains.kotlinx:kotlinx-coroutines-play-services/1.4.1/1.8.1?slim=true)](https://docs.renovatebot.com/merge-confidence/) | --- > [!WARNING] > Some dependencies could not be looked up. Check the Dependency Dashboard for more information. --- ### Release Notes <details> <summary>google/ksp (com.google.devtools.ksp)</summary> ### [`v2.0.0-1.0.23`](https://togithub.com/google/ksp/compare/2.0.0-1.0.22...2.0.0-1.0.23) [Compare Source](https://togithub.com/google/ksp/compare/2.0.0-1.0.22...2.0.0-1.0.23) </details> <details> <summary>Kotlin/kotlinx.coroutines (org.jetbrains.kotlinx:kotlinx-coroutines-play-services)</summary> ### [`v1.8.1`](https://togithub.com/Kotlin/kotlinx.coroutines/blob/HEAD/CHANGES.md#Version-181) [Compare Source](https://togithub.com/Kotlin/kotlinx.coroutines/compare/1.8.0...1.8.1) - Remove the `@ExperimentalTime` annotation from usages of `TimeSource` ([#​4046](https://togithub.com/Kotlin/kotlinx.coroutines/issues/4046)). Thanks, [@​hfhbd](https://togithub.com/hfhbd)! - Introduce a workaround for an Android bug that caused an occasional `NullPointerException` when setting the `StateFlow` value on old Android devices ([#​3820](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3820)). - No longer use `kotlin.random.Random` as part of `Dispatchers.Default` and `Dispatchers.IO` initialization ([#​4051](https://togithub.com/Kotlin/kotlinx.coroutines/issues/4051)). - `Flow.timeout` throws the exception with which the channel was closed ([#​4071](https://togithub.com/Kotlin/kotlinx.coroutines/issues/4071)). - Small tweaks and documentation fixes. ##### Changelog relative to version 1.8.1-Beta - `Flow.timeout` throws the exception with which the channel was closed ([#​4071](https://togithub.com/Kotlin/kotlinx.coroutines/issues/4071)). - Small documentation fixes. ### [`v1.8.0`](https://togithub.com/Kotlin/kotlinx.coroutines/blob/HEAD/CHANGES.md#Version-180) [Compare Source](https://togithub.com/Kotlin/kotlinx.coroutines/compare/1.7.3...1.8.0) - Implement the library for the Web Assembly (Wasm) for JavaScript ([#​3713](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3713)). Thanks [@​igoriakovlev](https://togithub.com/igoriakovlev)! - Major Kotlin version update: was 1.8.20, became 1.9.21. - On Android, ensure that `Dispatchers.Main != Dispatchers.Main.immediate` ([#​3545](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3545), [#​3963](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3963)). - Fixed a bug that caused `Flow` operators that limit cancel the upstream flow to forget that they were already finished if there is another such operator upstream ([#​4035](https://togithub.com/Kotlin/kotlinx.coroutines/issues/4035), [#​4038](https://togithub.com/Kotlin/kotlinx.coroutines/issues/4038)) - `kotlinx-coroutines-debug` is published with the correct Java 9 module info ([#​3944](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3944)). - `kotlinx-coroutines-debug` no longer requires manually setting `DebugProbes.enableCoroutineCreationStackTraces` to `false`, it's the default ([#​3783](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3783)). - `kotlinx-coroutines-test`: set the default timeout of `runTest` to 60 seconds, added the ability to configure it on the JVM with the `kotlinx.coroutines.test.default_timeout=10s` ([#​3800](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3800)). - `kotlinx-coroutines-test`: fixed a bug that could lead to not all uncaught exceptions being reported after some tests failed ([#​3800](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3800)). - `delay(Duration)` rounds nanoseconds up to whole milliseconds and not down ([#​3920](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3920)). Thanks [@​kevincianfarini](https://togithub.com/kevincianfarini)! - `Dispatchers.Default` and the default thread for background work are guaranteed to use the same context classloader as the object containing it them ([#​3832](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3832)). - It is guaranteed that by the time `SharedFlow.collect` suspends for the first time, it's registered as a subscriber for that `SharedFlow` ([#​3885](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3885)). Before, it was also true, but not documented. - Atomicfu version is updated to 0.23.1, and Kotlin/Native atomic transformations are enabled, reducing the footprint of coroutine-heavy code ([#​3954](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3954)). - Added a workaround for miscompilation of `withLock` on JS ([#​3881](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3881)). Thanks [@​CLOVIS-AI](https://togithub.com/CLOVIS-AI)! - Small tweaks and documentation fixes. ##### Changelog relative to version 1.8.0-RC2 - `kotlinx-coroutines-debug` no longer requires manually setting `DebugProbes.enableCoroutineCreationStackTraces` to `false`, it's the default ([#​3783](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3783)). - Fixed a bug that caused `Flow` operators that limit cancel the upstream flow to forget that they were already finished if there is another such operator upstream ([#​4035](https://togithub.com/Kotlin/kotlinx.coroutines/issues/4035), [#​4038](https://togithub.com/Kotlin/kotlinx.coroutines/issues/4038)) - Small documentation fixes. ### [`v1.7.3`](https://togithub.com/Kotlin/kotlinx.coroutines/blob/HEAD/CHANGES.md#Version-173) [Compare Source](https://togithub.com/Kotlin/kotlinx.coroutines/compare/1.7.2...1.7.3) - Disabled the publication of the multiplatform library metadata for the old (1.6 and earlier) KMP Gradle plugin ([#​3809](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3809)). - Fixed a bug introduced in 1.7.2 that disabled the coroutine debugger in IDEA ([#​3822](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3822)). ### [`v1.7.2`](https://togithub.com/Kotlin/kotlinx.coroutines/blob/HEAD/CHANGES.md#Version-172) [Compare Source](https://togithub.com/Kotlin/kotlinx.coroutines/compare/1.7.1...1.7.2) ##### Bug fixes and improvements - Coroutines debugger no longer keeps track of coroutines with empty coroutine context ([#​3782](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3782)). - `CopyableThreadContextElement` now properly copies an element when crossing the coroutine boundary in `flowOn` ([#​3787](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3787)). Thanks [@​wanyingd1996](https://togithub.com/wanyingd1996)! - Coroutine timeouts no longer prevent K/N `newSingleThreadContext` from closing ([#​3768](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3768)). - A non-linearizability in `Mutex` during `tryLock`/`unlock` sequence with owners is fixed ([#​3745](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3745)). - Atomicfu version is updated to 0.21.0. ### [`v1.7.1`](https://togithub.com/Kotlin/kotlinx.coroutines/blob/HEAD/CHANGES.md#Version-171) [Compare Source](https://togithub.com/Kotlin/kotlinx.coroutines/compare/1.7.0...1.7.1) ##### Bug fixes and improvements - Special characters in coroutine names in JSON dumps are supported ([#​3747](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3747)) - The binary compatibility of the experimental overload of `runTest` is restored ([#​3673](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3673)) - Channels that don't use `onUndeliveredElement` now allocate less memory ([#​3646](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3646)) ### [`v1.7.0`](https://togithub.com/Kotlin/kotlinx.coroutines/blob/HEAD/CHANGES.md#Version-170) [Compare Source](https://togithub.com/Kotlin/kotlinx.coroutines/compare/1.6.4...1.7.0) ##### Core API significant improvements - New `Channel` implementation with significant performance improvements across the API ([#​3621](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3621)). - New `select` operator implementation: faster, more lightweight, and more robust ([#​3020](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3020)). - `Mutex` and `Semaphore` now share the same underlying data structure ([#​3020](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3020)). - `Dispatchers.IO` is added to K/N ([#​3205](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3205)) - `newFixedThreadPool` and `Dispatchers.Default` implementations on K/N were wholly rewritten to support graceful growth under load ([#​3595](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3595)). - `kotlinx-coroutines-test` rework: - Add the `timeout` parameter to `runTest` for the whole-test timeout, 10 seconds by default ([#​3270](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3270)). This replaces the configuration of quiescence timeouts, which is now deprecated ([#​3603](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3603)). - The `withTimeout` exception messages indicate if the timeout used the virtual time ([#​3588](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3588)). - `TestCoroutineScheduler`, `runTest`, and `TestScope` API are promoted to stable ([#​3622](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3622)). - `runTest` now also fails if there were uncaught exceptions in coroutines not inherited from the test coroutine ([#​1205](https://togithub.com/Kotlin/kotlinx.coroutines/issues/1205)). ##### Breaking changes - Old K/N memory model is no longer supported ([#​3375](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3375)). - New generic upper bounds were added to reactive integration API where the language since 1.8.0 dictates ([#​3393](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3393)). - `kotlinx-coroutines-core` and `kotlinx-coroutines-jdk8` artifacts were merged into a single artifact ([#​3268](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3268)). - Artificial stackframes in stacktrace recovery no longer contain the `\b` symbol and are now navigable in IDE and supplied with proper documentation ([#​2291](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2291)). - `CoroutineContext.isActive` returns `true` for contexts without any job in them ([#​3300](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3300)). ##### Bug fixes and improvements - Kotlin version is updated to 1.8.20 - Atomicfu version is updated to 0.20.2. - `JavaFx` version is updated to 17.0.2 in `kotlinx-coroutines-javafx` ([#​3671](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3671)).. - JPMS is supported ([#​2237](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2237)). Thanks [@​lion7](https://togithub.com/lion7)! - `BroadcastChannel` and all the corresponding API are deprecated ([#​2680](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2680)). - Added all supported K/N targets ([#​3601](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3601), [#​812](https://togithub.com/Kotlin/kotlinx.coroutines/issues/812), [#​855](https://togithub.com/Kotlin/kotlinx.coroutines/issues/855)). - K/N `Dispatchers.Default` is backed by the number of threads equal to the number of available cores ([#​3366](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3366)). - Fixed an issue where some coroutines' internal exceptions were not properly serializable ([#​3328](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3328)). - Introduced `Job.parent` API ([#​3201](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3201)). - Fixed a bug when `TestScheduler` leaked cancelled jobs ([#​3398](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3398)). - `TestScope.timeSource` now provides comparable time marks ([#​3617](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3617)). Thanks [@​hfhbd](https://togithub.com/hfhbd)! - Fixed an issue when cancelled `withTimeout` handles were preserved in JS runtime ([#​3440](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3440)). - Ensure `awaitFrame` only awaits a single frame when used from the main looper ([#​3432](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3432)). Thanks [@​pablobaxter](https://togithub.com/pablobaxter)! - Obsolete `Class-Path` attribute was removed from `kotlinx-coroutines-debug.jar` manifest ([#​3361](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3361)). - Fixed a bug when `updateThreadContext` operated on the parent context ([#​3411](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3411)). - Added new `Flow.filterIsInstance` extension ([#​3240](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3240)). - `Dispatchers.Default` thread name prefixes are now configurable with system property ([#​3231](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3231)). - Added `Flow.timeout` operator as `@FlowPreview` ([#​2624](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2624)). Thanks [@​pablobaxter](https://togithub.com/pablobaxter)! - Improved the performance of the `future` builder in case of exceptions ([#​3475](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3475)). Thanks [@​He-Pin](https://togithub.com/He-Pin)! - `Mono.awaitSingleOrNull` now waits for the `onComplete` signal ([#​3487](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3487)). - `Channel.isClosedForSend` and `Channel.isClosedForReceive` are promoted from experimental to delicate ([#​3448](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3448)). - Fixed a data race in native `EventLoop` ([#​3547](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3547)). - `Dispatchers.IO.limitedParallelism(valueLargerThanIOSize)` no longer creates an additional wrapper ([#​3442](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3442)). Thanks [@​dovchinnikov](https://togithub.com/dovchinnikov)! - Various `@FlowPreview` and `@ExperimentalCoroutinesApi` are promoted to experimental and stable respectively ([#​3542](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3542), [#​3097](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3097), [#​3548](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3548)). - Performance improvements in `Dispatchers.Default` and `Dispatchers.IO` ([#​3416](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3416), [#​3418](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3418)). - Fixed a bug when internal `suspendCancellableCoroutineReusable` might have hanged ([#​3613](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3613)). - Introduced internal API to process events in the current system dispatcher ([#​3439](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3439)). - Global `CoroutineExceptionHandler` is no longer invoked in case of unprocessed `future` failure ([#​3452](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3452)). - Performance improvements and reduced thread-local pressure for the `withContext` operator ([#​3592](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3592)). - Improved performance of `DebugProbes` ([#​3527](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3527)). - Fixed a bug when the coroutine debugger might have detected the state of a coroutine incorrectly ([#​3193](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3193)). - `CoroutineDispatcher.asExecutor()` runs tasks without dispatching if the dispatcher is unconfined ([#​3683](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3683)). Thanks [@​odedniv](https://togithub.com/odedniv)! - `SharedFlow.toMutableList` and `SharedFlow.toSet` lints are introduced ([#​3706](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3706)). - `Channel.invokeOnClose` is promoted to stable API ([#​3358](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3358)). - Improved lock contention in `Dispatchers.Default` and `Dispatchers.IO` during the startup phase ([#​3652](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3652)). - Fixed a bug that led to threads oversubscription in `Dispatchers.Default` ([#​3642](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3642)). - Fixed a bug that allowed `limitedParallelism` to perform dispatches even after the underlying dispatcher was closed ([#​3672](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3672)). - Fixed a bug that prevented stacktrace recovery when the exception's constructor from `cause` was selected ([#​3714](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3714)). - Improved sanitizing of stracktrace-recovered traces ([#​3714](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3714)). - Introduced an internal flag to disable uncaught exceptions reporting in tests as a temporary migration mechanism ([#​3736](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3736)). - Various documentation improvements and fixes. Changelog for previous versions may be found in [CHANGES_UP_TO\_1.7.md](CHANGES_UP_TO\_1.7.md) ### [`v1.6.4`](https://togithub.com/Kotlin/kotlinx.coroutines/releases/tag/1.6.4) [Compare Source](https://togithub.com/Kotlin/kotlinx.coroutines/compare/1.6.3...1.6.4) - Added `TestScope.backgroundScope` for launching coroutines that perform work in the background and need to be cancelled at the end of the test ([#​3287](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3287)). - Fixed the POM of `kotlinx-coroutines-debug` having an incorrect reference to `kotlinx-coroutines-bom`, which cause the builds of Maven projects using the debug module to break ([#​3334](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3334)). - Fixed the `Publisher.await` functions in `kotlinx-coroutines-reactive` not ensuring that the `Subscriber` methods are invoked serially ([#​3360](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3360)). Thank you, [@​EgorKulbachka](https://togithub.com/EgorKulbachka)! - Fixed a memory leak in `withTimeout` on K/N with the new memory model ([#​3351](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3351)). - Added the guarantee that all `Throwable` implementations in the core library are serializable ([#​3328](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3328)). - Moved the documentation to <https://kotlinlang.org/api/kotlinx.coroutines/> ([#​3342](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3342)). - Various documentation improvements. ### [`v1.6.3`](https://togithub.com/Kotlin/kotlinx.coroutines/releases/tag/1.6.3) [Compare Source](https://togithub.com/Kotlin/kotlinx.coroutines/compare/1.6.2...1.6.3) - Updated atomicfu version to 0.17.3 ([#​3321](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3321)), fixing the projects using this library with JS IR failing to build ([#​3305](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3305)). ### [`v1.6.2`](https://togithub.com/Kotlin/kotlinx.coroutines/releases/tag/1.6.2) [Compare Source](https://togithub.com/Kotlin/kotlinx.coroutines/compare/1.6.1...1.6.2) - Fixed a bug with `ThreadLocalElement` not being correctly updated when the most outer `suspend` function was called directly without `kotlinx.coroutines` ([#​2930](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2930)). - Fixed multiple data races: one that might have been affecting `runBlocking` event loop, and a benign data race in `Mutex` ([#​3250](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3250), [#​3251](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3251)). - Obsolete `TestCoroutineContext` is removed, which fixes the `kotlinx-coroutines-test` JPMS package being split between `kotlinx-coroutines-core` and `kotlinx-coroutines-test` ([#​3218](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3218)). - Updated the ProGuard rules to further shrink the size of the resulting DEX file with coroutines ([#​3111](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3111), [#​3263](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3263)). Thanks, [@​agrieve](https://togithub.com/agrieve)! - Atomicfu is updated to `0.17.2`, which includes a more efficient and robust JS IR transformer ([#​3255](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3255)). - Kotlin is updated to `1.6.21`, Gradle version is updated to `7.4.2` ([#​3281](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3281)). Thanks, [@​wojtek-kalicinski](https://togithub.com/wojtek-kalicinski)! - Various documentation improvements. ### [`v1.6.1`](https://togithub.com/Kotlin/kotlinx.coroutines/releases/tag/1.6.1) [Compare Source](https://togithub.com/Kotlin/kotlinx.coroutines/compare/1.6.0...1.6.1) - Rollback of time-related functions dispatching on `Dispatchers.Main`. This behavior was introduced in 1.6.0 and then found inconvenient and erroneous ([#​3106](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3106), [#​3113](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3113)). - Reworked the newly-introduced `CopyableThreadContextElement` to solve issues uncovered after the initial release ([#​3227](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3227)). - Fixed a bug with `ThreadLocalElement` not being properly updated in racy scenarios ([#​2930](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2930)). - Reverted eager loading of default `CoroutineExceptionHandler` that triggered ANR on some devices ([#​3180](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3180)). - New API to convert a `CoroutineDispatcher` to a Rx scheduler ([#​968](https://togithub.com/Kotlin/kotlinx.coroutines/issues/968), [#​548](https://togithub.com/Kotlin/kotlinx.coroutines/issues/548)). Thanks [@​recheej](https://togithub.com/recheej)! - Fixed a memory leak with the very last element emitted from `flow` builder being retained in memory ([#​3197](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3197)). - Fixed a bug with `limitedParallelism` on K/N with new memory model throwing `ClassCastException` ([#​3223](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3223)). - `CoroutineContext` is added to the exception printed to the default `CoroutineExceptionHandler` to improve debuggability ([#​3153](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3153)). - Static memory consumption of `Dispatchers.Default` was significantly reduced ([#​3137](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3137)). - Updated slf4j version in `kotlinx-coroutines-slf4j` from 1.7.25 to 1.7.32. ### [`v1.6.0`](https://togithub.com/Kotlin/kotlinx.coroutines/releases/tag/1.6.0) [Compare Source](https://togithub.com/Kotlin/kotlinx.coroutines/compare/1.5.2...1.6.0) Note that this is a full changelog relative to the 1.5.2 version. Changelog relative to 1.6.0-RC3 can be found at the end. ##### kotlinx-coroutines-test rework - `kotlinx-coroutines-test` became a multiplatform library usable from K/JVM, K/JS, and K/N. - Its API was completely reworked to address long-standing issues with consistency, structured concurrency and correctness ([#​1203](https://togithub.com/Kotlin/kotlinx.coroutines/issues/1203), [#​1609](https://togithub.com/Kotlin/kotlinx.coroutines/issues/1609), [#​2379](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2379), [#​1749](https://togithub.com/Kotlin/kotlinx.coroutines/issues/1749), [#​1204](https://togithub.com/Kotlin/kotlinx.coroutines/issues/1204), [#​1390](https://togithub.com/Kotlin/kotlinx.coroutines/issues/1390), [#​1222](https://togithub.com/Kotlin/kotlinx.coroutines/issues/1222), [#​1395](https://togithub.com/Kotlin/kotlinx.coroutines/issues/1395), [#​1881](https://togithub.com/Kotlin/kotlinx.coroutines/issues/1881), [#​1910](https://togithub.com/Kotlin/kotlinx.coroutines/issues/1910), [#​1772](https://togithub.com/Kotlin/kotlinx.coroutines/issues/1772), [#​1626](https://togithub.com/Kotlin/kotlinx.coroutines/issues/1626), [#​1742](https://togithub.com/Kotlin/kotlinx.coroutines/issues/1742), [#​2082](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2082), [#​2102](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2102), [#​2405](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2405), [#​2462](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2462) ). - The old API is deprecated for removal, but the new API is based on the similar concepts ([README](kotlinx-coroutines-test/README.md)), and the migration path is designed to be graceful: [migration guide](kotlinx-coroutines-test/MIGRATION.md). ##### Dispatchers - Introduced `CoroutineDispatcher.limitedParallelism` that allows obtaining a view of the original dispatcher with limited parallelism ([#​2919](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2919)). - `Dispatchers.IO.limitedParallelism` usages ignore the bound on the parallelism level of `Dispatchers.IO` itself to avoid starvation ([#​2943](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2943)). - Introduced new `Dispatchers.shutdown` method for containerized environments ([#​2558](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2558)). - `newSingleThreadContext` and `newFixedThreadPoolContext` are promoted to delicate API ([#​2919](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2919)). ##### Breaking changes - When racing with cancellation, the `future` builder no longer reports unhandled exceptions into the global `CoroutineExceptionHandler`. Thanks [@​vadimsemenov](https://togithub.com/vadimsemenov)! ([#​2774](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2774), [#​2791](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2791)). - `Mutex.onLock` is deprecated for removal ([#​2794](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2794)). - `Dispatchers.Main` is now used as the default source of time for `delay` and `withTimeout` when present ([#​2972](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2972)). - To opt-out from this behaviour, `kotlinx.coroutines.main.delay` system property can be set to `false`. - Java target of coroutines build is now 8 instead of 6 ([#​1589](https://togithub.com/Kotlin/kotlinx.coroutines/issues/1589)). - **Source-breaking change**: extension `collect` no longer resolves when used with a non-in-place argument of a functional type. This is a candidate for a fix, uncovered after 1.6.0, see [#​3107](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3107) for the additional details. ##### Bug fixes and improvements - Kotlin is updated to 1.6.0. - Kotlin/Native [new memory model](https://blog.jetbrains.com/kotlin/2021/08/try-the-new-kotlin-native-memory-manager-development-preview/) is now supported in regular builds of coroutines conditionally depending on whether `kotlin.native.binary.memoryModel` is enabled ([#​2914](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2914)). - Introduced `CopyableThreadContextElement` for mutable context elements shared among multiple coroutines. Thanks [@​yorickhenning](https://togithub.com/yorickhenning)! ([#​2893](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2893)). - `transformWhile`, `awaitClose`, `ProducerScope`, `merge`, `runningFold`, `runingReduce`, and `scan` are promoted to stable API ([#​2971](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2971)). - `SharedFlow.subscriptionCount` no longer conflates incoming updates and gives all subscribers a chance to observe a short-lived subscription ([#​2488](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2488), [#​2863](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2863), [#​2871](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2871)). - `Flow` exception transparency mechanism is improved to be more exception-friendly ([#​3017](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3017), [#​2860](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2860)). - Cancellation from `flat*` operators that leverage multiple coroutines is no longer propagated upstream ([#​2964](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2964)). - `SharedFlow.collect` now returns `Nothing` ([#​2789](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2789), [#​2502](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2502)). - `DisposableHandle` is now `fun interface`, and corresponding inline extension is removed ([#​2790](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2790)). - `FlowCollector` is now `fun interface`, and corresponding inline extension is removed ([#​3047](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3047)). - Deprecation level of all previously deprecated signatures is raised ([#​3024](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3024)). - The version file is shipped with each JAR as a resource ([#​2941](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2941)). - Unhandled exceptions on K/N are passed to the standard library function `processUnhandledException` ([#​2981](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2981)). - A direct executor is used for `Task` callbacks in `kotlinx-coroutines-play-services` ([#​2990](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2990)). - Metadata of coroutines artifacts leverages Gradle platform to have all versions of dependencies aligned ([#​2865](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2865)). - Default `CoroutineExceptionHandler` is loaded eagerly and does not invoke `ServiceLoader` on its exception-handling path ([#​2552](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2552)). - Fixed the R8 rules for `ServiceLoader` optimization ([#​2880](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2880)). - Fixed BlockHound integration false-positives ([#​2894](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2894), [#​2866](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2866), [#​2937](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2937)). - Fixed the exception handler being invoked several times on Android, thanks to [@​1zaman](https://togithub.com/1zaman) ([#​3056](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3056)). - `SendChannel.trySendBlocking` is now available on Kotlin/Native ([#​3064](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3064)). - The exception recovery mechanism now uses `ClassValue` when available ([#​2997](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2997)). - JNA is updated to 5.9.0 to support Apple M1 ([#​3001](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3001)). - Obsolete method on internal `Delay` interface is deprecated ([#​2979](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2979)). - Support of deprecated `CommonPool` is removed. - `@ExperimentalTime` is no longer needed for methods that use `Duration` ([#​3041](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3041)). - JDK 1.6 is no longer required for building the project ([#​3043](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3043)). - New version of Dokka is used, fixing the memory leak when building the coroutines and providing brand new reference visuals (https://kotlin.github.io/kotlinx.coroutines/) ([#​3051](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3051), [#​3054](https://togithub.com/Kotlin/kotlinx.coroutines/issues/3054)). ### [`v1.5.2`](https://togithub.com/Kotlin/kotlinx.coroutines/releases/tag/1.5.2) [Compare Source](https://togithub.com/Kotlin/kotlinx.coroutines/compare/1.5.1...1.5.2) - Kotlin is updated to 1.5.30. - New native targets for Apple Silicon are introduced. - Fixed a bug when `onUndeliveredElement` was incorrectly called on properly received elements on JS ([#​2826](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2826)). - Fixed `Dispatchers.Default` on React Native, it now fully relies on `setTimeout` instead of stub `process.nextTick`. Thanks to [@​Legion2](https://togithub.com/Legion2) ([#​2843](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2843)). - Optimizations of `Mutex` implementation ([#​2581](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2581)). - `Mutex` implementation is made completely lock-free as stated ([#​2590](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2590)). - Various documentation and guides improvements. Thanks to [@​MasoodFallahpoor](https://togithub.com/MasoodFallahpoor) and [@​Pihanya](https://togithub.com/Pihanya). ### [`v1.5.1`](https://togithub.com/Kotlin/kotlinx.coroutines/releases/tag/1.5.1) [Compare Source](https://togithub.com/Kotlin/kotlinx.coroutines/compare/1.5.0...1.5.1) - Atomic `update`, `getAndUpdate`, and `updateAndGet` operations of `MutableStateFlow` ([#​2720](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2720)). - `Executor.asCoroutineDispatcher` implementation improvements ([#​2601](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2601)): - If the target executor is `ScheduledExecutorService`, then its `schedule` API is used for time-related coroutine operations. - `RemoveOnCancelPolicy` is now part of the public contract. - Introduced overloads for `Task.asDeferred` and `Task.await` that accept `CancellationTokenSource` for bidirectional cancellation ([#​2527](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2527)). - Reactive streams are updated to `1.0.3` ([#​2740](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2740)). - `CopyableThrowable` is allowed to modify the exception message during stacktrace recovery ([#​1931](https://togithub.com/Kotlin/kotlinx.coroutines/issues/1931)). - `CoroutineDispatcher.releaseInterceptedContinuation` is now a `final` method ([#​2785](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2785)). - Closing a Handler underlying `Handler.asCoroutineDispatcher` now causes the dispatched coroutines to be canceled on `Dispatchers.IO (#​2778)`. - Kotlin is updated to 1.5.20. - Fixed a spurious `ClassCastException` in `releaseInterceptedContinuation` and `IllegalStateException` from `tryReleaseClaimedContinuation` ([#​2736](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2736), [#​2768](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2768)). - Fixed inconsistent exception message during stacktrace recovery for non-suspending channel iterators ([#​2749](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2749)). - Fixed linear stack usage for `CompletableFuture.asDeferred` when the target future has a long chain of listeners ([#​2730](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2730)). - Any exceptions from `CoroutineDispatcher.isDispatchNeeded` are now considered as fatal and are propagated to the caller ([#​2733](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2733)). - Internal `DebugProbesKt` (used in the debugger implementation) are moved from `debug` to `core` module. ### [`v1.5.0`](https://togithub.com/Kotlin/kotlinx.coroutines/releases/tag/1.5.0) [Compare Source](https://togithub.com/Kotlin/kotlinx.coroutines/compare/1.4.3...1.5.0) Note that this is a full changelog relative to 1.4.3 version. Changelog relative to 1.5.0-RC can be found in the end. ##### Channels API - Major channels API rework ([#​330](https://togithub.com/Kotlin/kotlinx.coroutines/issues/330), [#​974](https://togithub.com/Kotlin/kotlinx.coroutines/issues/974)). Existing `offer`, `poll`, and `sendBlocking` methods are deprecated, internal `receiveCatching` and `onReceiveCatching` removed, `receiveOrNull` and `onReceiveOrNull` are completely deprecated. Previously deprecated `SendChannel.isFull` declaration is removed. Channel operators deprecated with `ERROR` are now `HIDDEN`. - New methods `receiveCatching`, `onReceiveCatching` `trySend`, `tryReceive`, and `trySendBlocking` along with the new result type `ChannelResult` are introduced. They provide better type safety, are less error-prone, and have a consistent future-proof naming scheme. The full rationale behind this change can be found [here](https://togithub.com/Kotlin/kotlinx.coroutines/issues/974#issuecomment-806569582). - `BroadcastChannel` and `ConflatedBroadcastChannel` are marked as `ObsoleteCoroutinesApi` in the favor or `SharedFlow` and `StateFlow`. The migration scheme can be found in their documentation. These classes will be deprecated in the next major release. - `callbackFlow` and `channelFlow` are promoted to stable API. ##### Reactive integrations - All existing API in modules `kotlinx-coroutines-rx2`, `kotlinx-coroutines-rx3`, `kotlinx-coroutines-reactive`, `kotlinx-coroutines-reactor`, and `kotlinx-coroutines-jdk9` were revisited and promoted to stable ([#​2545](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2545)). - `publish` is no longer allowed to emit `null` values ([#​2646](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2646)). - Misleading `awaitSingleOr*` functions on `Publisher` type are deprecated ([#​2591](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2591)). - `MaybeSource.await` is deprecated in the favor of `awaitSingle`, additional lint functions for `Mono` are added in order to prevent ambiguous `Publisher` usages ([#​2628](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2628), [#​1587](https://togithub.com/Kotlin/kotlinx.coroutines/issues/1587)). - `ContextView` support in `kotlinx-coroutines-reactor` ([#​2575](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2575)). - All reactive builders no longer ignore inner cancellation exceptions preventing their completion ([#​2262](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2262), [#​2646](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2646)). - `MaybeSource.collect` and `Maybe.collect` properly finish when they are completed without a value ([#​2617](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2617)). - All exceptions are now consistently handled according to reactive specification, whether they are considered 'fatal' or not by reactive frameworks ([#​2646](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2646)). ##### Other improvements - Kotlin version is upgraded to 1.5.0 and JVM target is updated to 1.8. - `Flow.last` and `Flow.lastOrNull` operators ([#​2246](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2246)). - `Flow.runningFold` operator ([#​2641](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2641)). - `CoroutinesTimeout` rule for JUnit5 ([#​2197](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2197)). - Internals of `Job` and `AbstractCoroutine` was reworked, resulting in smaller code size, less memory footprint, and better performance ([#​2513](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2513), [#​2512](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2512)). - `CancellationException` from Kotlin standard library is used for cancellation on Koltin/JS and Kotlin/Native ([#​2638](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2638)). - Introduced new `DelicateCoroutinesApi` annotation that warns users about potential target API pitfalls and suggests studying API's documentation first. The only delicate API right now is `GlobalScope` ([#​2637](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2637)). - Fixed bug introduced in `1.4.3` when `kotlinx-coroutines-core.jar` triggered IDEA debugger failure ([#​2619](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2619)). - Fixed memory leak of `ChildHandlerNode` with reusable continuations ([#​2564](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2564)). - Various documentation improvements ([#​2555](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2555), [#​2589](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2589), [#​2592](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2592), [#​2583](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2583), [#​2437](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2437), [#​2616](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2616), [#​2633](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2633), [#​2560](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2560)). ##### Changelog relative to version 1.5.0-RC - Fail-fast during `emitAll` called from cancelled `onCompletion` operator ([#​2700](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2700)). - Flows returned by `stateIn`/`shareIn` keep strong reference to sharing job ([#​2557](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2557)). - Rename internal `TimeSource` to `AbstractTimeSource` due to import issues ([#​2691](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2691)). - Reverted the change that triggered IDEA coroutines debugger crash ([#​2695](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2695), reverted [#​2291](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2291)). - `watchosX64` target support for Kotlin/Native ([#​2524](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2524)). - Various documentation fixes and improvements. ### [`v1.4.3`](https://togithub.com/Kotlin/kotlinx.coroutines/releases/tag/1.4.3) [Compare Source](https://togithub.com/Kotlin/kotlinx.coroutines/compare/1.4.2...1.4.3) ##### General changes - Thread context is properly preserved and restored for coroutines without `ThreadContextElement` ([#​985](https://togithub.com/Kotlin/kotlinx.coroutines/issues/985)) - `ThreadContextElement`s are now restored in the opposite order from update ([#​2195](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2195)) - Improved performance of combine with 4 parameters, thanks to [@​alexvanyo](https://togithub.com/alexvanyo) ([#​2419](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2419)) - Debug agent sanitizer leaves at least one frame with source location ([#​1437](https://togithub.com/Kotlin/kotlinx.coroutines/issues/1437)) - Update Reactor version in `kotlinx-coroutines-reactor` to `3.4.1`, thanks to [@​sokomishalov](https://togithub.com/sokomishalov) ([#​2432](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2432)) - `callsInPlace` contract added to `ReceiveChannel.consume` ([#​941](https://togithub.com/Kotlin/kotlinx.coroutines/issues/941)) - `CoroutineStart.UNDISPATCHED` promoted to stable API ([#​1393](https://togithub.com/Kotlin/kotlinx.coroutines/issues/1393)) - Kotlin updated to 1.4.30 - `kotlinx.coroutines` are now released directly to MavenCentral - Reduced the size of `DispatchedCoroutine` by a field - Internal class `TimeSource` renamed to `SchedulerTimeSource` to prevent wildcard import issues ([#​2537](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2537)) ##### Bug fixes - Fixed the problem that prevented implementation via delegation for `Job` interface ([#​2423](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2423)) - Fixed incorrect ProGuard rules that allowed shrinking volatile felds ([#​1564](https://togithub.com/Kotlin/kotlinx.coroutines/issues/1564)) - Fixed `await`/`asDeferred` for `MinimalStage` implementations in jdk8 module ([#​2456](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2456)) - Fixed bug when `onUndeliveredElement` wasn't called for unlimited channels ([#​2435](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2435)) - Fixed a bug when `ListenableFuture.isCancelled` returned from `asListenableFuture` could have thrown an exception, thanks to [@​vadimsemenov](https://togithub.com/vadimsemenov) ([#​2421](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2421)) - Coroutine in `callbackFlow` and `produce` is properly cancelled when the channel was closed separately ([#​2506](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2506)) ### [`v1.4.2`](https://togithub.com/Kotlin/kotlinx.coroutines/releases/tag/1.4.2) [Compare Source](https://togithub.com/Kotlin/kotlinx.coroutines/compare/1.4.1...1.4.2) - Fixed `StackOverflowError` in `Job.toString` when `Job` is observed in its intermediate state ([#​2371](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2371)). - Improved liveness and latency of `Dispatchers.Default` and `Dispatchers.IO` in low-loaded mode ([#​2381](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2381)). - Improved performance of consecutive `Channel.cancel` invocations ([#​2384](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2384)). - `SharingStarted` is now `fun` interface ([#​2397](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2397)). - Additional lint settings for `SharedFlow` to catch programmatic errors early ([#​2376](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2376)). - Fixed bug when mutex and semaphore were not released during cancellation ([#​2390](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2390), thanks to [@​Tilps](https://togithub.com/Tilps) for reproducing). - Some corner cases in cancellation propagation between coroutines and listenable futures are repaired ([#​1442](https://togithub.com/Kotlin/kotlinx.coroutines/issues/1442), thanks to [@​vadimsemenov](https://togithub.com/vadimsemenov)). - Fixed unconditional cast to `CoroutineStackFrame` in exception recovery that triggered failures of instrumented code ([#​2386](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2386)). - Platform-specific dependencies are removed from `kotlinx-coroutines-javafx` ([#​2360](https://togithub.com/Kotlin/kotlinx.coroutines/issues/2360)). </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), 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](https://togithub.com/renovatebot/renovate/discussions) if that's undesired. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://developer.mend.io/github/pachli/pachli-android). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy40MjEuOSIsInVwZGF0ZWRJblZlciI6IjM3LjQzMS40IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
265 lines
17 KiB
TOML
265 lines
17 KiB
TOML
[versions]
|
|
aboutlibraries = "11.2.1"
|
|
acra = "5.11.3"
|
|
agp = "8.5.0"
|
|
androidx-activity = "1.9.0"
|
|
androidx-appcompat = "1.7.0"
|
|
androidx-browser = "1.8.0"
|
|
androidx-cardview = "1.0.0"
|
|
androidx-constraintlayout = "2.1.4"
|
|
androidx-core = "1.13.1"
|
|
androidx-exifinterface = "1.3.7"
|
|
androidx-fragment = "1.8.1"
|
|
androidx-hilt = "1.2.0"
|
|
androidx-junit = "1.2.1"
|
|
androidx-lifecycle = "2.8.2"
|
|
androidx-media3 = "1.3.1"
|
|
# Deliberate downgrade until a version with the fix in
|
|
# https://android-review.googlesource.com/c/platform/frameworks/support/+/3156343
|
|
# is released.
|
|
# - https://issuetracker.google.com/issues/343124454
|
|
# - https://issuetracker.google.com/issues/349090863
|
|
androidx-paging = "3.2.1"
|
|
androidx-preference = "1.2.1"
|
|
androidx-recyclerview = "1.3.2"
|
|
androidx-sharetarget = "1.2.0"
|
|
androidx-splashscreen = "1.2.0-alpha01"
|
|
androidx-swiperefresh-layout = "1.1.0"
|
|
androidx-testing = "2.2.0"
|
|
androidx-test-core-ktx = "1.6.1"
|
|
androidx-transition = "1.5.0"
|
|
androidx-viewpager2 = "1.1.0"
|
|
androidx-webkit = "1.11.0"
|
|
androidx-work = "2.9.0"
|
|
androidx-room = "2.6.1"
|
|
app-update = "2.1.0"
|
|
apollographql = "3.8.4"
|
|
auto-service = "1.1.1"
|
|
auto-service-ksp = "1.2.0"
|
|
bouncycastle = "1.70"
|
|
conscrypt = "2.5.2"
|
|
coroutines = "1.8.1"
|
|
coroutines-play-services = "1.8.1"
|
|
desugar_jdk_libs = "2.0.4"
|
|
diffx = "1.1.1"
|
|
emoji2 = "1.3.0"
|
|
espresso = "3.6.1"
|
|
filemoji-compat = "3.2.7"
|
|
glide = "4.16.0"
|
|
# Deliberate downgrade, https://github.com/tuskyapp/Tusky/issues/3631
|
|
glide-animation-plugin = "2.23.0"
|
|
hilt = "2.51.1"
|
|
org-json = "20240303"
|
|
junit = "4.13.2"
|
|
kotlin = "2.0.0"
|
|
kotlin-result = "1.1.20"
|
|
ksp = "2.0.0-1.0.23"
|
|
image-cropper = "4.3.2"
|
|
leakcanary = "2.14"
|
|
lint = "31.5.0" # = agp + 23.0.0 (= 8.5.0), see https://github.com/googlesamples/android-custom-lint-rules#lint-version
|
|
material = "1.12.0"
|
|
material-drawer = "9.0.2"
|
|
material-iconics = "5.5.0-compose01"
|
|
material-typeface = "4.0.0.3-kotlin"
|
|
mlkit-language-id = "17.0.0"
|
|
mockito-inline = "5.2.0"
|
|
mockito-kotlin = "5.3.1"
|
|
moshi = "1.15.1"
|
|
moshix = "0.27.1"
|
|
networkresult-calladapter = "1.0.0"
|
|
okhttp = "4.12.0"
|
|
okio = "3.9.0"
|
|
play-services-base = "18.5.0"
|
|
quadrant = "1.9.1"
|
|
retrofit = "2.11.0"
|
|
robolectric = "4.12.2"
|
|
semver = "2.0.0"
|
|
sparkbutton = "4.2.0"
|
|
timber = "5.0.1"
|
|
touchimageview = "3.6"
|
|
truth = "1.4.3"
|
|
turbine = "1.1.0"
|
|
unified-push = "2.1.1"
|
|
xmlwriter = "1.0.4"
|
|
|
|
# Tool dependencies
|
|
betterparse = "0.4.4"
|
|
clikt = "4.4.0"
|
|
icu4j = "75.1"
|
|
junit-jupiter = "5.10.3"
|
|
kotlin-logging-jvm = "7.0.0"
|
|
logback = "1.5.6"
|
|
|
|
[plugins]
|
|
aboutlibraries = { id = "com.mikepenz.aboutlibraries.plugin", version.ref = "aboutlibraries" }
|
|
android-application = { id = "com.android.application", version.ref = "agp" }
|
|
android-library = { id = "com.android.library", version.ref = "agp" }
|
|
android-lint = { id = "com.android.lint", version.ref = "agp" }
|
|
google-ksp = { id = "com.google.devtools.ksp", version.ref = "ksp" }
|
|
hilt = { id = "com.google.dagger.hilt.android", version.ref = "hilt" }
|
|
kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" }
|
|
kotlin-jvm = { id = "org.jetbrains.kotlin.jvm", version.ref = "kotlin" }
|
|
kotlin-parcelize = { id = "org.jetbrains.kotlin.plugin.parcelize", version.ref = "kotlin" }
|
|
ktlint = "org.jlleitschuh.gradle.ktlint:12.1.1"
|
|
room = { id = "androidx.room", version.ref = "androidx-room" }
|
|
quadrant = { id = "com.gaelmarhic.quadrant", version.ref = "quadrant" }
|
|
apollographql = { id = "com.apollographql.apollo3", version.ref = "apollographql"}
|
|
|
|
# Plugins defined by this project
|
|
pachli-android-application = { id = "pachli.android.application", version = "unspecified" }
|
|
pachli-android-application-flavors = { id = "pachli.android.application.flavors", version = "unspecified" }
|
|
pachli-android-hilt = { id = "pachli.android.hilt", version = "unspecified" }
|
|
pachli-android-library = { id = "pachli.android.library", version = "unspecified" }
|
|
pachli-android-room = { id = "pachli.android.room", version = "unspecified" }
|
|
pachli-tool = { id = "pachli.tool", version = "unspecified" }
|
|
|
|
[libraries]
|
|
aboutlibraries-core = { module = "com.mikepenz:aboutlibraries-core", version.ref = "aboutlibraries" }
|
|
aboutlibraries-legacy-ui = { module = "com.mikepenz:aboutlibraries", version.ref = "aboutlibraries" }
|
|
acra-dialog = { module = "ch.acra:acra-dialog", version.ref = "acra" }
|
|
acra-mail = { module = "ch.acra:acra-mail", version.ref = "acra" }
|
|
android-material = { module = "com.google.android.material:material", version.ref = "material" }
|
|
androidx-activity = { module = "androidx.activity:activity-ktx", version.ref = "androidx-activity" }
|
|
androidx-appcompat = { module = "androidx.appcompat:appcompat", version.ref = "androidx-appcompat" }
|
|
androidx-browser = { module = "androidx.browser:browser", version.ref = "androidx-browser" }
|
|
androidx-cardview = { module = "androidx.cardview:cardview", version.ref = "androidx-cardview" }
|
|
androidx-constraintlayout = { module = "androidx.constraintlayout:constraintlayout", version.ref = "androidx-constraintlayout" }
|
|
androidx-core-ktx = { module = "androidx.core:core-ktx", version.ref = "androidx-core" }
|
|
androidx-core-splashscreen = { module = "androidx.core:core-splashscreen", version.ref = "androidx-splashscreen" }
|
|
androidx-core-testing = { module = "androidx.arch.core:core-testing", version.ref = "androidx-testing" }
|
|
androidx-emoji2-core = { module = "androidx.emoji2:emoji2", version.ref = "emoji2" }
|
|
androidx-emoji2-views-core = { module = "androidx.emoji2:emoji2-views", version.ref = "emoji2" }
|
|
androidx-emoji2-view-helper = { module = "androidx.emoji2:emoji2-views-helper", version.ref = "emoji2" }
|
|
androidx-exifinterface = { module = "androidx.exifinterface:exifinterface", version.ref = "androidx-exifinterface" }
|
|
androidx-fragment-ktx = { module = "androidx.fragment:fragment-ktx", version.ref = "androidx-fragment" }
|
|
androidx-hilt-common = { module = "androidx.hilt:hilt-common", version.ref = "androidx-hilt" }
|
|
androidx-hilt-compiler = { module = "androidx.hilt:hilt-compiler", version.ref = "androidx-hilt" }
|
|
androidx-hilt-work = { module = "androidx.hilt:hilt-work", version.ref = "androidx-hilt" }
|
|
androidx-lifecycle-common-java8 = { module = "androidx.lifecycle:lifecycle-common-java8", version.ref = "androidx-lifecycle" }
|
|
androidx-lifecycle-livedata-ktx = { module = "androidx.lifecycle:lifecycle-livedata-ktx", version.ref = "androidx-lifecycle" }
|
|
androidx-lifecycle-reactivestreams-ktx = { module = "androidx.lifecycle:lifecycle-reactivestreams-ktx", version.ref = "androidx-lifecycle" }
|
|
androidx-lifecycle-viewmodel-ktx = { module = "androidx.lifecycle:lifecycle-viewmodel-ktx", version.ref = "androidx-lifecycle" }
|
|
androidx-media3-exoplayer = { module = "androidx.media3:media3-exoplayer", version.ref = "androidx-media3" }
|
|
androidx-media3-exoplayer-dash = { module = "androidx.media3:media3-exoplayer-dash", version.ref = "androidx-media3" }
|
|
androidx-media3-exoplayer-hls = { module = "androidx.media3:media3-exoplayer-hls", version.ref = "androidx-media3" }
|
|
androidx-media3-exoplayer-rtsp = { module = "androidx.media3:media3-exoplayer-rtsp", version.ref = "androidx-media3" }
|
|
androidx-media3-datasource-okhttp = { module = "androidx.media3:media3-datasource-okhttp", version.ref = "androidx-media3" }
|
|
androidx-media3-ui = { module = "androidx.media3:media3-ui", version.ref = "androidx-media3" }
|
|
androidx-paging-runtime-ktx = { module = "androidx.paging:paging-runtime-ktx", version.ref = "androidx-paging" }
|
|
androidx-preference-ktx = { module = "androidx.preference:preference-ktx", version.ref = "androidx-preference" }
|
|
androidx-room-compiler = { module = "androidx.room:room-compiler", version.ref = "androidx-room" }
|
|
androidx-room-paging = { module = "androidx.room:room-paging", version.ref = "androidx-room" }
|
|
androidx-room-ktx = { module = "androidx.room:room-ktx", version.ref = "androidx-room" }
|
|
androidx-room-testing = { module = "androidx.room:room-testing", version.ref = "androidx-room" }
|
|
androidx-recyclerview = { module = "androidx.recyclerview:recyclerview", version.ref = "androidx-recyclerview" }
|
|
androidx-sharetarget = { module = "androidx.sharetarget:sharetarget", version.ref = "androidx-sharetarget" }
|
|
androidx-swiperefreshlayout = { module = "androidx.swiperefreshlayout:swiperefreshlayout", version.ref = "androidx-swiperefresh-layout" }
|
|
androidx-test-core-ktx = { module = "androidx.test:core-ktx", version.ref = "androidx-test-core-ktx" }
|
|
androidx-test-junit = { module = "androidx.test.ext:junit", version.ref = "androidx-junit" }
|
|
androidx-transition = { module = "androidx.transition:transition-ktx", version.ref = "androidx-transition" }
|
|
androidx-viewpager2 = { module = "androidx.viewpager2:viewpager2", version.ref = "androidx-viewpager2" }
|
|
androidx-webkit = { module = "androidx.webkit:webkit", version.ref = "androidx-webkit" }
|
|
androidx-work-runtime-ktx = { module = "androidx.work:work-runtime-ktx", version.ref = "androidx-work" }
|
|
androidx-work-testing = { module = "androidx.work:work-testing", version.ref = "androidx-work" }
|
|
app-update = { module = "com.google.android.play:app-update", version.ref = "app-update" }
|
|
app-update-ktx = { module = "com.google.android.play:app-update-ktx", version.ref = "app-update" }
|
|
apollo-runtime = { module = "com.apollographql.apollo3:apollo-runtime", version.ref = "apollographql" }
|
|
auto-service-annotations = { module = "com.google.auto.service:auto-service-annotations", version.ref = "auto-service"}
|
|
auto-service-ksp = { module = "dev.zacsweers.autoservice:auto-service-ksp", version.ref = "auto-service-ksp"}
|
|
bouncycastle = { module = "org.bouncycastle:bcprov-jdk15on", version.ref = "bouncycastle" }
|
|
conscrypt-android = { module = "org.conscrypt:conscrypt-android", version.ref = "conscrypt" }
|
|
desugar_jdk_libs = { module = "com.android.tools:desugar_jdk_libs", version.ref = "desugar_jdk_libs" }
|
|
diffx = { module = "org.pageseeder.diffx:pso-diffx", version.ref = "diffx" }
|
|
espresso-core = { module = "androidx.test.espresso:espresso-core", version.ref = "espresso" }
|
|
filemojicompat-core = { module = "de.c1710:filemojicompat", version.ref = "filemoji-compat" }
|
|
filemojicompat-defaults = { module = "de.c1710:filemojicompat-defaults", version.ref = "filemoji-compat" }
|
|
filemojicompat-ui = { module = "de.c1710:filemojicompat-ui", version.ref = "filemoji-compat" }
|
|
glide-animation-plugin = { module = "com.github.penfeizhou.android.animation:glide-plugin", version.ref = "glide-animation-plugin" }
|
|
glide-compiler = { module = "com.github.bumptech.glide:ksp", version.ref = "glide" }
|
|
glide-core = { module = "com.github.bumptech.glide:glide", version.ref = "glide" }
|
|
glide-okhttp3-integration = { module = "com.github.bumptech.glide:okhttp3-integration", version.ref = "glide" }
|
|
hilt-android = { module = "com.google.dagger:hilt-android", version.ref = "hilt" }
|
|
hilt-compiler = { module = "com.google.dagger:hilt-compiler", version.ref = "hilt" }
|
|
hilt-android-testing = { module = "com.google.dagger:hilt-android-testing", version.ref = "hilt" }
|
|
junit = { module = "junit:junit", version.ref = "junit" }
|
|
junit-jupiter = { module = "org.junit.jupiter:junit-jupiter", version.ref = "junit-jupiter" }
|
|
junit-jupiter-params = { module = "org.junit.jupiter:junit-jupiter-params", version.ref = "junit-jupiter" }
|
|
kotlin-result = { module = "com.michael-bull.kotlin-result:kotlin-result", version.ref = "kotlin-result" }
|
|
kotlin-result-coroutines = { module = "com.michael-bull.kotlin-result:kotlin-result-coroutines", version.ref = "kotlin-result" }
|
|
kotlinx-coroutines-android = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-android", version.ref = "coroutines" }
|
|
kotlinx-coroutines-play-services = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-play-services", version.ref = "coroutines-play-services" }
|
|
kotlinx-coroutines-test = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-test", version.ref = "coroutines" }
|
|
kotlin-stdlib = { module = "org.jetbrains.kotlin:kotlin-stdlib", version.ref = "kotlin" }
|
|
image-cropper = { module = "com.github.CanHub:Android-Image-Cropper", version.ref = "image-cropper" }
|
|
leakcanary = { module = "com.squareup.leakcanary:leakcanary-android", version.ref = "leakcanary" }
|
|
lint-api = { module = "com.android.tools.lint:lint-api", version.ref = "lint" }
|
|
lint-checks = { module = "com.android.tools.lint:lint-checks", version.ref = "lint" }
|
|
lint-cli = { module = "com.android.tools.lint:lint", version.ref = "lint" }
|
|
lint-tests = { module = "com.android.tools.lint:lint-tests", version.ref = "lint" }
|
|
material-drawer-core = { module = "com.mikepenz:materialdrawer", version.ref = "material-drawer" }
|
|
material-drawer-iconics = { module = "com.mikepenz:materialdrawer-iconics", version.ref = "material-drawer" }
|
|
material-iconics = { module = "com.mikepenz:iconics-core", version.ref="material-iconics" }
|
|
material-typeface = { module = "com.mikepenz:google-material-typeface", version.ref = "material-typeface" }
|
|
mlkit-language-id = { module = "com.google.android.gms:play-services-mlkit-language-id", version.ref = "mlkit-language-id" }
|
|
mockito-kotlin = { module = "org.mockito.kotlin:mockito-kotlin", version.ref = "mockito-kotlin" }
|
|
mockito-inline = { module = "org.mockito:mockito-inline", version.ref = "mockito-inline" }
|
|
mockwebserver = { module = "com.squareup.okhttp3:mockwebserver", version.ref = "okhttp" }
|
|
moshi = { module = "com.squareup.moshi:moshi", version.ref = "moshi" }
|
|
moshi-adapters = { module = "com.squareup.moshi:moshi-adapters", version.ref = "moshi" }
|
|
moshi-codegen = { module = "com.squareup.moshi:moshi-kotlin-codegen", version.ref = "moshi" }
|
|
moshix-sealed-runtime = { module = "dev.zacsweers.moshix:moshi-sealed-runtime", version.ref = "moshix" }
|
|
moshix-sealed-codegen = { module = "dev.zacsweers.moshix:moshi-sealed-codegen", version.ref = "moshix" }
|
|
networkresult-calladapter = { module = "at.connyduck:networkresult-calladapter", version.ref = "networkresult-calladapter" }
|
|
okhttp-core = { module = "com.squareup.okhttp3:okhttp", version.ref = "okhttp" }
|
|
okhttp-logging-interceptor = { module = "com.squareup.okhttp3:logging-interceptor", version.ref = "okhttp" }
|
|
okhttp-tls = { module = "com.squareup.okhttp3:okhttp-tls", version.ref = "okhttp" }
|
|
okio = { module = "com.squareup.okio:okio", version.ref = "okio" }
|
|
org-json = { module = "org.json:json", version.ref = "org-json"}
|
|
play-services-base = { module = "com.google.android.gms:play-services-base", version.ref = "play-services-base" }
|
|
retrofit-converter-moshi = { module = "com.squareup.retrofit2:converter-moshi", version.ref = "retrofit" }
|
|
retrofit-core = { module = "com.squareup.retrofit2:retrofit", version.ref = "retrofit" }
|
|
robolectric = { module = "org.robolectric:robolectric", version.ref = "robolectric" }
|
|
semver = { module = "io.github.z4kn4fein:semver", version.ref = "semver" }
|
|
sparkbutton = { module = "at.connyduck.sparkbutton:sparkbutton", version.ref = "sparkbutton" }
|
|
timber = { module = "com.jakewharton.timber:timber", version.ref = "timber" }
|
|
touchimageview = { module = "com.github.MikeOrtiz:TouchImageView", version.ref = "touchimageview" }
|
|
truth = { module = "com.google.truth:truth", version.ref = "truth" }
|
|
turbine = { module = "app.cash.turbine:turbine", version.ref = "turbine" }
|
|
unified-push = { module = "com.github.UnifiedPush:android-connector", version.ref = "unified-push" }
|
|
xmlwriter = { module = "org.pageseeder.xmlwriter:pso-xmlwriter", version.ref = "xmlwriter" }
|
|
|
|
# Tool libraries
|
|
betterparse = { module = "com.github.h0tk3y.betterParse:better-parse", version.ref = "betterparse" }
|
|
clikt = { module = "com.github.ajalt.clikt:clikt", version.ref = "clikt" }
|
|
icu4j = { module = "com.ibm.icu:icu4j", version.ref = "icu4j"}
|
|
kotlin-logging-jvm = { module = "io.github.oshai:kotlin-logging-jvm", version.ref = "kotlin-logging-jvm" }
|
|
logback = { module = "ch.qos.logback:logback-classic", version.ref = "logback" }
|
|
|
|
# build-logic dependencies
|
|
android-gradlePlugin = { module = "com.android.tools.build:gradle", version.ref = "agp" }
|
|
kotlin-gradlePlugin = { module = "org.jetbrains.kotlin:kotlin-gradle-plugin", version.ref = "kotlin" }
|
|
ksp-gradlePlugin = { module = "com.google.devtools.ksp:com.google.devtools.ksp.gradle.plugin", version.ref = "ksp" }
|
|
|
|
[bundles]
|
|
aboutlibraries = ["aboutlibraries-core", "aboutlibraries-legacy-ui"]
|
|
acra = ["acra-dialog", "acra-mail"]
|
|
androidx = ["androidx-core-ktx", "androidx-appcompat", "androidx-fragment-ktx", "androidx-browser", "androidx-swiperefreshlayout",
|
|
"androidx-recyclerview", "androidx-exifinterface", "androidx-cardview", "androidx-preference-ktx", "androidx-sharetarget",
|
|
"androidx-emoji2-core", "androidx-emoji2-views-core", "androidx-emoji2-view-helper", "androidx-lifecycle-viewmodel-ktx",
|
|
"androidx-lifecycle-livedata-ktx", "androidx-lifecycle-common-java8", "androidx-lifecycle-reactivestreams-ktx",
|
|
"androidx-constraintlayout", "androidx-paging-runtime-ktx", "androidx-viewpager2", "androidx-work-runtime-ktx",
|
|
"androidx-core-splashscreen", "androidx-activity", "androidx-media3-exoplayer", "androidx-media3-exoplayer-dash",
|
|
"androidx-media3-exoplayer-hls", "androidx-media3-exoplayer-rtsp", "androidx-media3-datasource-okhttp", "androidx-media3-ui",
|
|
"androidx-transition",
|
|
"android-material"]
|
|
filemojicompat = ["filemojicompat-core", "filemojicompat-ui", "filemojicompat-defaults"]
|
|
glide = ["glide-core", "glide-okhttp3-integration", "glide-animation-plugin"]
|
|
lint-api = ["kotlin-stdlib", "lint-api", "lint-checks"]
|
|
lint-tests = ["junit", "lint-cli", "lint-tests"]
|
|
material-drawer = ["material-drawer-core", "material-drawer-iconics"]
|
|
mockito = ["mockito-kotlin", "mockito-inline"]
|
|
okhttp = ["okhttp-core", "okhttp-logging-interceptor", "okhttp-tls"]
|
|
retrofit = ["retrofit-core", "retrofit-converter-moshi"]
|
|
room = ["androidx-room-ktx", "androidx-room-paging"]
|
|
xmldiff = ["diffx", "xmlwriter"]
|