diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 5ecd220..6f46567 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,11 +1,29 @@ +## Generated by $ ./gradlew refreshVersionsCatalog + +[bundles] + +ktor-client = ["ktor-client-core", "ktor-serialization-kotlinx-json", "ktor-client-logging", "ktor-client-auth", "ktor-client-content-negotiation"] +jvm-test = ["juinit-jupiter", "mockito-junit-jupiter", "mockito-kotlin", "ktor-client-mock", "assertj-core"] + +[plugins] + +kotlinMultiplatform = { id = "org.jetbrains.kotlin.multiplatform", version.ref = "kotlin" } +kotlinx-serialization = { id = "org.jetbrains.kotlin.plugin.serialization", version.ref = "kotlin" } + +#quality and coverage +kover = { id = "org.jetbrains.kotlinx.kover", version.ref = "kover" } + +#publishing +multiplatform-swiftpackage = { id = "io.github.luca992.multiplatform-swiftpackage", version.ref = "multiplatform-swiftpackage" } + [versions] -kotlin = "1.9.20" -junit = "4.13.2" + +kotlin = "2.0.0-Beta1" ktor = "2.3.6" -kotlinx-serialization = "1.6.0" +kotlinx-serialization = "1.6.1" kover = "0.7.4" -jupiter = "5.10.1" +junit = "5.10.1" mockito-junit-jupiter = "5.7.0" mockito-kotlin = "5.1.0" assertj-core = "3.24.2" @@ -14,9 +32,7 @@ assertj-core = "3.24.2" multiplatform-swiftpackage = "2.2.0" [libraries] -kotlin-test = { module = "org.jetbrains.kotlin:kotlin-test", version.ref = "kotlin" } -kotlin-test-junit = { module = "org.jetbrains.kotlin:kotlin-test-junit", version.ref = "kotlin" } -junit = { group = "junit", name = "junit", version.ref = "junit" } + kotlinx-coroutines-core = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-core", version.ref = "kotlin" } kotlinx-serialization-json = { module = "org.jetbrains.kotlinx:kotlinx-serialization-json", version.ref = "kotlinx-serialization" } ktor-client-core = { module = "io.ktor:ktor-client-core", version.ref = "ktor" } @@ -28,25 +44,12 @@ ktor-client-content-negotiation = { module = "io.ktor:ktor-client-content-negoti #jvm-libraries ktor-client-cio = { module = "io.ktor:ktor-client-cio", version.ref = "ktor" } -## testing -jupiter-api = { module = "org.junit.jupiter:junit-jupiter-api", version.ref = "jupiter" } -jupiter-engine = { module = "org.junit.jupiter:junit-jupiter-engine", version.ref = "jupiter" } +kotlin-test = { module = "org.jetbrains.kotlin:kotlin-test", version.ref = "kotlin" } +kotlin-test-junit = { module = "org.jetbrains.kotlin:kotlin-test-junit", version.ref = "kotlin" } + +junit-bom = { module = "org.junit:junit-bom", version.ref = "junit" } +juinit-jupiter = { module = "org.junit.jupiter:junit-jupiter", version.ref = "junit" } mockito-junit-jupiter = { module = "org.mockito:mockito-junit-jupiter", version.ref = "mockito-junit-jupiter" } mockito-kotlin = { module = "org.mockito.kotlin:mockito-kotlin", version.ref = "mockito-kotlin" } ktor-client-mock = { module = "io.ktor:ktor-client-mock", version.ref = "ktor" } assertj-core = { module = "org.assertj:assertj-core", version.ref = "assertj-core" } - -[bundles] -ktor-client = ["ktor-client-core", "ktor-serialization-kotlinx-json", "ktor-client-logging", "ktor-client-auth", "ktor-client-content-negotiation"] -jvm-test = ["junit", "jupiter-api", "jupiter-engine", "mockito-junit-jupiter", "mockito-kotlin", "ktor-client-mock", "assertj-core"] - - -[plugins] -kotlinMultiplatform = { id = "org.jetbrains.kotlin.multiplatform", version.ref = "kotlin" } -kotlinx-serialization = { id = "org.jetbrains.kotlin.plugin.serialization", version.ref = "kotlin" } - -#quality and coverage -kover = { id = "org.jetbrains.kotlinx.kover", version.ref = "kover" } - -#publishing -multiplatform-swiftpackage = { id = "io.github.luca992.multiplatform-swiftpackage", version.ref = "multiplatform-swiftpackage" } diff --git a/settings.gradle.kts b/settings.gradle.kts index 81552cb..b6d670c 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -18,4 +18,22 @@ dependencyResolutionManagement { } } +plugins { + id("de.fayard.refreshVersions") version "0.60.3" +} + +fun String.isNonStable(): Boolean { + val stableKeyword = listOf("RELEASE", "FINAL", "GA").any { toUpperCase().contains(it) } + val regex = "^[0-9,.v-]+(-r)?$".toRegex() + val isStable = stableKeyword || regex.matches(this) + return isStable.not() +} + +refreshVersions { + rejectVersionIf { + candidate.value.isNonStable() + } +} + + include(":shared") \ No newline at end of file diff --git a/shared/src/jvmTest/kotlin/com/snacks/lemonsqueezy/api/LemonSqueezyTest.kt b/shared/src/jvmTest/kotlin/com/snacks/lemonsqueezy/api/LemonSqueezyTest.kt index 5a1a083..51cc457 100644 --- a/shared/src/jvmTest/kotlin/com/snacks/lemonsqueezy/api/LemonSqueezyTest.kt +++ b/shared/src/jvmTest/kotlin/com/snacks/lemonsqueezy/api/LemonSqueezyTest.kt @@ -1,7 +1,7 @@ package com.snacks.lemonsqueezy.api -import org.junit.Assert.assertEquals -import org.junit.Test +import org.junit.jupiter.api.Assertions.assertEquals +import org.junit.jupiter.api.Test class LemonSqueezyTest { diff --git a/shared/src/jvmTest/kotlin/com/snacks/lemonsqueezy/api/internal/network/ktor/DefaultHttpRequesterTest.kt b/shared/src/jvmTest/kotlin/com/snacks/lemonsqueezy/api/internal/network/ktor/DefaultHttpRequesterTest.kt index 228e5dd..833ce3b 100644 --- a/shared/src/jvmTest/kotlin/com/snacks/lemonsqueezy/api/internal/network/ktor/DefaultHttpRequesterTest.kt +++ b/shared/src/jvmTest/kotlin/com/snacks/lemonsqueezy/api/internal/network/ktor/DefaultHttpRequesterTest.kt @@ -1,15 +1,11 @@ package com.snacks.lemonsqueezy.api.internal.network.ktor import com.snacks.lemonsqueezy.api.mockHttpClient -import com.snacks.lemonsqueezy.api.internal.network.ktor.DefaultHttpRequester -import com.snacks.lemonsqueezy.api.internal.network.ktor.HttpRequester -import com.snacks.lemonsqueezy.api.internal.network.ktor.default -import com.snacks.lemonsqueezy.api.internal.network.ktor.performRequest import io.ktor.client.* import io.ktor.client.request.* import kotlinx.coroutines.runBlocking -import org.junit.Test import org.junit.jupiter.api.Assertions.assertEquals +import org.junit.jupiter.api.Test class DefaultHttpRequesterTest { private lateinit var httpClient: HttpClient diff --git a/shared/src/jvmTest/kotlin/com/snacks/lemonsqueezy/api/license/LicenseKeysApiTest.kt b/shared/src/jvmTest/kotlin/com/snacks/lemonsqueezy/api/license/LicenseKeysApiTest.kt index c55b36b..87b08a7 100644 --- a/shared/src/jvmTest/kotlin/com/snacks/lemonsqueezy/api/license/LicenseKeysApiTest.kt +++ b/shared/src/jvmTest/kotlin/com/snacks/lemonsqueezy/api/license/LicenseKeysApiTest.kt @@ -13,8 +13,8 @@ import io.ktor.client.request.* import io.ktor.http.* import io.ktor.util.reflect.* import kotlinx.coroutines.runBlocking -import org.junit.Assert.assertEquals -import org.junit.Test +import org.junit.jupiter.api.Assertions.assertEquals +import org.junit.jupiter.api.Test import org.mockito.Mockito.mock import org.mockito.kotlin.any import org.mockito.kotlin.argThat diff --git a/shared/src/jvmTest/kotlin/com/snacks/lemonsqueezy/api/user/UsersApiTest.kt b/shared/src/jvmTest/kotlin/com/snacks/lemonsqueezy/api/user/UsersApiTest.kt index 284ecba..a5a1381 100644 --- a/shared/src/jvmTest/kotlin/com/snacks/lemonsqueezy/api/user/UsersApiTest.kt +++ b/shared/src/jvmTest/kotlin/com/snacks/lemonsqueezy/api/user/UsersApiTest.kt @@ -7,8 +7,8 @@ import io.ktor.client.request.* import io.ktor.http.* import io.ktor.util.reflect.* import kotlinx.coroutines.runBlocking -import org.junit.Assert.assertEquals -import org.junit.Test +import org.junit.jupiter.api.Assertions.assertEquals +import org.junit.jupiter.api.Test import org.mockito.Mockito import org.mockito.kotlin.argThat import org.mockito.kotlin.argumentCaptor diff --git a/versions.properties b/versions.properties new file mode 100644 index 0000000..9a8b8ad --- /dev/null +++ b/versions.properties @@ -0,0 +1,10 @@ +#### Dependencies and Plugin versions with their available updates. +#### Generated by `./gradlew refreshVersions` version 0.60.3 +#### +#### Don't manually edit or split the comments that start with four hashtags (####), +#### they will be overwritten by refreshVersions. +#### +#### suppress inspection "SpellCheckingInspection" for whole file +#### suppress inspection "UnusedProperty" for whole file +#### +#### NOTE: Some versions are filtered by the rejectVersionIf predicate. See the settings.gradle.kts file.