diff --git a/build-logic/src/main/kotlin/dev/msfjarvis/claw/gradle/DependencyUpdatesPlugin.kt b/build-logic/src/main/kotlin/dev/msfjarvis/claw/gradle/DependencyUpdatesPlugin.kt index f0006674..8962a1c8 100644 --- a/build-logic/src/main/kotlin/dev/msfjarvis/claw/gradle/DependencyUpdatesPlugin.kt +++ b/build-logic/src/main/kotlin/dev/msfjarvis/claw/gradle/DependencyUpdatesPlugin.kt @@ -26,13 +26,22 @@ class DependencyUpdatesPlugin : Plugin { when (candidate.group) { "com.squareup.okhttp3", "org.jetbrains.kotlin" -> true - else -> false + else -> isNonStable(candidate.version) && !isNonStable(currentVersion) } } + checkConstraints = true + checkBuildEnvironmentConstraints = true checkForGradleUpdate = true } project.extensions.configure { keep.keepUnusedLibraries.set(true) } } + + private fun isNonStable(version: String): Boolean { + val stableKeyword = listOf("RELEASE", "FINAL", "GA").any { version.toUpperCase().contains(it) } + val regex = "^[0-9,.v-]+(-r)?$".toRegex() + val isStable = stableKeyword || regex.matches(version) + return isStable.not() + } }