From ef49dd2f15d5fc73c032ceae16c20a25d0aee5c2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=B3bert=20Papp?= Date: Mon, 5 Jun 2023 17:27:54 +0100 Subject: [PATCH] chore(deps): update plugin org.ajoberstar.stutter to v0.7.2 (#225) * Upgrade stutter 0.6.0 to 0.7.2 based on migration guide: https://github.com/ajoberstar/gradle-stutter#migrating-from-060 * Regenerate lock files (`gradlew stutterWriteLocks`) as mentioned in https://github.com/ajoberstar/gradle-stutter/releases/tag/0.7.0 * Fix typo in property name * Convert gradle-latest-versions.yml to Stutter 0.7 format. * compatTest is not part of check anymore, so call it manually for CI * Convert java-versions.yml to Stutter 0.7 format. * To match the original behavior, we only want to run each Gradle version in the lockfile for Java 11 * Add resolver for toolchains. Before this PR they were not used. Fixes warning from Gradle 8.x: Using a toolchain installed via auto-provisioning, but having no toolchain repositories configured. This behavior is deprecated. Consider defining toolchain download repositories, otherwise the build might fail in clean environments; see https://docs.gradle.org/8.1.1/userguide/toolchains.html#sub:download_repositories * Restore lockfile to milestone, fixing Ivy failures are not in scope here. --- .github/workflows/gradle-latest-versions.yml | 4 +-- .github/workflows/java-versions.yml | 14 ++++---- .github/workflows/main.yml | 2 +- .stutter/java11.lock | 8 ----- .stutter/java17.lock | 6 ---- .stutter/java8.lock | 8 ----- build.gradle.kts | 37 ++++++++++++++------ settings.gradle.kts | 1 + stutter.lockfile | 4 +++ 9 files changed, 43 insertions(+), 41 deletions(-) delete mode 100644 .stutter/java11.lock delete mode 100644 .stutter/java17.lock delete mode 100644 .stutter/java8.lock create mode 100644 stutter.lockfile diff --git a/.github/workflows/gradle-latest-versions.yml b/.github/workflows/gradle-latest-versions.yml index 6c18ab9f..1e373bfe 100644 --- a/.github/workflows/gradle-latest-versions.yml +++ b/.github/workflows/gradle-latest-versions.yml @@ -33,9 +33,9 @@ jobs: - name: Set latest Gradle versions to test with run: | - cp "${{ env.GRADLE_VERSIONS_OUTPUT_FILE }}" .stutter/java11.lock + echo "java11=$(cat ${{ env.GRADLE_VERSIONS_OUTPUT_FILE }} | tr '\n' ',')" > stutter.lockfile echo "Gradle versions configured for compatibility tests:" - cat .stutter/java11.lock + cat stutter.lockfile - name: Run compatTest run: ./gradlew --continue test compatTest diff --git a/.github/workflows/java-versions.yml b/.github/workflows/java-versions.yml index be10fef3..b342f53d 100644 --- a/.github/workflows/java-versions.yml +++ b/.github/workflows/java-versions.yml @@ -27,12 +27,14 @@ jobs: # Workaround https://github.com/ajoberstar/gradle-stutter/issues/22 - name: Reduce number of Gradle regressions builds run: | - for l in .stutter/*.lock; do - echo $l - echo "$(cat $l | grep -v "^#" | tail -1)" > $l - cat $l - done + # Keep only the last Gradle version per Stutter matrix; for each line this transformation is done: + # java11=6.0.1,6.9.4,7.0.2,7.6.1,8.0.2,8.1.1,8.2-rc-1 + # -> + # java11=8.2-rc-1 + # The trick is that \2 will greedily eat everything before the last comma. + sed -r 's/^(.*?)=(.*),(.*)$/\1=\3/g' -i stutter.lockfile + cat stutter.lockfile - name: Test cross Java versions compatibility run: | ./gradlew --version - ./gradlew --stacktrace build + ./gradlew --stacktrace build compatTestJava${{ matrix.jdk }} diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 7015e1e9..78ef6b48 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -25,4 +25,4 @@ jobs: distribution: 'zulu' - uses: gradle/gradle-build-action@v2 with: - arguments: --scan --stacktrace build + arguments: --scan --stacktrace build compatTestJava11 diff --git a/.stutter/java11.lock b/.stutter/java11.lock deleted file mode 100644 index 4342adf3..00000000 --- a/.stutter/java11.lock +++ /dev/null @@ -1,8 +0,0 @@ -# DO NOT MODIFY: Generated by Stutter plugin. -6.0.1 -6.9.4 -7.0.2 -7.6.1 -8.0.2 -8.1.1 -8.2-milestone-1 diff --git a/.stutter/java17.lock b/.stutter/java17.lock deleted file mode 100644 index 8403ea52..00000000 --- a/.stutter/java17.lock +++ /dev/null @@ -1,6 +0,0 @@ -# DO NOT MODIFY: Generated by Stutter plugin. -7.3.3 -7.6.1 -8.0.2 -8.1.1 -8.2-milestone-1 diff --git a/.stutter/java8.lock b/.stutter/java8.lock deleted file mode 100644 index 4342adf3..00000000 --- a/.stutter/java8.lock +++ /dev/null @@ -1,8 +0,0 @@ -# DO NOT MODIFY: Generated by Stutter plugin. -6.0.1 -6.9.4 -7.0.2 -7.6.1 -8.0.2 -8.1.1 -8.2-milestone-1 diff --git a/build.gradle.kts b/build.gradle.kts index 700e71bf..64a861d0 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -11,7 +11,7 @@ plugins { id("com.github.johnrengelman.shadow") version "8.1.1" id("org.jetbrains.gradle.plugin.idea-ext") id("com.github.ben-manes.versions") version "0.46.0" - id("org.ajoberstar.stutter") version "0.6.0" + id("org.ajoberstar.stutter") version "0.7.2" } group = "io.github.gradle-nexus" @@ -100,15 +100,32 @@ java { } stutter { - isSparse = (findProperty("stutter.sparce")?.toString()?.toBoolean()) ?: true - java(8) { - compatibleRange("6.0") - } - java(11) { - compatibleRange("6.0") - } - java(17) { - compatibleRange("7.3") + sparse.set(providers.gradleProperty("stutter.sparse").map(String::toBoolean).orElse(true)) + matrices { + register("java8") { + javaToolchain { + languageVersion.set(JavaLanguageVersion.of(8)) + } + gradleVersions { + compatibleRange("6.0") + } + } + register("java11") { + javaToolchain { + languageVersion.set(JavaLanguageVersion.of(11)) + } + gradleVersions { + compatibleRange("6.0") + } + } + register("java17") { + javaToolchain { + languageVersion.set(JavaLanguageVersion.of(17)) + } + gradleVersions { + compatibleRange("7.3") + } + } } } diff --git a/settings.gradle.kts b/settings.gradle.kts index e95476d2..6e9c4686 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -1,5 +1,6 @@ plugins { id("com.gradle.enterprise") version "3.13.3" + id("org.gradle.toolchains.foojay-resolver-convention") version "0.5.0" } gradleEnterprise { diff --git a/stutter.lockfile b/stutter.lockfile new file mode 100644 index 00000000..cc7d14a9 --- /dev/null +++ b/stutter.lockfile @@ -0,0 +1,4 @@ +# DO NOT MODIFY: Generated by Stutter plugin. +java11=6.0.1,6.9.4,7.0.2,7.6.1,8.0.2,8.1.1,8.2-milestone-1 +java17=7.3.3,7.6.1,8.0.2,8.1.1,8.2-milestone-1 +java8=6.0.1,6.9.4,7.0.2,7.6.1,8.0.2,8.1.1,8.2-milestone-1