diff --git a/CHANGELOG.md b/CHANGELOG.md index 1d9072ab..807eecaa 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,10 @@ # Changelog # +## v0.7.3 *(2021-02-20)* ## + +- Fix remaining crash in `KeychainSettings.clear()` (issue #79) +- Update `multiplatform-settings-serialization` to use kotlinx-serialization version 1.1.0 + ## v0.7.2 *(2021-02-13)* ## - Update to Kotlin 1.4.30 diff --git a/README.md b/README.md index aaa24073..737205ad 100644 --- a/README.md +++ b/README.md @@ -52,7 +52,7 @@ Then, simply add the dependency to your common source-set dependencies commonMain { dependencies { // ... - implementation("com.russhwolf:multiplatform-settings:0.7.2") + implementation("com.russhwolf:multiplatform-settings:0.7.3") } } ``` @@ -144,7 +144,7 @@ val factory: Settings.Factory = AppleSettings.Factory() To create a `Settings` instance from common without needing to pass platform-specific dependencies, add the `multiplatform-settings-no-arg` gradle dependency. This exports `multiplatform-settings` as an API dependency, so you can use it as a replacement for that default dependency. ```kotlin -implementation("com.russhwolf:multiplatform-settings-no-arg:0.7.2") +implementation("com.russhwolf:multiplatform-settings-no-arg:0.7.3") ``` Then from common code, you can write @@ -238,7 +238,7 @@ Note that for the `AppleSettings` implementation, some entries are unremovable a A testing dependency is available to aid in testing code that interacts with this library. ```kotlin -implementation("com.russhwolf:multiplatform-settings-test:0.7.2") +implementation("com.russhwolf:multiplatform-settings-test:0.7.3") ``` This includes a `MockSettings` implementation of the `Settings` interface, which is backed by an in-memory `MutableMap` on all platforms. @@ -309,7 +309,7 @@ On Apple platforms, the `AppleSettings` listeners are designed to work within th A `kotlinx-serialization` integration exists so it's easier to save non-primitive data ```kotlin -implementation("com.russhwolf:multiplatform-settings-serialization:0.7.2") +implementation("com.russhwolf:multiplatform-settings-serialization:0.7.3") ``` This essentially uses the `Settings` store as a serialization format. Thus for a serializable class @@ -346,10 +346,10 @@ Usage requires accepting both the `@ExperimentalSettingsApi` and `@ExperimentalS A separate `multiplatform-settings-coroutines` dependency includes various coroutine APIs. ```kotlin -implementation("com.russhwolf:multiplatform-settings-coroutines:0.7.2") +implementation("com.russhwolf:multiplatform-settings-coroutines:0.7.3") // Or, if you use native-mt coroutines release -implementation("com.russhwolf:multiplatform-settings-coroutines-native-mt:0.7.2") +implementation("com.russhwolf:multiplatform-settings-coroutines-native-mt:0.7.3") ``` This adds flow extensions for all types which use the listener APIs internally. @@ -389,7 +389,7 @@ val blockingSettings: Settings = suspendSettings.toBlockingSettings() An implementation of `FlowSettings` on the Android exists in the `multiplatform-settings-datastore` dependency, based on [Jetpack DataStore](https://developer.android.com/jetpack/androidx/releases/datastore) ```kotlin -implementation("com.russhwolf:multiplatform-settings-datastore:0.7.2") +implementation("com.russhwolf:multiplatform-settings-datastore:0.7.3") ``` This provides a `DataStoreSettings` class diff --git a/buildSrc/src/main/kotlin/BuildHelpers.kt b/buildSrc/src/main/kotlin/BuildHelpers.kt index ce516d6d..d1dfef32 100644 --- a/buildSrc/src/main/kotlin/BuildHelpers.kt +++ b/buildSrc/src/main/kotlin/BuildHelpers.kt @@ -29,7 +29,6 @@ import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinNativeTarget import org.jetbrains.kotlin.gradle.targets.js.KotlinJsTarget import org.jetbrains.kotlin.gradle.targets.js.ir.KotlinJsIrTarget import org.jetbrains.kotlin.gradle.targets.js.ir.KotlinJsIrTargetPreset -import org.jetbrains.kotlin.konan.target.Family private val Project.kotlin: KotlinMultiplatformExtension get() = extensions.getByType(KotlinMultiplatformExtension::class.java) @@ -163,7 +162,7 @@ private fun KotlinMultiplatformExtension.linkNativeSourceSets() { .matching { it.konanTarget.family.isAppleFamily } .configureEach { it.apply { - if (konanTarget.architecture.bitness == 32 || konanTarget.family == Family.WATCHOS) { + if (konanTarget.architecture.bitness == 32 || it.name == "watchosArm64") { compilations.getByName("main").defaultSourceSet.dependsOn(apple32Main) compilations.getByName("test").defaultSourceSet.dependsOn(apple32Test) } else { diff --git a/buildSrc/src/main/kotlin/Versions.kt b/buildSrc/src/main/kotlin/Versions.kt index b73ec82f..4236270b 100644 --- a/buildSrc/src/main/kotlin/Versions.kt +++ b/buildSrc/src/main/kotlin/Versions.kt @@ -17,7 +17,7 @@ @file:Suppress("KDocMissingDocumentation") object Versions { - const val multiplatformSettings = "0.7.2" + const val multiplatformSettings = "0.7.3" const val minSdk = 15 const val compileSdk = 30 diff --git a/sample/build.gradle.kts b/sample/build.gradle.kts index 5dc80765..47ac53a9 100644 --- a/sample/build.gradle.kts +++ b/sample/build.gradle.kts @@ -22,7 +22,7 @@ plugins { } allprojects { - ext["library_version"] = "0.7.2" + ext["library_version"] = "0.7.3" repositories { mavenLocal()