You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@aurora.apache.org by wf...@apache.org on 2017/09/23 15:05:43 UTC

aurora git commit: Update to gradle 4.2

Repository: aurora
Updated Branches:
  refs/heads/master 4137dd246 -> 0606369e2


Update to gradle 4.2

Reviewed at https://reviews.apache.org/r/62517/


Project: http://git-wip-us.apache.org/repos/asf/aurora/repo
Commit: http://git-wip-us.apache.org/repos/asf/aurora/commit/0606369e
Tree: http://git-wip-us.apache.org/repos/asf/aurora/tree/0606369e
Diff: http://git-wip-us.apache.org/repos/asf/aurora/diff/0606369e

Branch: refs/heads/master
Commit: 0606369e2b57a5d58123c31c7d701047517a9528
Parents: 4137dd2
Author: Bill Farner <wf...@apache.org>
Authored: Sat Sep 23 08:05:08 2017 -0700
Committer: Bill Farner <wf...@apache.org>
Committed: Sat Sep 23 08:05:28 2017 -0700

----------------------------------------------------------------------
 build.gradle                                    |  51 +++++---
 buildSrc/gradle.properties                      |   2 +-
 .../aurora/build/CoverageReportCheck.groovy     | 131 -------------------
 gradle/wrapper/gradle-wrapper.properties        |   2 +-
 4 files changed, 32 insertions(+), 154 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/aurora/blob/0606369e/build.gradle
----------------------------------------------------------------------
diff --git a/build.gradle b/build.gradle
index 0467338..851bab5 100644
--- a/build.gradle
+++ b/build.gradle
@@ -11,9 +11,6 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-import org.apache.aurora.build.CoverageReportCheck
-import org.gradle.api.JavaVersion
-
 plugins {
   id 'com.eriwen.gradle.js' version '1.12.1'
   id 'com.github.ben-manes.versions' version '0.11.3'
@@ -237,20 +234,22 @@ project(':api') {
   apply plugin: org.apache.aurora.build.ThriftPlugin
   apply plugin: org.apache.aurora.build.ThriftEntitiesPlugin
 
-  task checkPython << {
-    def python27Executable = ['python2.7', 'python'].find { python ->
-      try {
-        def check = "import sys; sys.exit(0 if sys.version_info >= (2,7) and sys.version_info < (3,) else 1)"
-        return [python, "-c", check].execute().waitFor() == 0
-      } catch (IOException e) {
-        return false
+  task checkPython {
+    doLast {
+      def python27Executable = ['python2.7', 'python'].find { python ->
+        try {
+          def check = "import sys; sys.exit(0 if sys.version_info >= (2,7) and sys.version_info < (3,) else 1)"
+          return [python, "-c", check].execute().waitFor() == 0
+        } catch (IOException e) {
+          return false
+        }
       }
-    }
 
-    if (python27Executable == null) {
-      throw new GradleException('Build requires Python 2.7.')
-    } else {
-      thriftEntities.python = python27Executable
+      if (python27Executable == null) {
+        throw new GradleException('Build requires Python 2.7.')
+      } else {
+        thriftEntities.python = python27Executable
+      }
     }
   }
   generateThriftEntitiesJava.dependsOn checkPython
@@ -621,13 +620,23 @@ jacocoTestReport {
 }
 test.finalizedBy jacocoTestReport
 
-task analyzeReport(type: CoverageReportCheck) {
-  coverageReportFile = "$reportPath/jacocoTestReport.xml"
-  minInstructionCoverage = 0.89
-  minBranchCoverage = 0.835
-  legacyClassesWithoutCoverage = file('config/legacy_untested_classes.txt').readLines()
+jacocoTestCoverageVerification {
+  violationRules {
+    rule {
+      limit {
+        counter = 'INSTRUCTION'
+        minimum = 0.87
+      }
+    }
+    rule {
+      limit {
+        counter = 'BRANCH'
+        minimum = 0.79
+      }
+    }
+  }
 }
-jacocoTestReport.finalizedBy analyzeReport
+jacocoTestReport.finalizedBy jacocoTestCoverageVerification
 
 def jmhHumanOutputPath = "$buildDir/reports/jmh/human.txt"
 jmh {

http://git-wip-us.apache.org/repos/asf/aurora/blob/0606369e/buildSrc/gradle.properties
----------------------------------------------------------------------
diff --git a/buildSrc/gradle.properties b/buildSrc/gradle.properties
index a7214d3..0c33f29 100644
--- a/buildSrc/gradle.properties
+++ b/buildSrc/gradle.properties
@@ -1,3 +1,3 @@
 # When upgrading gradle versions, be sure to update the relevant files in the aurora-packaging
 # repo as well. See https://reviews.apache.org/r/39113/ for an example.
-GRADLE_VERSION = 3.1
+GRADLE_VERSION = 4.2

http://git-wip-us.apache.org/repos/asf/aurora/blob/0606369e/buildSrc/src/main/groovy/org/apache/aurora/build/CoverageReportCheck.groovy
----------------------------------------------------------------------
diff --git a/buildSrc/src/main/groovy/org/apache/aurora/build/CoverageReportCheck.groovy b/buildSrc/src/main/groovy/org/apache/aurora/build/CoverageReportCheck.groovy
deleted file mode 100644
index da91f39..0000000
--- a/buildSrc/src/main/groovy/org/apache/aurora/build/CoverageReportCheck.groovy
+++ /dev/null
@@ -1,131 +0,0 @@
-/**
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.aurora.build
-
-import org.gradle.api.DefaultTask
-import org.gradle.api.GradleException
-import org.gradle.api.tasks.TaskAction
-
-/**
- * A task that analyzes the XML coverage report from JaCoCo and fails the build if code coverage
- * metrics are not met.
- */
-class CoverageReportCheck extends DefaultTask {
-
-  // The XML coverage report file.
-  def coverageReportFile
-
-  // Minimum ratio of instructions covered, [0, 1.0].
-  def minInstructionCoverage
-
-  // Minimum ratio of branches covered, [0, 1.0].
-  def minBranchCoverage
-
-  // Classes that may be allowed to have zero test coverage.
-  def legacyClassesWithoutCoverage
-
-  // The amount of wiggle room when requiring min coverage be raised.
-  def epsilon = 0.005
-
-  private def computeCoverage(counterNodes, type) {
-    def node = counterNodes.find { it.@type == type }
-    def missed = node.@missed.toInteger()
-    def covered = node.@covered.toInteger()
-    return ((double) covered) / (missed + covered)
-  }
-
-  def checkThresholds(coverage, minCoverage, type) {
-    if (coverage < minCoverage) {
-      return "$type coverage is $coverage, but must be greater than $minCoverage"
-    } else {
-      def floored = Math.floor(coverage * 100) / 100
-      if (floored > (minCoverage + epsilon)) {
-        println("$type coverage of $floored exceeds min instruction coverage of $minCoverage"
-            + " by more than $epsilon, please raise the threshold!")
-      } else {
-        println("$type coverage of $coverage exceeds minimum coverage of $minCoverage.")
-      }
-    }
-  }
-
-  def checkGlobalCoverage(coverageCounts) {
-    def coverageErrors = [
-        [computeCoverage(coverageCounts, 'INSTRUCTION'), minInstructionCoverage, 'Instruction'],
-        [computeCoverage(coverageCounts, 'BRANCH'), minBranchCoverage, 'Branch']
-    ].collect() {
-      return checkThresholds(*it)
-    }.findAll()
-
-    if (!coverageErrors.isEmpty()) {
-      // We print here and don't fail the build since this metric has proven to be flaky,
-      // and different JVMs can produce different results.
-      println(coverageErrors.join('\n'))
-    }
-  }
-
-  def checkClassCoverage(coverageReport) {
-    def coverageErrors = coverageReport.package.class.collect { cls ->
-      def matchedMethods = cls.method
-          // Ignore static code, it should not count as test coverage.
-          .findAll({ m -> m.@name != '<clinit>' })
-          // Ignore classes that only have a constructor. This will avoid tripping for things like
-          // constant-only utility classes, and 'value' classes like TypeLiteral and Clazz.
-          .findAll({ m -> m.@name != '<init>' })
-
-      // Ignore enums that contain only default methods.
-      if (matchedMethods.collect { m -> m.@name } == ['values', 'valueOf']) {
-        return null
-      }
-
-      if (matchedMethods.isEmpty()) {
-        if (cls.@name in legacyClassesWithoutCoverage) {
-          return 'Please remove ' + cls.@name + ' from the legacyClassesWithoutCoverage list' \
-              + ', this check does not apply for constructor-only classes' \
-              + ' or classes with only static class initialization code.'
-        } else {
-          return null
-        }
-      }
-
-      def covered = matchedMethods.collect { m ->
-        m.counter.find({ c -> c.@type == 'INSTRUCTION' }).@covered.toInteger()}.sum(0)
-
-      if (cls.@name in legacyClassesWithoutCoverage) {
-        if (covered != 0) {
-          return 'Thanks for adding the first test coverage to: ' + cls.@name \
-              + ' please remove it from the legacyClassesWithoutCoverage list'
-        }
-      } else if (covered == 0) {
-        return 'Test coverage missing for ' + cls.@name
-      }
-      return null
-    }.findAll()  // Filter nulls.
-    if (!coverageErrors.isEmpty()) {
-      throw new GradleException(coverageErrors.join('\n'))
-    }
-  }
-
-  @TaskAction
-  def analyze() {
-    def parser = new XmlSlurper()
-    parser.setFeature("http://apache.org/xml/features/disallow-doctype-decl", false);
-    // Avoid trying to load the DTD for the XML document, which does not exist.
-    parser.setFeature("http://apache.org/xml/features/nonvalidating/load-external-dtd", false)
-
-    def coverageReport = parser.parse(coverageReportFile)
-
-    checkGlobalCoverage(coverageReport.counter)
-    checkClassCoverage(coverageReport)
-  }
-}

http://git-wip-us.apache.org/repos/asf/aurora/blob/0606369e/gradle/wrapper/gradle-wrapper.properties
----------------------------------------------------------------------
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
index b290cf6..1160a69 100644
--- a/gradle/wrapper/gradle-wrapper.properties
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME
 distributionPath=wrapper/dists
 zipStoreBase=GRADLE_USER_HOME
 zipStorePath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-3.1-bin.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-4.2-bin.zip