From 87febdb725bfa5facb010be1cd1f2a5f9ef04e55 Mon Sep 17 00:00:00 2001 From: Mike Cumings Date: Wed, 18 Jun 2025 12:59:27 -0700 Subject: [PATCH 1/6] Support Gradle 9 semantic versioning --- gradle.properties | 2 +- .../graph/analytics/GraphAnalyticsPlugin.kt | 16 ++++++---------- 2 files changed, 7 insertions(+), 11 deletions(-) diff --git a/gradle.properties b/gradle.properties index fd0ea19..48b4032 100644 --- a/gradle.properties +++ b/gradle.properties @@ -3,4 +3,4 @@ org.gradle.caching=true org.gradle.parallel=true org.gradle.configuration-cache=true org.gradle.unsafe.isolated-projects=true -version=1.1.0 +version=1.1.1 diff --git a/src/main/kotlin/com/ebay/plugins/graph/analytics/GraphAnalyticsPlugin.kt b/src/main/kotlin/com/ebay/plugins/graph/analytics/GraphAnalyticsPlugin.kt index 25af0f3..3eca347 100644 --- a/src/main/kotlin/com/ebay/plugins/graph/analytics/GraphAnalyticsPlugin.kt +++ b/src/main/kotlin/com/ebay/plugins/graph/analytics/GraphAnalyticsPlugin.kt @@ -13,6 +13,7 @@ import org.gradle.api.attributes.Attribute import org.gradle.api.initialization.Settings import org.gradle.api.provider.Provider import org.gradle.api.tasks.TaskProvider +import org.gradle.util.GradleVersion import org.jgrapht.graph.DefaultDirectedGraph import org.jgrapht.nio.DefaultAttribute @@ -32,14 +33,10 @@ internal class GraphAnalyticsPlugin : Plugin { private fun applySettings(settings: Settings) { // Verify Gradle version compatibility - val (major, minor) = settings.gradle.gradleVersion - .substringBefore("-") // Remove any qualifier like `-rc-1` - .split('.') - .take(2) - if (major.toInt() < GRADLE_VERSION_MAJOR || minor.toInt() < GRADLE_VERSION_MINOR) { - throw GradleException("GraphAnalyticsPlugin requires Gradle " + - "$GRADLE_VERSION_MAJOR.$GRADLE_VERSION_MINOR or later " + - "(was: ${settings.gradle.gradleVersion})") + if (GradleVersion.current() < GradleVersion.version(GRADLE_VERSION_MINIMUM)) { + throw GradleException("GraphAnalyticsPlugin requires Gradle 8.11 or later " + + "(was: ${settings.gradle.gradleVersion})" + ) } // Apply the plugin to all projects @@ -348,8 +345,7 @@ internal class GraphAnalyticsPlugin : Plugin { } companion object { - private const val GRADLE_VERSION_MAJOR = 8 - private const val GRADLE_VERSION_MINOR = 11 + private const val GRADLE_VERSION_MINIMUM = "8.11" const val EXTENSION_NAME = "graphAnalytics" const val TASK_GROUP = "graph analytics" From 1bcfba460ee969f2148202edc4b0dd83726457ea Mon Sep 17 00:00:00 2001 From: Mike Cumings Date: Wed, 18 Jun 2025 14:31:29 -0700 Subject: [PATCH 2/6] Use `gradle` from PATH --- .github/workflows/precommit.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/precommit.yml b/.github/workflows/precommit.yml index d6c5d27..219f8ec 100644 --- a/.github/workflows/precommit.yml +++ b/.github/workflows/precommit.yml @@ -22,10 +22,10 @@ jobs: with: gradle-version: ${{ matrix.gradle-version }} - name: Build Plugin - run: ./gradlew build + run: gradle build - name: Sample Analysis working-directory: sample - run: ../gradlew graphAnalysis + run: gradle graphAnalysis - name: Sample Inspection working-directory: sample - run: ../gradlew :app:graphInspection + run: gradle :app:graphInspection From e943de7569c019e7796fcb8e2a532cf53f035296 Mon Sep 17 00:00:00 2001 From: Mike Cumings Date: Wed, 18 Jun 2025 14:38:55 -0700 Subject: [PATCH 3/6] force use of 8.11 --- .github/workflows/precommit.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/precommit.yml b/.github/workflows/precommit.yml index 219f8ec..3972aa8 100644 --- a/.github/workflows/precommit.yml +++ b/.github/workflows/precommit.yml @@ -6,11 +6,12 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - # wrapper = oldest supported version + # 8.11 = oldest supported version + # wrapper = supposed to be the oldest supported version but actually runs current # current = latest stable version # release-candidate = next stable version # nightly = latest development version - gradle-version: ["wrapper", "current", "release-candidate", "nightly"] + gradle-version: ["8.11", "wrapper", "current", "release-candidate", "nightly"] steps: - uses: actions/checkout@v4 - uses: actions/setup-java@v4 From 7a202fa44257ca5917fdb1434b62505044fb6fdb Mon Sep 17 00:00:00 2001 From: Mike Cumings Date: Wed, 18 Jun 2025 14:42:55 -0700 Subject: [PATCH 4/6] test original failure --- .../graph/analytics/GraphAnalyticsPlugin.kt | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/src/main/kotlin/com/ebay/plugins/graph/analytics/GraphAnalyticsPlugin.kt b/src/main/kotlin/com/ebay/plugins/graph/analytics/GraphAnalyticsPlugin.kt index 3eca347..25af0f3 100644 --- a/src/main/kotlin/com/ebay/plugins/graph/analytics/GraphAnalyticsPlugin.kt +++ b/src/main/kotlin/com/ebay/plugins/graph/analytics/GraphAnalyticsPlugin.kt @@ -13,7 +13,6 @@ import org.gradle.api.attributes.Attribute import org.gradle.api.initialization.Settings import org.gradle.api.provider.Provider import org.gradle.api.tasks.TaskProvider -import org.gradle.util.GradleVersion import org.jgrapht.graph.DefaultDirectedGraph import org.jgrapht.nio.DefaultAttribute @@ -33,10 +32,14 @@ internal class GraphAnalyticsPlugin : Plugin { private fun applySettings(settings: Settings) { // Verify Gradle version compatibility - if (GradleVersion.current() < GradleVersion.version(GRADLE_VERSION_MINIMUM)) { - throw GradleException("GraphAnalyticsPlugin requires Gradle 8.11 or later " + - "(was: ${settings.gradle.gradleVersion})" - ) + val (major, minor) = settings.gradle.gradleVersion + .substringBefore("-") // Remove any qualifier like `-rc-1` + .split('.') + .take(2) + if (major.toInt() < GRADLE_VERSION_MAJOR || minor.toInt() < GRADLE_VERSION_MINOR) { + throw GradleException("GraphAnalyticsPlugin requires Gradle " + + "$GRADLE_VERSION_MAJOR.$GRADLE_VERSION_MINOR or later " + + "(was: ${settings.gradle.gradleVersion})") } // Apply the plugin to all projects @@ -345,7 +348,8 @@ internal class GraphAnalyticsPlugin : Plugin { } companion object { - private const val GRADLE_VERSION_MINIMUM = "8.11" + private const val GRADLE_VERSION_MAJOR = 8 + private const val GRADLE_VERSION_MINOR = 11 const val EXTENSION_NAME = "graphAnalytics" const val TASK_GROUP = "graph analytics" From 3137403857c08f19d0eeac94f829e889854de2cc Mon Sep 17 00:00:00 2001 From: Mike Cumings Date: Wed, 18 Jun 2025 14:43:28 -0700 Subject: [PATCH 5/6] Revert "test original failure" This reverts commit 7a202fa44257ca5917fdb1434b62505044fb6fdb. --- .../graph/analytics/GraphAnalyticsPlugin.kt | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/src/main/kotlin/com/ebay/plugins/graph/analytics/GraphAnalyticsPlugin.kt b/src/main/kotlin/com/ebay/plugins/graph/analytics/GraphAnalyticsPlugin.kt index 25af0f3..3eca347 100644 --- a/src/main/kotlin/com/ebay/plugins/graph/analytics/GraphAnalyticsPlugin.kt +++ b/src/main/kotlin/com/ebay/plugins/graph/analytics/GraphAnalyticsPlugin.kt @@ -13,6 +13,7 @@ import org.gradle.api.attributes.Attribute import org.gradle.api.initialization.Settings import org.gradle.api.provider.Provider import org.gradle.api.tasks.TaskProvider +import org.gradle.util.GradleVersion import org.jgrapht.graph.DefaultDirectedGraph import org.jgrapht.nio.DefaultAttribute @@ -32,14 +33,10 @@ internal class GraphAnalyticsPlugin : Plugin { private fun applySettings(settings: Settings) { // Verify Gradle version compatibility - val (major, minor) = settings.gradle.gradleVersion - .substringBefore("-") // Remove any qualifier like `-rc-1` - .split('.') - .take(2) - if (major.toInt() < GRADLE_VERSION_MAJOR || minor.toInt() < GRADLE_VERSION_MINOR) { - throw GradleException("GraphAnalyticsPlugin requires Gradle " + - "$GRADLE_VERSION_MAJOR.$GRADLE_VERSION_MINOR or later " + - "(was: ${settings.gradle.gradleVersion})") + if (GradleVersion.current() < GradleVersion.version(GRADLE_VERSION_MINIMUM)) { + throw GradleException("GraphAnalyticsPlugin requires Gradle 8.11 or later " + + "(was: ${settings.gradle.gradleVersion})" + ) } // Apply the plugin to all projects @@ -348,8 +345,7 @@ internal class GraphAnalyticsPlugin : Plugin { } companion object { - private const val GRADLE_VERSION_MAJOR = 8 - private const val GRADLE_VERSION_MINOR = 11 + private const val GRADLE_VERSION_MINIMUM = "8.11" const val EXTENSION_NAME = "graphAnalytics" const val TASK_GROUP = "graph analytics" From 4d8196a52d34d3cf4724b41c10dd7b5765eb853d Mon Sep 17 00:00:00 2001 From: Mike Cumings Date: Wed, 18 Jun 2025 14:50:50 -0700 Subject: [PATCH 6/6] Use constant in error message --- .../com/ebay/plugins/graph/analytics/GraphAnalyticsPlugin.kt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/kotlin/com/ebay/plugins/graph/analytics/GraphAnalyticsPlugin.kt b/src/main/kotlin/com/ebay/plugins/graph/analytics/GraphAnalyticsPlugin.kt index 3eca347..871aca3 100644 --- a/src/main/kotlin/com/ebay/plugins/graph/analytics/GraphAnalyticsPlugin.kt +++ b/src/main/kotlin/com/ebay/plugins/graph/analytics/GraphAnalyticsPlugin.kt @@ -34,8 +34,8 @@ internal class GraphAnalyticsPlugin : Plugin { private fun applySettings(settings: Settings) { // Verify Gradle version compatibility if (GradleVersion.current() < GradleVersion.version(GRADLE_VERSION_MINIMUM)) { - throw GradleException("GraphAnalyticsPlugin requires Gradle 8.11 or later " + - "(was: ${settings.gradle.gradleVersion})" + throw GradleException("GraphAnalyticsPlugin requires Gradle $GRADLE_VERSION_MINIMUM " + + "or later (was: ${settings.gradle.gradleVersion})" ) }