diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index 736af0913e6..46e591d2714 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -142,14 +142,14 @@ jobs: if: "! github.event.pull_request.head.repo.fork " uses: gradle/gradle-build-action@v2 with: - arguments: koverMergedReport + arguments: koverXmlReport - name: Add coverage report to PR if: "! github.event.pull_request.head.repo.fork " id: kover uses: mi-kas/kover-report@v1 with: - path: build/reports/kover/merged/xml/report.xml + path: build/reports/kover/report.xml token: ${{ secrets.GITHUB_TOKEN }} title: Kover Report update-comment: true diff --git a/arrow-libs/core/arrow-atomic/build.gradle.kts b/arrow-libs/core/arrow-atomic/build.gradle.kts index 71cb4254708..332a295df0a 100644 --- a/arrow-libs/core/arrow-atomic/build.gradle.kts +++ b/arrow-libs/core/arrow-atomic/build.gradle.kts @@ -6,9 +6,9 @@ plugins { alias(libs.plugins.arrowGradleConfig.publish) alias(libs.plugins.arrowGradleConfig.versioning) alias(libs.plugins.kotest.multiplatform) + alias(libs.plugins.kotlinx.kover) } -apply(from = property("TEST_COVERAGE")) apply(from = property("ANIMALSNIFFER_MPP")) val enableCompatibilityMetadataVariant = diff --git a/arrow-libs/core/arrow-continuations/build.gradle.kts b/arrow-libs/core/arrow-continuations/build.gradle.kts index c26bea969c7..d3565d208d0 100644 --- a/arrow-libs/core/arrow-continuations/build.gradle.kts +++ b/arrow-libs/core/arrow-continuations/build.gradle.kts @@ -5,11 +5,11 @@ plugins { alias(libs.plugins.arrowGradleConfig.kotlin) alias(libs.plugins.arrowGradleConfig.publish) alias(libs.plugins.arrowGradleConfig.versioning) + alias(libs.plugins.kotlinx.kover) + alias(libs.plugins.kotest.multiplatform) } -apply(from = property("TEST_COVERAGE")) apply(from = property("ANIMALSNIFFER_MPP")) -apply(plugin = "io.kotest.multiplatform") val enableCompatibilityMetadataVariant = providers.gradleProperty("kotlin.mpp.enableCompatibilityMetadataVariant") diff --git a/arrow-libs/core/arrow-core-retrofit/build.gradle.kts b/arrow-libs/core/arrow-core-retrofit/build.gradle.kts index 03d99c26ab6..248e13b0bc1 100644 --- a/arrow-libs/core/arrow-core-retrofit/build.gradle.kts +++ b/arrow-libs/core/arrow-core-retrofit/build.gradle.kts @@ -5,9 +5,9 @@ plugins { alias(libs.plugins.arrowGradleConfig.kotlin) alias(libs.plugins.arrowGradleConfig.publish) alias(libs.plugins.kotlinx.serialization) // Needed for testing only + alias(libs.plugins.kotlinx.kover) } -apply(from = property("TEST_COVERAGE")) apply(from = property("ANIMALSNIFFER")) val enableCompatibilityMetadataVariant = diff --git a/arrow-libs/core/arrow-core/build.gradle.kts b/arrow-libs/core/arrow-core/build.gradle.kts index 5d94368e143..d18e202bebb 100644 --- a/arrow-libs/core/arrow-core/build.gradle.kts +++ b/arrow-libs/core/arrow-core/build.gradle.kts @@ -7,10 +7,10 @@ plugins { alias(libs.plugins.arrowGradleConfig.kotlin) alias(libs.plugins.arrowGradleConfig.publish) alias(libs.plugins.arrowGradleConfig.versioning) + alias(libs.plugins.kotlinx.kover) + alias(libs.plugins.kotest.multiplatform) } -apply(plugin = "io.kotest.multiplatform") -apply(from = property("TEST_COVERAGE")) apply(from = property("ANIMALSNIFFER_MPP")) val enableCompatibilityMetadataVariant = diff --git a/arrow-libs/fx/arrow-fx-coroutines/build.gradle.kts b/arrow-libs/fx/arrow-fx-coroutines/build.gradle.kts index a05a03eb49e..994c3a07b5f 100644 --- a/arrow-libs/fx/arrow-fx-coroutines/build.gradle.kts +++ b/arrow-libs/fx/arrow-fx-coroutines/build.gradle.kts @@ -5,10 +5,10 @@ plugins { alias(libs.plugins.arrowGradleConfig.kotlin) alias(libs.plugins.arrowGradleConfig.publish) alias(libs.plugins.arrowGradleConfig.versioning) + alias(libs.plugins.kotlinx.kover) } apply(plugin = "io.kotest.multiplatform") -apply(from = property("TEST_COVERAGE")) val enableCompatibilityMetadataVariant = providers.gradleProperty("kotlin.mpp.enableCompatibilityMetadataVariant") diff --git a/arrow-libs/fx/arrow-fx-stm/build.gradle.kts b/arrow-libs/fx/arrow-fx-stm/build.gradle.kts index 48d93b19539..6abc0499027 100644 --- a/arrow-libs/fx/arrow-fx-stm/build.gradle.kts +++ b/arrow-libs/fx/arrow-fx-stm/build.gradle.kts @@ -5,10 +5,10 @@ plugins { alias(libs.plugins.arrowGradleConfig.kotlin) alias(libs.plugins.arrowGradleConfig.publish) alias(libs.plugins.arrowGradleConfig.versioning) + alias(libs.plugins.kotlinx.kover) + alias(libs.plugins.kotest.multiplatform) } -apply(plugin = "io.kotest.multiplatform") -apply(from = property("TEST_COVERAGE")) apply(from = property("ANIMALSNIFFER_MPP")) val enableCompatibilityMetadataVariant = diff --git a/arrow-libs/gradle/animalsniffer-mpp.gradle b/arrow-libs/gradle/animalsniffer-mpp.gradle index 9c6f9f4835c..5b490429a43 100644 --- a/arrow-libs/gradle/animalsniffer-mpp.gradle +++ b/arrow-libs/gradle/animalsniffer-mpp.gradle @@ -23,12 +23,12 @@ kotlin { sourceSets { commonMain { dependencies { - implementation "org.codehaus.mojo:animal-sniffer-annotations:1.21" + implementation "org.codehaus.mojo:animal-sniffer-annotations:1.23" } } jvmMain { dependencies { - implementation "org.codehaus.mojo:animal-sniffer-annotations:1.21" + implementation "org.codehaus.mojo:animal-sniffer-annotations:1.23" } } } diff --git a/arrow-libs/gradle/animalsniffer.gradle b/arrow-libs/gradle/animalsniffer.gradle index adf8738c857..ed8b4a9764a 100644 --- a/arrow-libs/gradle/animalsniffer.gradle +++ b/arrow-libs/gradle/animalsniffer.gradle @@ -22,6 +22,6 @@ animalsniffer { ignore 'java.lang.*' } dependencies { - implementation "org.codehaus.mojo:animal-sniffer-annotations:1.21" + implementation "org.codehaus.mojo:animal-sniffer-annotations:1.23" signature 'net.sf.androidscents.signature:android-api-level-21:5.0.1_r2@signature' } diff --git a/arrow-libs/gradle/test-coverage.gradle b/arrow-libs/gradle/test-coverage.gradle deleted file mode 100644 index 7373143b7b8..00000000000 --- a/arrow-libs/gradle/test-coverage.gradle +++ /dev/null @@ -1,34 +0,0 @@ -/* - * Copyright (C) 2020 The Arrow Authors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -// TODO: Investigate Code Coverage Intellij plugin: https://www.jetbrains.com/help/idea/code-coverage.html -// Uncomment these lines and execute `jacocoTestReport` task for checking code coverate -//apply plugin: 'jacoco' -// -//jacoco { -// toolVersion = "$JACOCO_VERSION" -//} -// -//jacocoTestReport { -// reports { -// xml.enabled true -// html.enabled true -// } -// dependsOn test // tests are required to run before generating the report -// mustRunAfter test -//} - -apply plugin: 'kover' diff --git a/arrow-libs/optics/arrow-optics-ksp-plugin/build.gradle.kts b/arrow-libs/optics/arrow-optics-ksp-plugin/build.gradle.kts index b9ce7d83753..886aae22594 100644 --- a/arrow-libs/optics/arrow-optics-ksp-plugin/build.gradle.kts +++ b/arrow-libs/optics/arrow-optics-ksp-plugin/build.gradle.kts @@ -5,13 +5,13 @@ plugins { alias(libs.plugins.arrowGradleConfig.kotlin) alias(libs.plugins.arrowGradleConfig.publish) alias(libs.plugins.arrowGradleConfig.versioning) + alias(libs.plugins.kotlinx.kover) } kotlin { explicitApi = null } -apply(from = property("TEST_COVERAGE")) apply(from = property("ANIMALSNIFFER_MPP")) val enableCompatibilityMetadataVariant = diff --git a/arrow-libs/optics/arrow-optics-reflect/build.gradle.kts b/arrow-libs/optics/arrow-optics-reflect/build.gradle.kts index 158bdc0b65e..49a5814e59f 100644 --- a/arrow-libs/optics/arrow-optics-reflect/build.gradle.kts +++ b/arrow-libs/optics/arrow-optics-reflect/build.gradle.kts @@ -5,9 +5,9 @@ plugins { alias(libs.plugins.arrowGradleConfig.kotlin) alias(libs.plugins.arrowGradleConfig.publish) alias(libs.plugins.arrowGradleConfig.versioning) + alias(libs.plugins.kotlinx.kover) } -apply(from = property("TEST_COVERAGE")) apply(from = property("ANIMALSNIFFER_MPP")) val enableCompatibilityMetadataVariant = diff --git a/arrow-libs/optics/arrow-optics/build.gradle.kts b/arrow-libs/optics/arrow-optics/build.gradle.kts index 353bbac89d5..38c9a2df19e 100644 --- a/arrow-libs/optics/arrow-optics/build.gradle.kts +++ b/arrow-libs/optics/arrow-optics/build.gradle.kts @@ -5,12 +5,10 @@ plugins { alias(libs.plugins.arrowGradleConfig.kotlin) alias(libs.plugins.arrowGradleConfig.publish) alias(libs.plugins.arrowGradleConfig.versioning) -// alias(libs.plugins.ksp) + alias(libs.plugins.kotlinx.kover) + alias(libs.plugins.kotest.multiplatform) } -apply(plugin = "io.kotest.multiplatform") - -apply(from = property("TEST_COVERAGE")) apply(from = property("ANIMALSNIFFER_MPP")) val enableCompatibilityMetadataVariant = diff --git a/arrow-libs/resilience/arrow-resilience/build.gradle.kts b/arrow-libs/resilience/arrow-resilience/build.gradle.kts index 0aa29d96a31..3c47894e711 100644 --- a/arrow-libs/resilience/arrow-resilience/build.gradle.kts +++ b/arrow-libs/resilience/arrow-resilience/build.gradle.kts @@ -5,10 +5,9 @@ plugins { alias(libs.plugins.arrowGradleConfig.kotlin) alias(libs.plugins.arrowGradleConfig.publish) alias(libs.plugins.arrowGradleConfig.versioning) + alias(libs.plugins.kotlinx.kover) } -apply(from = property("TEST_COVERAGE")) - val enableCompatibilityMetadataVariant = providers.gradleProperty("kotlin.mpp.enableCompatibilityMetadataVariant") .orNull?.toBoolean() == true diff --git a/build.gradle.kts b/build.gradle.kts index 100cf0f4b15..49e45184c3c 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,6 +1,7 @@ @file:Suppress("DSL_SCOPE_VIOLATION") import kotlinx.knit.KnitPluginExtension +import kotlinx.kover.gradle.plugin.dsl.KoverProjectExtension import org.jetbrains.dokka.gradle.DokkaMultiModuleTask import org.jetbrains.dokka.gradle.DokkaTaskPartial import org.jetbrains.kotlin.gradle.dsl.KotlinProjectExtension @@ -51,19 +52,17 @@ configure { } } -koverMerged { - enable() - filters { - projects { - excludes.addAll( - listOf( - ":arrow-annotations", - ":arrow-stack", - ":arrow-optics-ksp-plugin" - ) - ) - } - } +dependencies { + kover(projects.arrowAtomic) + kover(projects.arrowContinuations) + kover(projects.arrowCore) + kover(projects.arrowCoreRetrofit) + kover(projects.arrowFxCoroutines) + kover(projects.arrowFxStm) + kover(projects.arrowOptics) + kover(projects.arrowOpticsKspPlugin) + kover(projects.arrowOpticsReflect) + kover(projects.arrowResilience) } allprojects { diff --git a/gradle.properties b/gradle.properties index 990da9f622f..0a4834df3fc 100644 --- a/gradle.properties +++ b/gradle.properties @@ -31,7 +31,6 @@ kapt.use.worker.api=false COMMON_SETUP=../gradle/setup.gradle ROOT_PROJECT=../gradle/main.gradle -TEST_COVERAGE=../../gradle/test-coverage.gradle ANIMALSNIFFER=../../gradle/animalsniffer.gradle ANIMALSNIFFER_MPP=../../gradle/animalsniffer-mpp.gradle diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 83bec850c29..31a434a011f 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,23 +1,23 @@ [versions] -animalSniffer = "1.6.0" +animalSniffer = "1.7.0" arrowGradleConfig = "0.12.0-rc.3" assertj = "3.24.2" -coroutines = "1.7.1" +coroutines = "1.7.2" classgraph = "4.8.160" dokka = "1.8.20" jUnit = "4.13.2" -jUnitJupiter = "5.9.2" -jUnitVintage = "5.9.2" +jUnitJupiter = "5.9.3" +jUnitVintage = "5.9.3" kotest = "5.6.2" kotestGradle = "5.6.2" -kover = "0.6.1" -kotlin = "1.8.21" -kotlinBinaryCompatibilityValidator = "0.13.1" +kover = "0.7.2" +kotlin = "1.8.22" +kotlinBinaryCompatibilityValidator = "0.13.2" kotlinCompileTesting = "1.5.0" knit = "0.4.0" -kspVersion = "1.8.21-1.0.11" +kspVersion = "1.8.22-1.0.11" kotlinxSerialization = "1.5.1" -mockWebServer = "4.10.0" +mockWebServer = "4.11.0" retrofit = "2.9.0" retrofitKotlinxSerialization = "1.0.0" diff --git a/settings.gradle.kts b/settings.gradle.kts index ee80cccf963..2aa4163c3da 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -11,7 +11,7 @@ pluginManagement { } plugins { - id("com.gradle.enterprise") version "3.13.3" + id("com.gradle.enterprise") version "3.13.4" id("org.gradle.toolchains.foojay-resolver-convention") version("0.5.0") }