diff --git a/core/build.gradle.kts b/core/build.gradle.kts index f7277233d..57dfd13f6 100644 --- a/core/build.gradle.kts +++ b/core/build.gradle.kts @@ -1,3 +1,5 @@ +import com.vanniktech.maven.publish.SonatypeHost +import org.jetbrains.dokka.gradle.DokkaTask plugins { kotlin("multiplatform") @@ -6,12 +8,14 @@ plugins { id("com.vanniktech.maven.publish") id("org.jetbrains.dokka") id("org.jetbrains.kotlinx.kover") + id("co.touchlab.faktory.kmmbridge") version("0.3.2") `maven-publish` + kotlin("native.cocoapods") id("kotlinx-atomicfu") } kotlin { - androidTarget() + android() jvm() iosArm64() iosX64() @@ -32,8 +36,67 @@ kotlin { } android { - + sourceSets["main"].manifest.srcFile("src/androidMain/AndroidManifest.xml") compileSdk = 33 - sourceSets["main"].manifest.srcFile("src/androidMain/AndroidManifest.xml") + defaultConfig { + minSdk = 24 + targetSdk = 33 + } + + lint { + disable += "ComposableModifierFactory" + disable += "ModifierFactoryExtensionFunction" + disable += "ModifierFactoryReturnType" + disable += "ModifierFactoryUnreferencedReceiver" + } + + compileOptions { + sourceCompatibility = JavaVersion.VERSION_11 + targetCompatibility = JavaVersion.VERSION_11 + } +} + +tasks.withType().configureEach { + dokkaSourceSets.configureEach { + reportUndocumented.set(false) + skipDeprecated.set(true) + jdkVersion.set(11) + } +} + +mavenPublishing { + publishToMavenCentral(SonatypeHost.S01) + signAllPublications() +} + +addGithubPackagesRepository() +kmmbridge { + githubReleaseArtifacts() + githubReleaseVersions() + versionPrefix.set(libs.versions.store.get()) + spm() +} + +koverMerged { + enable() + + xmlReport { + onCheck.set(true) + reportFile.set(layout.projectDirectory.file("kover/coverage.xml")) + } + + htmlReport { + onCheck.set(true) + reportDir.set(layout.projectDirectory.dir("kover/html")) + } + + verify { + onCheck.set(true) + } +} + +atomicfu { + transformJvm = false + transformJs = false } diff --git a/core/gradle.properties b/core/gradle.properties new file mode 100644 index 000000000..1fe16b330 --- /dev/null +++ b/core/gradle.properties @@ -0,0 +1,3 @@ +POM_NAME=org.mobilenativefoundation.store +POM_ARTIFACT_ID=core5 +POM_PACKAGING=jar \ No newline at end of file diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index c80fac0e9..39809f772 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -21,7 +21,7 @@ testCore = "1.5.0" kmmBridge = "0.3.2" ktlint = "0.39.0" kover = "0.6.0" -store = "5.0.0" +store = "5.1.0-alpha01" truth = "1.1.3" [libraries] @@ -53,4 +53,4 @@ kotlinx-coroutines-test = { group = "org.jetbrains.kotlinx", name = "kotlinx-cor junit = { group = "junit", name = "junit", version.ref = "junit" } google-truth = { group = "com.google.truth", name = "truth", version.ref = "truth" } touchlab-kermit = { group = "co.touchlab", name = "kermit", version.ref = "kermit" } -turbine = "app.cash.turbine:turbine:0.12.3" +turbine = "app.cash.turbine:turbine:1.0.0" diff --git a/paging/build.gradle.kts b/paging/build.gradle.kts index 536fb72a1..f313ed179 100644 --- a/paging/build.gradle.kts +++ b/paging/build.gradle.kts @@ -1,3 +1,5 @@ +import com.vanniktech.maven.publish.SonatypeHost +import org.jetbrains.dokka.gradle.DokkaTask plugins { kotlin("multiplatform") @@ -6,13 +8,29 @@ plugins { id("com.vanniktech.maven.publish") id("org.jetbrains.dokka") id("org.jetbrains.kotlinx.kover") + id("co.touchlab.faktory.kmmbridge") version("0.3.2") `maven-publish` + kotlin("native.cocoapods") id("kotlinx-atomicfu") - id("org.jetbrains.compose") version("1.5.1") } kotlin { - androidTarget() + android() + jvm() + iosArm64() + iosX64() + linuxX64() + iosSimulatorArm64() + js { + browser() + nodejs() + } + cocoapods { + summary = "Store5/Paging" + homepage = "https://github.com/MobileNativeFoundation/Store" + ios.deploymentTarget = "13" + version = libs.versions.store.get() + } sourceSets { val commonMain by getting { @@ -20,28 +38,17 @@ kotlin { implementation(libs.kotlin.stdlib) implementation(project(":store")) implementation(project(":cache")) - implementation(compose.runtime) - implementation(compose.ui) - implementation(compose.foundation) - implementation(compose.material) api(project(":core")) + implementation(libs.kotlinx.coroutines.core) } } - val androidMain by getting { - dependencies { - implementation(libs.androidx.paging.runtime) - implementation(libs.androidx.paging.compose) - } - } - @OptIn(org.jetbrains.compose.ExperimentalComposeLibrary::class) + val androidMain by getting val commonTest by getting { dependencies { implementation(kotlin("test")) implementation(libs.turbine) implementation(libs.kotlinx.coroutines.test) - implementation(compose.uiTestJUnit4) - implementation(compose.ui) } } } @@ -53,6 +60,7 @@ android { defaultConfig { minSdk = 24 + targetSdk = 33 } lint { @@ -67,3 +75,47 @@ android { targetCompatibility = JavaVersion.VERSION_11 } } + +tasks.withType().configureEach { + dokkaSourceSets.configureEach { + reportUndocumented.set(false) + skipDeprecated.set(true) + jdkVersion.set(11) + } +} + +mavenPublishing { + publishToMavenCentral(SonatypeHost.S01) + signAllPublications() +} + +addGithubPackagesRepository() +kmmbridge { + githubReleaseArtifacts() + githubReleaseVersions() + versionPrefix.set(libs.versions.store.get()) + spm() +} + +koverMerged { + enable() + + xmlReport { + onCheck.set(true) + reportFile.set(layout.projectDirectory.file("kover/coverage.xml")) + } + + htmlReport { + onCheck.set(true) + reportDir.set(layout.projectDirectory.dir("kover/html")) + } + + verify { + onCheck.set(true) + } +} + +atomicfu { + transformJvm = false + transformJs = false +} diff --git a/paging/gradle.properties b/paging/gradle.properties new file mode 100644 index 000000000..75852bdb3 --- /dev/null +++ b/paging/gradle.properties @@ -0,0 +1,3 @@ +POM_NAME=org.mobilenativefoundation.store +POM_ARTIFACT_ID=paging5 +POM_PACKAGING=jar \ No newline at end of file diff --git a/paging/src/commonTest/kotlin/org/mobilenativefoundation/store/paging5/LaunchPagingStoreTests.kt b/paging/src/commonTest/kotlin/org/mobilenativefoundation/store/paging5/LaunchPagingStoreTests.kt index 85bc4db4b..ba3a455a7 100644 --- a/paging/src/commonTest/kotlin/org/mobilenativefoundation/store/paging5/LaunchPagingStoreTests.kt +++ b/paging/src/commonTest/kotlin/org/mobilenativefoundation/store/paging5/LaunchPagingStoreTests.kt @@ -5,8 +5,7 @@ import kotlinx.coroutines.flow.first import kotlinx.coroutines.flow.flowOf import kotlinx.coroutines.test.TestScope import kotlinx.coroutines.test.runTest -import org.junit.Before -import org.junit.Test +import org.mobilenativefoundation.store.core5.ExperimentalStoreApi import org.mobilenativefoundation.store.paging5.util.FakePostApi import org.mobilenativefoundation.store.paging5.util.FakePostDatabase import org.mobilenativefoundation.store.paging5.util.PostApi @@ -15,12 +14,13 @@ import org.mobilenativefoundation.store.paging5.util.PostDatabase import org.mobilenativefoundation.store.paging5.util.PostKey import org.mobilenativefoundation.store.paging5.util.PostPutRequestResult import org.mobilenativefoundation.store.paging5.util.PostStoreFactory -import org.mobilenativefoundation.store.core5.ExperimentalStoreApi import org.mobilenativefoundation.store.store5.MutableStore import org.mobilenativefoundation.store.store5.StoreReadRequest import org.mobilenativefoundation.store.store5.StoreReadResponse import org.mobilenativefoundation.store.store5.StoreReadResponseOrigin import org.mobilenativefoundation.store.store5.StoreWriteRequest +import kotlin.test.BeforeTest +import kotlin.test.Test import kotlin.test.assertEquals import kotlin.test.assertIs @@ -33,7 +33,7 @@ class LaunchPagingStoreTests { private lateinit var db: PostDatabase private lateinit var store: MutableStore - @Before + @BeforeTest fun setup() { api = FakePostApi() db = FakePostDatabase(userId) diff --git a/store/build.gradle.kts b/store/build.gradle.kts index 22a2d1bde..a495ae20e 100644 --- a/store/build.gradle.kts +++ b/store/build.gradle.kts @@ -116,7 +116,7 @@ addGithubPackagesRepository() kmmbridge { githubReleaseArtifacts() githubReleaseVersions() - versionPrefix.set("5.0.0") + versionPrefix.set(libs.versions.store.get()) spm() }