From d3a351627ea660507e7c62c7159ec158aa0f837e Mon Sep 17 00:00:00 2001 From: Marcel Kesselring <2410681-Ingwersaft@users.noreply.gitlab.com> Date: Mon, 23 Oct 2023 10:09:05 +0200 Subject: [PATCH 01/12] chore: upgrade kotlin to 1.9.10 and all downstream dependencies necessary for it to work --- build.gradle.kts | 48 +++++++++++-------- gradle.properties | 6 +-- gradle/wrapper/gradle-wrapper.properties | 2 +- settings.gradle.kts | 12 ++--- src/androidMain/AndroidManifest.xml | 1 + .../idp/IdentityProviderClientTests.kt | 0 src/main/AndroidManifest.xml | 1 - 7 files changed, 40 insertions(+), 30 deletions(-) create mode 100644 src/androidMain/AndroidManifest.xml rename src/{androidTest => androidUnitTest}/kotlin/com/liftric/cognito/idp/IdentityProviderClientTests.kt (100%) delete mode 100644 src/main/AndroidManifest.xml diff --git a/build.gradle.kts b/build.gradle.kts index 4a40e33..c51dcba 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,16 +1,17 @@ +import com.android.build.gradle.LibraryExtension import com.liftric.vault.GetVaultSecretTask import org.jetbrains.kotlin.gradle.targets.native.tasks.KotlinNativeSimulatorTest import org.jetbrains.kotlin.gradle.tasks.KotlinCompile import org.jetbrains.kotlin.gradle.tasks.KotlinCompileCommon plugins { - id("com.android.library") version libs.versions.android.tools.gradle kotlin("multiplatform") version libs.versions.kotlin + alias(libs.plugins.kotlin.serialization) + id("com.android.library") version libs.versions.android.tools.gradle alias(libs.plugins.definitions) alias(libs.plugins.npm.publishing) alias(libs.plugins.versioning) alias(libs.plugins.vault.client) - alias(libs.plugins.kotlin.serialization) id("maven-publish") id("signing") } @@ -33,11 +34,12 @@ kotlin { iosSimulatorArm64() - android { - publishLibraryVariants("debug", "release") + androidTarget() { + publishAllLibraryVariants() } jvm() js(IR) { + generateTypeScriptDefinitions() browser { testTask { useMocha { @@ -51,9 +53,9 @@ kotlin { sourceSets { val commonMain by getting { dependencies { - implementation(libs.ktor.client.core) - implementation(libs.kotlinx.coroutines) - implementation(libs.kotlinx.serialization) + api(libs.ktor.client.core) + api(libs.kotlinx.coroutines) + api(libs.kotlinx.serialization) } } val commonTest by getting { @@ -66,15 +68,15 @@ kotlin { } val androidMain by getting { dependencies { - implementation(libs.ktor.client.android) + api(libs.ktor.client.android) } } val jvmMain by getting { dependencies { - implementation(libs.ktor.client.jvm) + api(libs.ktor.client.jvm) } } - val androidTest by getting { + val androidUnitTest by getting { dependencies { implementation(libs.roboelectric) implementation(kotlin("test")) @@ -92,7 +94,7 @@ kotlin { } val iosMain by getting { dependencies { - implementation(libs.ktor.client.darwin) + api(libs.ktor.client.darwin) } } val iosTest by getting @@ -104,7 +106,7 @@ kotlin { } val jsMain by getting { dependencies { - implementation(libs.ktor.client.js) + api(libs.ktor.client.js) } } val jsTest by getting { @@ -122,13 +124,12 @@ kotlin { } } -android { - compileSdk = 30 - - defaultConfig { - minSdk = 21 - targetSdk = 30 - testInstrumentationRunner = "androidx.test.runner" +configure { + defaultConfig.apply { + compileSdk = 30 + minSdkVersion(21) + targetSdkVersion(30) + testInstrumentationRunner = "org.robolectric.RobolectricTestRunner" } compileOptions { @@ -138,9 +139,12 @@ android { testOptions { unitTests.apply { + isIncludeAndroidResources = true isReturnDefaultValues = true } } + + namespace = "com.liftric.cognito.idp" } group = "com.liftric" @@ -352,3 +356,9 @@ vault { vaultToken.set(System.getenv("VAULT_TOKEN")) } } +afterEvaluate { + tasks.getByName("compileTestKotlinJs").dependsOn("createJsEnvHack") + tasks.getByName("compileDebugUnitTestKotlinAndroid").dependsOn("createJsEnvHack") + tasks.getByName("compileTestKotlinJvm").dependsOn("createJsEnvHack") + tasks.getByName("compileReleaseUnitTestKotlinAndroid").dependsOn("createJsEnvHack") +} diff --git a/gradle.properties b/gradle.properties index 0b575b4..dad79fb 100644 --- a/gradle.properties +++ b/gradle.properties @@ -2,9 +2,9 @@ android.useAndroidX=true org.gradle.parallel=true org.gradle.jvmargs=-Xmx4096m org.gradle.vfs.watch=true -kotlin.native.enableDependencyPropagation=false -kotlin.mpp.enableGranularSourceSetsMetadata=true -kotlin.mpp.enableCompatibilityMetadataVariant=true +#kotlin.native.enableDependencyPropagation=false +#kotlin.mpp.enableGranularSourceSetsMetadata=true +#kotlin.mpp.enableCompatibilityMetadataVariant=true kotlin.incremental=true kotlin.incremental.multiplatform=true kotlin.caching.enabled=true diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 2ec77e5..27313fb 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.3-all.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/settings.gradle.kts b/settings.gradle.kts index 8ab52c5..37c85ed 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -16,19 +16,19 @@ dependencyResolutionManagement { versionCatalogs { create("libs") { - version("android-tools-gradle", "7.2.0") - version("kotlin", "1.7.10") - version("ktor", "2.1.3") + version("android-tools-gradle", "8.1.0") + version("kotlin", "1.9.10") + version("ktor", "2.3.3") library("ktor-client-core", "io.ktor", "ktor-client-core").versionRef("ktor") library("ktor-client-android", "io.ktor", "ktor-client-android").versionRef("ktor") library("ktor-client-darwin", "io.ktor", "ktor-client-darwin-legacy").versionRef("ktor") library("ktor-client-jvm", "io.ktor", "ktor-client-java").versionRef("ktor") library("ktor-client-js", "io.ktor", "ktor-client-js").versionRef("ktor") - library("kotlinx-coroutines", "org.jetbrains.kotlinx", "kotlinx-coroutines-core").version("1.6.1") - library("kotlinx-serialization", "org.jetbrains.kotlinx", "kotlinx-serialization-json").version("1.3.3") + library("kotlinx-coroutines", "org.jetbrains.kotlinx", "kotlinx-coroutines-core").version("1.7.3") + library("kotlinx-serialization", "org.jetbrains.kotlinx", "kotlinx-serialization-json").version("1.6.0") library("androidx-test-core", "androidx.test", "core").version("1.2.0") - library("roboelectric", "org.robolectric", "robolectric").version("4.5.1") + library("roboelectric", "org.robolectric", "robolectric").version("4.9") library("opt-java", "com.github.bastiaanjansen", "otp-java").version("1.3.2") plugin("vault-client", "com.liftric.vault-client-plugin").version("2.0.0") diff --git a/src/androidMain/AndroidManifest.xml b/src/androidMain/AndroidManifest.xml new file mode 100644 index 0000000..cc947c5 --- /dev/null +++ b/src/androidMain/AndroidManifest.xml @@ -0,0 +1 @@ + diff --git a/src/androidTest/kotlin/com/liftric/cognito/idp/IdentityProviderClientTests.kt b/src/androidUnitTest/kotlin/com/liftric/cognito/idp/IdentityProviderClientTests.kt similarity index 100% rename from src/androidTest/kotlin/com/liftric/cognito/idp/IdentityProviderClientTests.kt rename to src/androidUnitTest/kotlin/com/liftric/cognito/idp/IdentityProviderClientTests.kt diff --git a/src/main/AndroidManifest.xml b/src/main/AndroidManifest.xml deleted file mode 100644 index c297ecd..0000000 --- a/src/main/AndroidManifest.xml +++ /dev/null @@ -1 +0,0 @@ - From fa3e8d41a63c4cdc43277d4b77b5f7a9536fa37c Mon Sep 17 00:00:00 2001 From: Marcel Kesselring <2410681-Ingwersaft@users.noreply.gitlab.com> Date: Mon, 23 Oct 2023 10:37:55 +0200 Subject: [PATCH 02/12] chore(CI): switch to java 17 --- .github/workflows/ci.yml | 4 ++-- .github/workflows/publish.yml | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 8975cf1..ac29368 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -15,10 +15,10 @@ jobs: steps: - name: Checkout uses: actions/checkout@v2 - - name: set up JDK 11 + - name: set up JDK 17 uses: actions/setup-java@v1 with: - java-version: 11 + java-version: 17 - name: Build and test (Android, Jvm, Js) run: region=${{ secrets.region }} clientId=${{ secrets.clientid }} ./gradlew build test jsTest - name: Build testapp and test request (iOS) diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 9babbb7..a1f48ae 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -9,10 +9,10 @@ jobs: steps: - uses: actions/checkout@v2 - - name: Set up JDK 11 + - name: Set up JDK 17 uses: actions/setup-java@v1 with: - java-version: 11 + java-version: 17 - name: Grant Permission to Execute run: chmod +x gradlew - name: New version From d360bb7a321112c543cd972be56eaf7937933891 Mon Sep 17 00:00:00 2001 From: Marcel Kesselring <2410681-Ingwersaft@users.noreply.gitlab.com> Date: Mon, 23 Oct 2023 11:11:38 +0200 Subject: [PATCH 03/12] chore(iosMain/Base64): use unsigned zero for `NSData.create` call --- src/iosMain/kotlin/com/liftric/cognito/idp/jwt/Base64.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/iosMain/kotlin/com/liftric/cognito/idp/jwt/Base64.kt b/src/iosMain/kotlin/com/liftric/cognito/idp/jwt/Base64.kt index eb2c952..4eadb60 100644 --- a/src/iosMain/kotlin/com/liftric/cognito/idp/jwt/Base64.kt +++ b/src/iosMain/kotlin/com/liftric/cognito/idp/jwt/Base64.kt @@ -13,7 +13,7 @@ internal actual class Base64 { if (remainder > 0) { encoded64 = encoded64.padEnd(input.count() + (4 - remainder), '=') } - return NSData.create(encoded64, 0)?.let { + return NSData.create(encoded64, 0u)?.let { @Suppress("USELESS_CAST") // false positive inspection: konan fails if the cast is removed (NSString.create(it, NSUTF8StringEncoding) as String?) }?: run { From cb088ac07dd64248a5e9d8700c4b35b5e7a1a925 Mon Sep 17 00:00:00 2001 From: Marcel Kesselring <2410681-Ingwersaft@users.noreply.gitlab.com> Date: Mon, 23 Oct 2023 11:30:43 +0200 Subject: [PATCH 04/12] chore(build): make compileTestKotlinIosSimulatorArm64 dependency on createJsEnvHack explicit --- build.gradle.kts | 1 + 1 file changed, 1 insertion(+) diff --git a/build.gradle.kts b/build.gradle.kts index c51dcba..0152761 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -361,4 +361,5 @@ afterEvaluate { tasks.getByName("compileDebugUnitTestKotlinAndroid").dependsOn("createJsEnvHack") tasks.getByName("compileTestKotlinJvm").dependsOn("createJsEnvHack") tasks.getByName("compileReleaseUnitTestKotlinAndroid").dependsOn("createJsEnvHack") + tasks.getByName("compileTestKotlinIosSimulatorArm64").dependsOn("createJsEnvHack") } From e2e12d5d7110cfba7ab1b4f23d2caec29a80a2b3 Mon Sep 17 00:00:00 2001 From: Marcel Kesselring <2410681-Ingwersaft@users.noreply.gitlab.com> Date: Mon, 23 Oct 2023 14:36:52 +0200 Subject: [PATCH 05/12] chore(build): make everything containing compile and kotlin depend on createJsEnvHack explicit --- build.gradle.kts | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/build.gradle.kts b/build.gradle.kts index 0152761..876c9bd 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,8 +1,7 @@ import com.android.build.gradle.LibraryExtension import com.liftric.vault.GetVaultSecretTask import org.jetbrains.kotlin.gradle.targets.native.tasks.KotlinNativeSimulatorTest -import org.jetbrains.kotlin.gradle.tasks.KotlinCompile -import org.jetbrains.kotlin.gradle.tasks.KotlinCompileCommon +import org.jetbrains.kotlin.gradle.tasks.* plugins { kotlin("multiplatform") version libs.versions.kotlin @@ -356,10 +355,12 @@ vault { vaultToken.set(System.getenv("VAULT_TOKEN")) } } -afterEvaluate { - tasks.getByName("compileTestKotlinJs").dependsOn("createJsEnvHack") - tasks.getByName("compileDebugUnitTestKotlinAndroid").dependsOn("createJsEnvHack") - tasks.getByName("compileTestKotlinJvm").dependsOn("createJsEnvHack") - tasks.getByName("compileReleaseUnitTestKotlinAndroid").dependsOn("createJsEnvHack") - tasks.getByName("compileTestKotlinIosSimulatorArm64").dependsOn("createJsEnvHack") +tasks { + afterEvaluate { + all { + if(name.contains("compile", true) && name.contains("kotlin", true)) { + dependsOn("createJsEnvHack") + } + } + } } From a970318dff54984236a401fa44e74065c5b936d4 Mon Sep 17 00:00:00 2001 From: Marcel Kesselring <2410681-Ingwersaft@users.noreply.gitlab.com> Date: Tue, 24 Oct 2023 08:37:40 +0200 Subject: [PATCH 06/12] chore(AbstractIdentityProviderClientTests): log-driven CI debugging --- .../idp/IdentityProviderClientTests.kt | 30 ++++++++++++++----- 1 file changed, 22 insertions(+), 8 deletions(-) diff --git a/src/commonTest/kotlin/com/liftric/cognito/idp/IdentityProviderClientTests.kt b/src/commonTest/kotlin/com/liftric/cognito/idp/IdentityProviderClientTests.kt index c2edf78..22e8eab 100644 --- a/src/commonTest/kotlin/com/liftric/cognito/idp/IdentityProviderClientTests.kt +++ b/src/commonTest/kotlin/com/liftric/cognito/idp/IdentityProviderClientTests.kt @@ -439,18 +439,23 @@ abstract class AbstractIdentityProviderClientTests { val associateSoftwareTokenResponse = provider.associateSoftwareToken(result.AccessToken!!) + val softwareTokenResponse = associateSoftwareTokenResponse.getOrThrow() + println("[Associate software token] softwareTokenResponse=$softwareTokenResponse") assertTrue( - associateSoftwareTokenResponse.getOrThrow().SecretCode.isNotEmpty(), + softwareTokenResponse.SecretCode.isNotEmpty(), "SecretCode is missing in Cognito response" ) - generateTotpCode(associateSoftwareTokenResponse.getOrThrow().SecretCode)?.let { code -> + generateTotpCode(softwareTokenResponse.SecretCode)?.let { code -> + println("[Associate software token] generateTotpCode code=$code") val verificationCodeResponse = provider.verifySoftwareToken( accessToken = result.AccessToken!!, friendlyDeviceName = "Association test device", userCode = code ) - assertEquals("SUCCESS", verificationCodeResponse.getOrThrow().Status, "Failed to verify TOTP token") + val verifySoftwareTokenResponse = verificationCodeResponse.getOrThrow() + println("[Associate software token] verifySoftwareTokenResponse=$verifySoftwareTokenResponse") + assertEquals("SUCCESS", verifySoftwareTokenResponse.Status, "Failed to verify TOTP token") val setupMfa = provider.setUserMFAPreference( accessToken = result.AccessToken!!, @@ -465,12 +470,17 @@ abstract class AbstractIdentityProviderClientTests { provider.signOut(result.AccessToken!!) val signInResponse = provider.signIn(credentials.username, credentials.password).getOrThrow() + println("[Associate software token] signInResponse=$signInResponse") assertNull(signInResponse.AuthenticationResult, "Should need to respond to challenge") - delay(30000) // Wait until new code gets issued + val delayInMillis: Long = 30000 + println("[Associate software token] pre delay (delayInMillis=$delayInMillis") + delay(delayInMillis) // Wait until new code gets issued + println("[Associate software token] post delay") - val newCode = generateTotpCode(associateSoftwareTokenResponse.getOrThrow().SecretCode)!! + val newCode = generateTotpCode(softwareTokenResponse.SecretCode)!! + println("[Associate software token] newCode=$newCode") val challengeResponse = provider.respondToAuthChallenge( "SOFTWARE_TOKEN_MFA", @@ -480,12 +490,16 @@ abstract class AbstractIdentityProviderClientTests { ), signInResponse.Session!! ) + val secondSignInResponse = challengeResponse.getOrThrow() + println("[Associate software token] secondSignInResponse=$secondSignInResponse") - assertNull(challengeResponse.getOrThrow().ChallengeName, "Should not need to respond to challenge") + assertNull(secondSignInResponse.ChallengeName, "Should not need to respond to challenge") - deleteUser(challengeResponse.getOrThrow().AuthenticationResult!!.AccessToken!!) + deleteUser(secondSignInResponse.AuthenticationResult!!.AccessToken!!) - delay(30000) // Wait until new code gets issued before next test run + println("[Associate software token] second pre delay (delayInMillis=$delayInMillis") + delay(delayInMillis) // Wait until new code gets issued before next test run + println("[Associate software token] second post delay") } } } From d3609997bc7e366b2f7822a2c332970203e87280 Mon Sep 17 00:00:00 2001 From: Marcel Kesselring <2410681-Ingwersaft@users.noreply.gitlab.com> Date: Tue, 24 Oct 2023 09:45:38 +0200 Subject: [PATCH 07/12] chore(build): make publishAndroidDebugPublicationToSonatypeRepository dependency on signAndroidReleasePublication explicit --- build.gradle.kts | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/build.gradle.kts b/build.gradle.kts index 876c9bd..acc8d48 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,4 +1,5 @@ import com.android.build.gradle.LibraryExtension +import com.android.build.gradle.internal.tasks.factory.dependsOn import com.liftric.vault.GetVaultSecretTask import org.jetbrains.kotlin.gradle.targets.native.tasks.KotlinNativeSimulatorTest import org.jetbrains.kotlin.gradle.tasks.* @@ -144,6 +145,13 @@ configure { } namespace = "com.liftric.cognito.idp" + + publishing { + multipleVariants { + allVariants() + withJavadocJar() + } + } } group = "com.liftric" @@ -362,5 +370,6 @@ tasks { dependsOn("createJsEnvHack") } } + named("publishAndroidDebugPublicationToSonatypeRepository").dependsOn("signAndroidReleasePublication") } } From c00cdb0478c7d1b87621e20e521ef1ed24abb9cf Mon Sep 17 00:00:00 2001 From: Marcel Kesselring <2410681-Ingwersaft@users.noreply.gitlab.com> Date: Tue, 24 Oct 2023 09:52:38 +0200 Subject: [PATCH 08/12] chore(build): make publishAndroidReleasePublicationToSonatypeRepository dependency on signAndroidDebugPublication explicit --- build.gradle.kts | 1 + 1 file changed, 1 insertion(+) diff --git a/build.gradle.kts b/build.gradle.kts index acc8d48..914adc1 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -371,5 +371,6 @@ tasks { } } named("publishAndroidDebugPublicationToSonatypeRepository").dependsOn("signAndroidReleasePublication") + named("publishAndroidReleasePublicationToSonatypeRepository").dependsOn("signAndroidDebugPublication") } } From 21bc46e14dc48cad8fa3ea9161eb58920ca03d6a Mon Sep 17 00:00:00 2001 From: Marcel Kesselring <2410681-Ingwersaft@users.noreply.gitlab.com> Date: Tue, 24 Oct 2023 10:26:17 +0200 Subject: [PATCH 09/12] chore(build): bruteforce publish dependency on signing --- build.gradle.kts | 28 ++++++++++++++++++---------- 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/build.gradle.kts b/build.gradle.kts index 914adc1..0a08542 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -326,13 +326,15 @@ npmPublish { named("js") { packageName.set(project.name) packageJson { - keywords.set(listOf( - "kotlin", - "cognito", - "identity-provider", - "liftric", - "aws" - )) + keywords.set( + listOf( + "kotlin", + "cognito", + "identity-provider", + "liftric", + "aws" + ) + ) license.set("MIT") description.set("Lightweight AWS Cognito Identity Provider client.") homepage.set("https://github.com/liftric/cognito-idp") @@ -365,12 +367,18 @@ vault { } tasks { afterEvaluate { + val signingTasks = filter { it.name.startsWith("sign") } all { - if(name.contains("compile", true) && name.contains("kotlin", true)) { + // lets bruteforce this until the plugins play along nicely again + + if (name.contains("compile", true) && name.contains("kotlin", true)) { dependsOn("createJsEnvHack") } + if (name.startsWith("publish")) { + signingTasks.forEach { signTask -> + dependsOn(signTask) + } + } } - named("publishAndroidDebugPublicationToSonatypeRepository").dependsOn("signAndroidReleasePublication") - named("publishAndroidReleasePublicationToSonatypeRepository").dependsOn("signAndroidDebugPublication") } } From daf1c50fc85181ef777cffe2508ce06748e5ae89 Mon Sep 17 00:00:00 2001 From: Marcel Kesselring <2410681-Ingwersaft@users.noreply.gitlab.com> Date: Tue, 24 Oct 2023 12:52:52 +0200 Subject: [PATCH 10/12] chore(build/js): disable minimized-member-names --- build.gradle.kts | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/build.gradle.kts b/build.gradle.kts index 0a08542..da9f4c9 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -48,6 +48,11 @@ kotlin { } } binaries.library() + compilations.all { + compileTaskProvider.configure { + compilerOptions.freeCompilerArgs.add("-Xir-minimized-member-names=false") + } + } } sourceSets { From adc71a3dcbfa4b5b0a17adfd96c1393f1994aede Mon Sep 17 00:00:00 2001 From: Marcel Kesselring <2410681-Ingwersaft@users.noreply.gitlab.com> Date: Tue, 24 Oct 2023 13:47:38 +0200 Subject: [PATCH 11/12] chore(build): set JS output granularity to whole-program --- gradle.properties | 1 + 1 file changed, 1 insertion(+) diff --git a/gradle.properties b/gradle.properties index dad79fb..58f2086 100644 --- a/gradle.properties +++ b/gradle.properties @@ -11,3 +11,4 @@ kotlin.caching.enabled=true kotlin.code.style=official kotlin.js.generate.externals=true kotlin.native.binary.memoryModel=experimental +kotlin.js.ir.output.granularity=whole-program From de06c8faf7da01265394c0b5ea8ad3d657e613b2 Mon Sep 17 00:00:00 2001 From: Marcel Kesselring <2410681-Ingwersaft@users.noreply.gitlab.com> Date: Tue, 24 Oct 2023 14:55:00 +0200 Subject: [PATCH 12/12] chore(build): downgrade to same dependency versions ktor uses --- gradle.properties | 3 --- settings.gradle.kts | 6 +++--- 2 files changed, 3 insertions(+), 6 deletions(-) diff --git a/gradle.properties b/gradle.properties index 58f2086..6d6a4e8 100644 --- a/gradle.properties +++ b/gradle.properties @@ -2,9 +2,6 @@ android.useAndroidX=true org.gradle.parallel=true org.gradle.jvmargs=-Xmx4096m org.gradle.vfs.watch=true -#kotlin.native.enableDependencyPropagation=false -#kotlin.mpp.enableGranularSourceSetsMetadata=true -#kotlin.mpp.enableCompatibilityMetadataVariant=true kotlin.incremental=true kotlin.incremental.multiplatform=true kotlin.caching.enabled=true diff --git a/settings.gradle.kts b/settings.gradle.kts index 37c85ed..3511839 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -18,15 +18,15 @@ dependencyResolutionManagement { create("libs") { version("android-tools-gradle", "8.1.0") version("kotlin", "1.9.10") - version("ktor", "2.3.3") + version("ktor", "2.3.5") library("ktor-client-core", "io.ktor", "ktor-client-core").versionRef("ktor") library("ktor-client-android", "io.ktor", "ktor-client-android").versionRef("ktor") library("ktor-client-darwin", "io.ktor", "ktor-client-darwin-legacy").versionRef("ktor") library("ktor-client-jvm", "io.ktor", "ktor-client-java").versionRef("ktor") library("ktor-client-js", "io.ktor", "ktor-client-js").versionRef("ktor") - library("kotlinx-coroutines", "org.jetbrains.kotlinx", "kotlinx-coroutines-core").version("1.7.3") - library("kotlinx-serialization", "org.jetbrains.kotlinx", "kotlinx-serialization-json").version("1.6.0") + library("kotlinx-coroutines", "org.jetbrains.kotlinx", "kotlinx-coroutines-core").version("1.7.2") + library("kotlinx-serialization", "org.jetbrains.kotlinx", "kotlinx-serialization-json").version("1.5.1") library("androidx-test-core", "androidx.test", "core").version("1.2.0") library("roboelectric", "org.robolectric", "robolectric").version("4.9") library("opt-java", "com.github.bastiaanjansen", "otp-java").version("1.3.2")