# HG changeset patch # User cin # Date 2026-04-26 07:53:20 # Node ID c7861b56e1d805ed7c1820b62a6be68297d679c0 # Parent 9b11838beca6b5276bbb012fc801a27d191f2b96 Upgrade Gradle to 9.4.1 and fix functional tests diff --git a/common/build.gradle b/common/build.gradle --- a/common/build.gradle +++ b/common/build.gradle @@ -39,7 +39,7 @@ test { publishing { repositories { ivy { - url "${System.properties["user.home"]}/ivy-repo" + url = "${System.properties["user.home"]}/ivy-repo" } } publications { diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index e6441136f3d4ba8a0da8d277868979cfbc8ad796..a4b76b9530d66f5e68d973ea569d8e19de379189 GIT binary patch literal 43583 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 a{L7@9y7EPAz#qcQ0J7te5HR!S(SHFkmN%#X diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.10.2-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-9.4.1-bin.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME diff --git a/gradlew b/gradlew --- a/gradlew +++ b/gradlew @@ -15,6 +15,8 @@ # See the License for the specific language governing permissions and # limitations under the License. # +# SPDX-License-Identifier: Apache-2.0 +# ############################################################################## # @@ -55,7 +57,7 @@ # Darwin, MinGW, and NonStop. # # (3) This script is generated from the Groovy template -# https://github.com/gradle/gradle/blob/HEAD/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt +# https://github.com/gradle/gradle/blob/HEAD/platforms/jvm/plugins-application/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt # within the Gradle project. # # You can find Gradle at https://github.com/gradle/gradle/. @@ -84,7 +86,8 @@ done # shellcheck disable=SC2034 APP_BASE_NAME=${0##*/} # Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036) -APP_HOME=$( cd "${APP_HOME:-./}" > /dev/null && pwd -P ) || exit +APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s +' "$PWD" ) || exit # Use the maximum available, or set MAX_FD != -1 to use that value. MAX_FD=maximum diff --git a/gradlew.bat b/gradlew.bat --- a/gradlew.bat +++ b/gradlew.bat @@ -13,6 +13,8 @@ @rem See the License for the specific language governing permissions and @rem limitations under the License. @rem +@rem SPDX-License-Identifier: Apache-2.0 +@rem @if "%DEBUG%"=="" @echo off @rem ########################################################################## diff --git a/settings.gradle b/settings.gradle --- a/settings.gradle +++ b/settings.gradle @@ -13,7 +13,7 @@ dependencyResolutionManagement { mavenCentral() mavenLocal() ivy { - url "${System.properties["user.home"]}/ivy-repo" + url = "${System.properties["user.home"]}/ivy-repo" } } } diff --git a/variants/build.gradle b/variants/build.gradle --- a/variants/build.gradle +++ b/variants/build.gradle @@ -43,7 +43,7 @@ javadoc { publishing { repositories { ivy { - url "${System.properties["user.home"]}/ivy-repo" + url = "${System.properties["user.home"]}/ivy-repo" } } publications { diff --git a/variants/src/test/java/org/implab/gradle/variants/AbstractFunctionalTest.java b/variants/src/test/java/org/implab/gradle/variants/AbstractFunctionalTest.java --- a/variants/src/test/java/org/implab/gradle/variants/AbstractFunctionalTest.java +++ b/variants/src/test/java/org/implab/gradle/variants/AbstractFunctionalTest.java @@ -9,6 +9,7 @@ import java.nio.file.Path; import java.util.LinkedHashSet; import java.util.List; import java.util.stream.Collectors; +import java.util.regex.Pattern; import org.gradle.testkit.runner.GradleRunner; import org.gradle.testkit.runner.UnexpectedBuildFailure; @@ -19,6 +20,8 @@ import org.junit.jupiter.api.io.TempDir; abstract class AbstractFunctionalTest { private static final String SETTINGS_FILE = "settings.gradle"; private static final String BUILD_FILE = "build.gradle"; + private static final Pattern INCLUDE_DECLARATION = Pattern.compile("^include(?:\\s|\\().*"); + private static final Pattern QUOTED_LITERAL = Pattern.compile("['\"]([^'\"]+)['\"]"); @TempDir Path testProjectDir; @@ -94,5 +97,27 @@ abstract class AbstractFunctionalTest { Path path = testProjectDir.resolve(relativePath); Files.createDirectories(path.getParent()); Files.writeString(path, content); + + if (SETTINGS_FILE.equals(relativePath)) + ensureIncludedProjectDirectories(content); + } + + private void ensureIncludedProjectDirectories(String settingsContent) throws IOException { + for (var line : settingsContent.split("\\R")) { + var trimmed = line.strip(); + if (!INCLUDE_DECLARATION.matcher(trimmed).matches()) + continue; + + var matcher = QUOTED_LITERAL.matcher(trimmed); + while (matcher.find()) { + var projectPath = matcher.group(1); + if (projectPath.startsWith(":")) + projectPath = projectPath.substring(1); + if (projectPath.isBlank()) + continue; + + Files.createDirectories(testProjectDir.resolve(projectPath.replace(':', File.separatorChar))); + } + } } } diff --git a/variants/src/test/java/org/implab/gradle/variants/VariantArtifactsPluginFunctionalTest.java b/variants/src/test/java/org/implab/gradle/variants/VariantArtifactsPluginFunctionalTest.java --- a/variants/src/test/java/org/implab/gradle/variants/VariantArtifactsPluginFunctionalTest.java +++ b/variants/src/test/java/org/implab/gradle/variants/VariantArtifactsPluginFunctionalTest.java @@ -103,9 +103,7 @@ class VariantArtifactsPluginFunctionalTe } @Test - void gradleReferenceRegisteredSecondaryArtifactVariantIsNotRealizedBeforeResolution() throws Exception { - // Gradle issue: https://github.com/gradle/gradle/issues/27441 - // Registered outgoing artifact variants are not realized before dependency resolution. + void gradleReferenceRegisteredSecondaryArtifactVariantAllowsSecondaryArtifactSelection() throws Exception { writeFile("settings.gradle", """ rootProject.name = 'gradle-reference-registered-secondary-variant' include 'producer', 'consumer' @@ -166,8 +164,10 @@ class VariantArtifactsPluginFunctionalTe } """); - assertBuildFails("Cannot create variant 'js' after dependency configuration ':producer:browserElements' has been resolved", - ":consumer:probe"); + BuildResult result = runner(":consumer:probe").build(); + + assertTrue(result.getOutput().contains("compileFiles=typesPackage")); + assertTrue(result.getOutput().contains("jsFiles=js")); } @Test