Skip to content

Commit

Permalink
1.5.0 dependency updates
Browse files Browse the repository at this point in the history
  • Loading branch information
russhwolf committed May 21, 2021
1 parent de6d087 commit 9627b2a
Show file tree
Hide file tree
Showing 15 changed files with 60 additions and 25 deletions.
7 changes: 7 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,12 @@
# Changelog #

## v0.7.7 *(2021-05-20)* ##

- Fix missing Kotlin 1.5.0 updates
- Update `multiplatform-settings-coroutines` to use coroutines version 1.5.0
- Update `multiplatform-settings-datastore` to use DataStore version 1.0.0-beta01
- Update `multiplatform-settings-serealization` to use serialization version 1.2.1

## v0.7.6 *(2021-04-27)* ##

- Update to Kotlin 1.5.0
Expand Down
14 changes: 7 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ Then, simply add the dependency to your common source-set dependencies
commonMain {
dependencies {
// ...
implementation("com.russhwolf:multiplatform-settings:0.7.6")
implementation("com.russhwolf:multiplatform-settings:0.7.7")
}
}
```
Expand Down Expand Up @@ -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.6")
implementation("com.russhwolf:multiplatform-settings-no-arg:0.7.7")
```

Then from common code, you can write
Expand Down Expand Up @@ -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.6")
implementation("com.russhwolf:multiplatform-settings-test:0.7.7")
```

This includes a `MockSettings` implementation of the `Settings` interface, which is backed by an in-memory `MutableMap` on all platforms.
Expand Down Expand Up @@ -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.6")
implementation("com.russhwolf:multiplatform-settings-serialization:0.7.7")
```

This essentially uses the `Settings` store as a serialization format. Thus for a serializable class
Expand Down Expand Up @@ -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.6")
implementation("com.russhwolf:multiplatform-settings-coroutines:0.7.7")

// Or, if you use native-mt coroutines release
implementation("com.russhwolf:multiplatform-settings-coroutines-native-mt:0.7.6")
implementation("com.russhwolf:multiplatform-settings-coroutines-native-mt:0.7.7")
```

This adds flow extensions for all types which use the listener APIs internally.
Expand Down Expand Up @@ -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.6")
implementation("com.russhwolf:multiplatform-settings-datastore:0.7.7")
```

This provides a `DataStoreSettings` class
Expand Down
4 changes: 2 additions & 2 deletions azure-pipelines.yml
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@ jobs:
jdkArchitectureOption: 'x64'
publishJUnitResults: true
testResultsFiles: '**/TEST-*.xml'
tasks: 'clean macosX64Test iosX64Test watchosX86Test tvosX64Test publishKotlinMultiplatformPublicationToMavenLocal publishMetadataPublicationToMavenLocal publishIosArm32PublicationToMavenLocal publishIosArm64PublicationToMavenLocal publishIosX64PublicationToMavenLocal publishMacosX64PublicationToMavenLocal publishWatchosArm32PublicationToMavenLocal publishWatchosArm64PublicationToMavenLocal publishWatchosX86PublicationToMavenLocal publishTvosArm64PublicationToMavenLocal publishTvosX64PublicationToMavenLocal'
tasks: 'clean macosX64Test iosX64Test watchosX86Test tvosX64Test publishKotlinMultiplatformPublicationToMavenLocal publishIosArm32PublicationToMavenLocal publishIosArm64PublicationToMavenLocal publishIosX64PublicationToMavenLocal publishMacosX64PublicationToMavenLocal publishWatchosArm32PublicationToMavenLocal publishWatchosArm64PublicationToMavenLocal publishWatchosX86PublicationToMavenLocal publishTvosArm64PublicationToMavenLocal publishTvosX64PublicationToMavenLocal'

- task: Gradle@2
inputs:
Expand Down Expand Up @@ -114,7 +114,7 @@ jobs:
jdkArchitectureOption: 'x64'
publishJUnitResults: true
testResultsFiles: '**/TEST-*.xml'
tasks: 'clean mingwX64Test publishKotlinMultiplatformPublicationToMavenLocal publishMetadataPublicationToMavenLocal publishMingwX64PublicationToMavenLocal publishMingwX86PublicationToMavenLocal'
tasks: 'clean mingwX64Test publishKotlinMultiplatformPublicationToMavenLocal publishMingwX64PublicationToMavenLocal publishMingwX86PublicationToMavenLocal'

pool:
vmImage: 'windows-latest'
2 changes: 1 addition & 1 deletion buildSrc/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
*/

plugins {
kotlin("jvm") version "1.4.32"
kotlin("jvm") version "1.5.0"
}

repositories {
Expand Down
3 changes: 1 addition & 2 deletions buildSrc/src/main/kotlin/BuildHelpers.kt
Original file line number Diff line number Diff line change
Expand Up @@ -88,8 +88,7 @@ private fun KotlinMultiplatformExtension.buildAllTargets(targetPresets: NamedDom
}
targets.configureEach {
it.compilations.configureEach {
// TODO having trouble suppressing warning about confliction coroutines versions
// it.kotlinOptions.allWarningsAsErrors = true
it.kotlinOptions.allWarningsAsErrors = true
}
}

Expand Down
10 changes: 5 additions & 5 deletions buildSrc/src/main/kotlin/Versions.kt
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
@file:Suppress("KDocMissingDocumentation")

object Versions {
const val multiplatformSettings = "0.7.6"
const val multiplatformSettings = "0.7.7"

const val minSdk = 15
const val compileSdk = 30
Expand All @@ -28,11 +28,11 @@ object Versions {
const val androidxTest = "1.3.0"
const val androidxTestExt = "1.1.2"
const val binaryCompatibilityValidator = "0.2.4"
const val coroutines = "1.4.3"
const val coroutinesNativeMt = "1.4.3-native-mt"
const val coroutines = "1.5.0"
const val coroutinesNativeMt = "1.5.0-native-mt"
const val junit = "4.13.2"
const val robolectric = "4.5.1"
const val serializationPlugin = "1.5.0"
const val serializationRuntime = "1.1.0"
const val turbine = "0.4.1"
const val serializationRuntime = "1.2.1"
const val turbine = "0.5.0"
}
Original file line number Diff line number Diff line change
Expand Up @@ -31,9 +31,9 @@ private inline fun <T> ObservableSettings.createFlow(
defaultValue: T,
crossinline getter: Settings.(String, T) -> T
): Flow<T> = callbackFlow {
offer(getter(key, defaultValue))
send(getter(key, defaultValue))
val listener = addListener(key) {
offer(getter(key, defaultValue))
trySend(getter(key, defaultValue))
}
awaitClose {
listener.deactivate()
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
package com.russhwolf.settings.coroutines

import kotlinx.coroutines.DelicateCoroutinesApi
import kotlinx.coroutines.GlobalScope
import kotlinx.coroutines.promise


@OptIn(DelicateCoroutinesApi::class)
actual fun suspendTest(block: suspend () -> Unit): dynamic = GlobalScope.promise { block() }
Original file line number Diff line number Diff line change
Expand Up @@ -278,7 +278,7 @@ private class SettingsEncoder(

public override fun encodeBoolean(value: Boolean) = settings.putBoolean(getKey(), value)
public override fun encodeByte(value: Byte) = settings.putInt(getKey(), value.toInt())
public override fun encodeChar(value: Char) = settings.putInt(getKey(), value.toInt())
public override fun encodeChar(value: Char) = settings.putInt(getKey(), value.code)
public override fun encodeDouble(value: Double) = settings.putDouble(getKey(), value)
public override fun encodeEnum(enumDescriptor: SerialDescriptor, index: Int) = settings.putInt(getKey(), index)
public override fun encodeFloat(value: Float) = settings.putFloat(getKey(), value)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -243,7 +243,7 @@ class SettingsSerializationTest {
assertFalse("testClass.boolean?" in settings)
assertEquals(1, settings.getInt("testClass.byte"))
assertFalse("testClass.byte?" in settings)
assertEquals('2'.toInt(), settings.getInt("testClass.char"))
assertEquals('2'.code, settings.getInt("testClass.char"))
assertFalse("testClass.char?" in settings)
assertEquals(3.0, settings.getDouble("testClass.double"))
assertFalse("testClass.double?" in settings)
Expand Down Expand Up @@ -356,7 +356,7 @@ class SettingsSerializationTest {
assertEquals(true, settings.getBooleanOrNull("testClass.boolean?"))
assertEquals(1, settings.getInt("testClass.byte"))
assertEquals(true, settings.getBooleanOrNull("testClass.byte?"))
assertEquals('2'.toInt(), settings.getInt("testClass.char"))
assertEquals('2'.code, settings.getInt("testClass.char"))
assertEquals(true, settings.getBooleanOrNull("testClass.char?"))
assertEquals(3.0, settings.getDouble("testClass.double"))
assertEquals(true, settings.getBooleanOrNull("testClass.double?"))
Expand Down Expand Up @@ -425,8 +425,6 @@ class SettingsSerializationTest {

@Test
fun docsExample() {
@Serializable
data class User(val nickname: String?)

val defaultUser = User("Asdf")

Expand Down Expand Up @@ -506,6 +504,9 @@ class SettingsSerializationTest {
}
}

@Serializable
data class User(val nickname: String?)

@Serializable
data class Foo(val bar: String, val baz: Int = 42)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@ public final class com/russhwolf/settings/MockSettings$Factory : com/russhwolf/s
}

public final class com/russhwolf/settings/MockSettings$Listener : com/russhwolf/settings/SettingsListener {
public fun <init> (Ljava/util/List;Lkotlin/jvm/functions/Function0;)V
public fun deactivate ()V
}

9 changes: 9 additions & 0 deletions multiplatform-settings/api/multiplatform-settings.api
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,7 @@ public final class com/russhwolf/settings/JvmPreferencesSettings$Factory : com/r
}

public final class com/russhwolf/settings/JvmPreferencesSettings$Listener : com/russhwolf/settings/SettingsListener {
public fun <init> (Ljava/util/prefs/Preferences;Ljava/util/prefs/PreferenceChangeListener;)V
public fun deactivate ()V
}

Expand Down Expand Up @@ -105,6 +106,9 @@ public final class com/russhwolf/settings/JvmPropertiesSettings : com/russhwolf/
public fun remove (Ljava/lang/String;)V
}

public final class com/russhwolf/settings/JvmSettingsKt {
}

public final class com/russhwolf/settings/ListenerExtensionsKt {
public static final fun addBooleanListener (Lcom/russhwolf/settings/ObservableSettings;Ljava/lang/String;ZLkotlin/jvm/functions/Function1;)Lcom/russhwolf/settings/SettingsListener;
public static synthetic fun addBooleanListener$default (Lcom/russhwolf/settings/ObservableSettings;Ljava/lang/String;ZLkotlin/jvm/functions/Function1;ILjava/lang/Object;)Lcom/russhwolf/settings/SettingsListener;
Expand Down Expand Up @@ -137,6 +141,7 @@ public final class com/russhwolf/settings/ObservableSettings$DefaultImpls {

public final class com/russhwolf/settings/OperatorsKt {
public static final fun contains (Lcom/russhwolf/settings/Settings;Ljava/lang/String;)Z
public static final synthetic fun get (Lcom/russhwolf/settings/Settings;Ljava/lang/String;)Ljava/lang/Object;
public static final fun get (Lcom/russhwolf/settings/Settings;Ljava/lang/String;D)D
public static final fun get (Lcom/russhwolf/settings/Settings;Ljava/lang/String;F)F
public static final fun get (Lcom/russhwolf/settings/Settings;Ljava/lang/String;I)I
Expand All @@ -148,6 +153,7 @@ public final class com/russhwolf/settings/OperatorsKt {
public static final fun set (Lcom/russhwolf/settings/Settings;Ljava/lang/String;F)V
public static final fun set (Lcom/russhwolf/settings/Settings;Ljava/lang/String;I)V
public static final fun set (Lcom/russhwolf/settings/Settings;Ljava/lang/String;J)V
public static final synthetic fun set (Lcom/russhwolf/settings/Settings;Ljava/lang/String;Ljava/lang/Object;)V
public static final fun set (Lcom/russhwolf/settings/Settings;Ljava/lang/String;Ljava/lang/String;)V
public static final fun set (Lcom/russhwolf/settings/Settings;Ljava/lang/String;Ljava/lang/Void;)V
public static final fun set (Lcom/russhwolf/settings/Settings;Ljava/lang/String;Z)V
Expand Down Expand Up @@ -200,6 +206,9 @@ public final class com/russhwolf/settings/Settings$Factory$DefaultImpls {
public static synthetic fun create$default (Lcom/russhwolf/settings/Settings$Factory;Ljava/lang/String;ILjava/lang/Object;)Lcom/russhwolf/settings/Settings;
}

public final class com/russhwolf/settings/SettingsKt {
}

public abstract interface class com/russhwolf/settings/SettingsListener {
public abstract fun deactivate ()V
}
Expand Down
5 changes: 5 additions & 0 deletions sample/app-android/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,11 @@ android {
packagingOptions {
exclude("META-INF/*.kotlin_module")
}

compileOptions {
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
}
}

dependencies {
Expand Down
2 changes: 1 addition & 1 deletion sample/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ plugins {
}

allprojects {
ext["library_version"] = "0.7.6"
ext["library_version"] = "0.7.7"

repositories {
mavenLocal()
Expand Down
11 changes: 11 additions & 0 deletions sample/shared/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
*/

import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinNativeTarget
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile

plugins {
id("com.android.library")
Expand Down Expand Up @@ -114,8 +115,18 @@ android {
defaultConfig {
minSdkVersion(15)
}

compileOptions {
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
}
}

tasks.withType<KotlinCompile>().all {
kotlinOptions.jvmTarget = "1.8"
}


task("copyFramework") {
val buildType = project.findProperty("kotlin.build.type") as? String ?: "DEBUG"
val framework = (kotlin.targets["ios"] as KotlinNativeTarget).compilations["main"].target.binaries.findFramework("Shared", buildType)!!
Expand Down

0 comments on commit 9627b2a

Please sign in to comment.