Browse Source

Update to to Gradle wrapper 7.5 (#85141)

This updates the gradle wrapper to a 7.5

Fixes #85123
Rene Groeschke 3 years ago
parent
commit
98b789c940

+ 2 - 1
build-tools-internal/build.gradle

@@ -311,10 +311,11 @@ tasks.register("bootstrapPerformanceTests", Copy) {
   from('performance')
   into('build/performanceTests')
   def root = file('..')
+  inputs.property('branchWrapper', gradle.gradleVersion)
   filter(ReplaceTokens, tokens: [
           testGitCommit:GitInfo.gitInfo(root).revision,
           masterWrapper:"${ -> resolveMasterWrapperVersion()}".toString(),
-          branchWrapper:"${-> new File(root, "build-tools-internal/src/main/resources/minimumGradleVersion").text}".toString()])
+          branchWrapper:"${-> gradle.gradleVersion}".toString()])
 }
 
 def resolveMasterWrapperVersion() {

+ 2 - 2
build-tools-internal/gradle/wrapper/gradle-wrapper.properties

@@ -1,6 +1,6 @@
 distributionBase=GRADLE_USER_HOME
 distributionPath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-7.4.2-all.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-all.zip
 zipStoreBase=GRADLE_USER_HOME
 zipStorePath=wrapper/dists
-distributionSha256Sum=e6d864e3b5bc05cc62041842b306383fc1fefcec359e70cebb1d470a6094ca82
+distributionSha256Sum=97a52d145762adc241bad7fd18289bf7f6801e08ece6badf80402fe2b9f250b1

+ 7 - 7
build-tools-internal/performance/elasticsearch-build-benchmark-part1.scenarios

@@ -1,11 +1,11 @@
-# Can specify scenarios to use when none are specified on the command line
-default-scenarios = ["buildConfiguration_master", "buildConfiguration_branch", "single_project_master", "single_project_branch"]
+// ensure branch scenario is listed first as this is the gradle version that will picked for inspecting the build
+default-scenarios = ["buildConfiguration_branch", "buildConfiguration_master", "single_project_branch", "single_project_master"]
 
 buildConfiguration_master {
     title = "configuration phase (master)"
     versions = ["@masterWrapper@"]
     tasks = ["help"]
-    gradle-args = ["--no-scan", "--no-build-cache"]
+    gradle-args = ["--no-scan", "--no-build-cache", "--stacktrace"]
     run-using = cli // value can be "cli" or "tooling-api"
     daemon = warm // value can be "warm", "cold", or "none"
     warm-ups = 5
@@ -22,7 +22,7 @@ buildConfiguration_branch {
     title = "configuration phase (@testGitCommit@)"
     versions = ["@branchWrapper@"]
     tasks = ["help"]
-    gradle-args = ["--no-scan", "--no-build-cache"]
+    gradle-args = ["--no-scan", "--no-build-cache", "--stacktrace"]
     run-using = cli // value can be "cli" or "tooling-api"
     daemon = warm // value can be "warm", "cold", or "none"
     warm-ups = 5
@@ -39,7 +39,7 @@ single_project_master {
     title = "single project (master)"
     versions = ["@masterWrapper@"]
     tasks = [":server:precommit"]
-    gradle-args = ["--no-scan"]
+    gradle-args = ["--no-scan", "--stacktrace"]
     apply-abi-change-to = "server/src/main/java/org/elasticsearch/bootstrap/BootstrapInfo.java"
     run-using = cli // value can be "cli" or "tooling-api"
     daemon = warm // value can be "warm", "cold", or "none"
@@ -57,7 +57,7 @@ single_project_branch {
     title = "single project (@testGitCommit@)"
     versions = ["@branchWrapper@"]
     tasks = [":server:precommit"]
-    gradle-args = ["--no-scan"]
+    gradle-args = ["--no-scan", "--stacktrace"]
     apply-abi-change-to = "server/src/main/java/org/elasticsearch/bootstrap/BootstrapInfo.java"
     run-using = cli // value can be "cli" or "tooling-api"
     daemon = warm // value can be "warm", "cold", or "none"
@@ -69,4 +69,4 @@ single_project_branch {
     git-checkout = {
         build = "@testGitCommit@"
     }
-}
+}

+ 4 - 3
build-tools-internal/performance/elasticsearch-build-benchmark-part2.scenarios

@@ -1,11 +1,12 @@
-default-scenarios = ["precommit_master", "precommit_branch"]
+// ensure branch scenario is listed first as this is the gradle version that will picked for inspecting the build
+default-scenarios = ["precommit_branch", "precommit_master"]
 
 precommit_master {
     title = "precommit (master)"
     versions = ["@masterWrapper@"]
     cleanup-tasks = ["clean"]
     tasks = ["precommit"]
-    gradle-args = ["--no-scan", "--no-build-cache"]
+    gradle-args = ["--no-scan", "--no-build-cache", "--stacktrace"]
     run-using = cli // value can be "cli" or "tooling-api"
     daemon = warm // value can be "warm", "cold", or "none"
     warm-ups = 5
@@ -23,7 +24,7 @@ precommit_branch {
     versions = ["@branchWrapper@"]
     cleanup-tasks = ["clean"]
     tasks = ["precommit"]
-    gradle-args = ["--no-scan", "--no-build-cache"]
+    gradle-args = ["--no-scan", "--no-build-cache", "--stacktrace"]
     run-using = cli // value can be "cli" or "tooling-api"
     daemon = warm // value can be "warm", "cold", or "none"
     warm-ups = 5

+ 2 - 1
build-tools-internal/src/integTest/groovy/org/elasticsearch/gradle/internal/snyk/SnykDependencyMonitoringGradlePluginFuncTest.groovy

@@ -11,6 +11,7 @@ package org.elasticsearch.gradle.internal.snyk
 import org.elasticsearch.gradle.fixtures.AbstractGradleInternalPluginFuncTest
 import org.gradle.api.Plugin
 import org.gradle.testkit.runner.TaskOutcome
+import org.gradle.util.GradleVersion
 import org.skyscreamer.jsonassert.JSONAssert
 
 import static java.net.HttpURLConnection.HTTP_CREATED
@@ -57,7 +58,7 @@ class SnykDependencyMonitoringGradlePluginFuncTest extends AbstractGradleInterna
             },
             "depGraphJSON": {
                 "pkgManager": {
-                    "version": "7.4.2",
+                    "version": "${GradleVersion.current().version}",
                     "name": "gradle"
                 },
                 "schemaVersion": "1.2.0",

+ 1 - 0
build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/precommit/CheckstylePrecommitPlugin.java

@@ -96,6 +96,7 @@ public class CheckstylePrecommitPlugin extends PrecommitPlugin {
 
         project.getTasks().withType(Checkstyle.class).configureEach(t -> {
             t.dependsOn(copyCheckstyleConf);
+            t.getMaxHeapSize().set("1g");
             t.reports(r -> r.getHtml().getRequired().set(false));
         });
 

+ 1 - 1
build-tools-internal/src/main/resources/minimumGradleVersion

@@ -1 +1 @@
-7.4.2
+7.5

+ 3 - 2
build-tools-internal/src/test/java/org/elasticsearch/gradle/internal/precommit/UpdateShasTaskTests.java

@@ -33,6 +33,7 @@ import static org.hamcrest.CoreMatchers.equalTo;
 
 public class UpdateShasTaskTests extends GradleUnitTestCase {
 
+    public static final String GROOVY_JAR_REGEX = "groovy-\\d\\.\\d+\\.\\d+\\.jar";
     @Rule
     public ExpectedException expectedException = ExpectedException.none();
 
@@ -66,7 +67,7 @@ public class UpdateShasTaskTests extends GradleUnitTestCase {
         getLicensesDir(project).mkdir();
         task.updateShas();
         Path groovySha = Files.list(getLicensesDir(project).toPath())
-            .filter(p -> p.toFile().getName().matches("groovy-\\d\\.\\d\\.\\d\\.jar.sha1"))
+            .filter(p -> p.toFile().getName().matches(GROOVY_JAR_REGEX + ".sha1"))
             .findFirst()
             .get();
         assertTrue(groovySha.toFile().getName().startsWith("groovy"));
@@ -79,7 +80,7 @@ public class UpdateShasTaskTests extends GradleUnitTestCase {
             .getDependencies()
             .getFiles()
             .stream()
-            .filter(f -> f.getName().matches("groovy-\\d\\.\\d\\.\\d\\.jar"))
+            .filter(f -> f.getName().matches(GROOVY_JAR_REGEX))
             .findFirst()
             .get();
         String groovyShaName = groovyJar.getName() + ".sha1";

+ 1 - 26
build-tools/src/main/java/org/elasticsearch/gradle/testclusters/StandaloneRestIntegTestTask.java

@@ -9,7 +9,6 @@ package org.elasticsearch.gradle.testclusters;
 
 import org.elasticsearch.gradle.FileSystemOperationsAware;
 import org.elasticsearch.gradle.util.GradleUtils;
-import org.gradle.api.GradleException;
 import org.gradle.api.provider.Provider;
 import org.gradle.api.services.internal.BuildServiceRegistryInternal;
 import org.gradle.api.tasks.CacheableTask;
@@ -20,11 +19,8 @@ import org.gradle.api.tasks.options.Option;
 import org.gradle.api.tasks.testing.Test;
 import org.gradle.internal.resources.ResourceLock;
 import org.gradle.internal.resources.SharedResource;
-import org.gradle.util.GradleVersion;
 
-import java.lang.reflect.Method;
 import java.util.ArrayList;
-import java.util.Arrays;
 import java.util.Collection;
 import java.util.Collections;
 import java.util.HashSet;
@@ -94,32 +90,11 @@ public class StandaloneRestIntegTestTask extends Test implements TestClustersAwa
 
         int nodeCount = clusters.stream().mapToInt(cluster -> cluster.getNodes().size()).sum();
         if (nodeCount > 0) {
-            locks.add(getResourceLock(resource, nodeCount));
+            locks.add(resource.getResourceLock());
         }
         return Collections.unmodifiableList(locks);
     }
 
-    /**
-     * SharedResource#getResourceLock has changed its parameters with Gradle 7.5.
-     * We resolve this via reflection for now to be compatible with Gradle before and after 7.5.
-     * This makes migration easier and allows gradle benchmark tests across gradle versions easier.
-     * Likely will be removed in future version.
-     * */
-    private ResourceLock getResourceLock(SharedResource resource, int nodeCount) {
-        try {
-            Method getResourceLock = Arrays.stream(resource.getClass().getMethods())
-                .filter(p -> p.getName().equals("getResourceLock"))
-                .findFirst()
-                .get();
-            getResourceLock.setAccessible(true);
-            return (ResourceLock) (GradleVersion.current().compareTo(GradleVersion.version("7.5.0")) < 0
-                ? getResourceLock.invoke(resource, Math.min(nodeCount, resource.getMaxUsages()))
-                : getResourceLock.invoke(resource));
-        } catch (Exception e) {
-            throw new GradleException("Unable to get ResourceLock", e);
-        }
-    }
-
     public WorkResult delete(Object... objects) {
         return getFileSystemOperations().delete(d -> d.delete(objects));
     }

BIN
gradle/wrapper/gradle-wrapper.jar


+ 2 - 2
gradle/wrapper/gradle-wrapper.properties

@@ -1,6 +1,6 @@
 distributionBase=GRADLE_USER_HOME
 distributionPath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-7.4.2-all.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-all.zip
 zipStoreBase=GRADLE_USER_HOME
 zipStorePath=wrapper/dists
-distributionSha256Sum=e6d864e3b5bc05cc62041842b306383fc1fefcec359e70cebb1d470a6094ca82
+distributionSha256Sum=97a52d145762adc241bad7fd18289bf7f6801e08ece6badf80402fe2b9f250b1

+ 6 - 0
gradlew

@@ -205,6 +205,12 @@ set -- \
         org.gradle.wrapper.GradleWrapperMain \
         "$@"
 
+# Stop when "xargs" is not available.
+if ! command -v xargs >/dev/null 2>&1
+then
+    die "xargs is not available"
+fi
+
 # Use "xargs" to parse quoted args.
 #
 # With -n1 it outputs one arg per line, with the quotes and backslashes removed.

+ 8 - 6
gradlew.bat

@@ -14,7 +14,7 @@
 @rem limitations under the License.
 @rem
 
-@if "%DEBUG%" == "" @echo off
+@if "%DEBUG%"=="" @echo off
 @rem ##########################################################################
 @rem
 @rem  Gradle startup script for Windows
@@ -25,7 +25,7 @@
 if "%OS%"=="Windows_NT" setlocal
 
 set DIRNAME=%~dp0
-if "%DIRNAME%" == "" set DIRNAME=.
+if "%DIRNAME%"=="" set DIRNAME=.
 set APP_BASE_NAME=%~n0
 set APP_HOME=%DIRNAME%
 
@@ -40,7 +40,7 @@ if defined JAVA_HOME goto findJavaFromJavaHome
 
 set JAVA_EXE=java.exe
 %JAVA_EXE% -version >NUL 2>&1
-if "%ERRORLEVEL%" == "0" goto execute
+if %ERRORLEVEL% equ 0 goto execute
 
 echo.
 echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
@@ -75,13 +75,15 @@ set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
 
 :end
 @rem End local scope for the variables with windows NT shell
-if "%ERRORLEVEL%"=="0" goto mainEnd
+if %ERRORLEVEL% equ 0 goto mainEnd
 
 :fail
 rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
 rem the _cmd.exe /c_ return code!
-if  not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
-exit /b 1
+set EXIT_CODE=%ERRORLEVEL%
+if %EXIT_CODE% equ 0 set EXIT_CODE=1
+if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE%
+exit /b %EXIT_CODE%
 
 :mainEnd
 if "%OS%"=="Windows_NT" endlocal

+ 2 - 2
plugins/examples/gradle/wrapper/gradle-wrapper.properties

@@ -1,6 +1,6 @@
 distributionBase=GRADLE_USER_HOME
 distributionPath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-7.4.2-all.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-all.zip
 zipStoreBase=GRADLE_USER_HOME
 zipStorePath=wrapper/dists
-distributionSha256Sum=e6d864e3b5bc05cc62041842b306383fc1fefcec359e70cebb1d470a6094ca82
+distributionSha256Sum=97a52d145762adc241bad7fd18289bf7f6801e08ece6badf80402fe2b9f250b1

+ 2 - 0
server/build.gradle

@@ -246,3 +246,5 @@ tasks.named("licenseHeaders").configure {
     excludes << 'org/apache/lucene/search/RegExp87*'
     excludes << 'org/apache/lucene/search/RegexpQuery87*'
 }
+
+tasks.withType(Checkstyle.class).configureEach { t -> t.getMaxHeapSize().set("2g") }