buildscript { dependencyLocking { lockAllConfigurations() } } dependencyLocking { lockAllConfigurations() } plugins { id("bip39.ktlint-conventions") alias(libs.plugins.detekt) alias(libs.plugins.kover) alias(libs.plugins.versions) } tasks { register("detektAll", io.gitlab.arturbosch.detekt.Detekt::class) { parallel = true setSource(files(projectDir)) include("**/*.kt") //include("**/*.kts") exclude("**/resources/**") exclude("**/build/**") exclude("**/commonTest/**") exclude("**/jvmTest/**") exclude("**/androidTest/**") config.setFrom(files("${rootProject.projectDir}/tools/detekt.yml")) baseline.set(file("$rootDir/tools/detekt-baseline.xml")) buildUponDefaultConfig = true } withType { gradleReleaseChannel = "current" resolutionStrategy { componentSelection { all { if (isNonStable(candidate.version) && !isNonStable(currentVersion)) { reject("Unstable") } } } } } } kover { isDisabled = !project.property("BIP39_IS_COVERAGE_ENABLED").toString().toBoolean() jacocoEngineVersion.set(libs.versions.jacoco.get()) } val unstableKeywords = listOf("alpha", "beta", "rc", "m", "ea", "build") fun isNonStable(version: String): Boolean { val versionLowerCase = version.toLowerCase() return unstableKeywords.any { versionLowerCase.contains(it) } }