From b05c71fc35ae530894e5134a4f92ccdfa793c27b Mon Sep 17 00:00:00 2001 From: Harsh Shandilya Date: Fri, 22 Mar 2024 00:08:20 +0530 Subject: feat(build): add back dependency updates plugin --- .../gradle/DependencyUpdatesPlugin.kt | 34 ++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 build-logic/src/main/kotlin/app/passwordstore/gradle/DependencyUpdatesPlugin.kt (limited to 'build-logic/src') diff --git a/build-logic/src/main/kotlin/app/passwordstore/gradle/DependencyUpdatesPlugin.kt b/build-logic/src/main/kotlin/app/passwordstore/gradle/DependencyUpdatesPlugin.kt new file mode 100644 index 00000000..cac23ee2 --- /dev/null +++ b/build-logic/src/main/kotlin/app/passwordstore/gradle/DependencyUpdatesPlugin.kt @@ -0,0 +1,34 @@ +/* + * Copyright © 2014-2021 The Android Password Store Authors. All Rights Reserved. + * SPDX-License-Identifier: GPL-3.0-only + */ +package app.passwordstore.gradle + +import com.github.zafarkhaja.semver.Version +import kotlin.jvm.optionals.getOrNull +import nl.littlerobots.vcu.plugin.VersionCatalogUpdateExtension +import nl.littlerobots.vcu.plugin.VersionCatalogUpdatePlugin +import nl.littlerobots.vcu.plugin.versionSelector +import org.gradle.api.Plugin +import org.gradle.api.Project +import org.gradle.kotlin.dsl.apply +import org.gradle.kotlin.dsl.configure + +@Suppress("Unused") +class DependencyUpdatesPlugin : Plugin { + override fun apply(project: Project) { + project.pluginManager.apply(VersionCatalogUpdatePlugin::class) + project.extensions.configure { + keep.keepUnusedLibraries.set(true) + versionSelector { + val currentVersion = Version.tryParse(it.currentVersion).getOrNull() + val newVersion = Version.tryParse(it.candidate.version).getOrNull() + if (currentVersion == null || newVersion == null) { + false + } else { + newVersion.isHigherThan(currentVersion) + } + } + } + } +} -- cgit v1.2.3