From 0486f795ab4445b16ff363e13d469172dff04e55 Mon Sep 17 00:00:00 2001 From: Tomo Suzuki Date: Mon, 13 Apr 2020 14:42:28 -0400 Subject: [PATCH 1/8] test: testing linkge checker with Gradle --- .kokoro/build.sh | 1 + build.gradle | 13 +++++++++++++ 2 files changed, 14 insertions(+) diff --git a/.kokoro/build.sh b/.kokoro/build.sh index 29a21d612..8c9cc2b0a 100755 --- a/.kokoro/build.sh +++ b/.kokoro/build.sh @@ -23,5 +23,6 @@ echo $JOB_TYPE ./gradlew assemble ./gradlew build install +./gradlew checkJavaLinkage -x signMavenJavaPublication bash $KOKORO_GFILE_DIR/codecov.sh diff --git a/build.gradle b/build.gradle index 3c281b13b..97c96344d 100644 --- a/build.gradle +++ b/build.gradle @@ -459,3 +459,16 @@ task finalizeRelease { } } } + +configurations { linkageChecker } +dependencies { + // Separate configuration (class path) for Linkage Checker + linkageChecker "com.google.cloud.tools:dependencies:1.2.0" +} + +project.task('checkJavaLinkage', type: JavaExec) { + dependsOn project.getTasksByName('publishMavenJavaPublicationToMavenLocal', true) + classpath = project.configurations.linkageChecker + main = 'com.google.cloud.tools.opensource.classpath.LinkageCheckerMain' + args '-a', "com.google.api:gax-grpc:${project.version}" +} From 8cab37dfdc3eda360ab6e1138f05fa57a1cc7209 Mon Sep 17 00:00:00 2001 From: Tomo Suzuki Date: Wed, 6 May 2020 11:02:28 -0400 Subject: [PATCH 2/8] linkage checker --- build.gradle | 27 ++++++++++++------------ gradle/wrapper/gradle-wrapper.properties | 5 +++-- 2 files changed, 17 insertions(+), 15 deletions(-) diff --git a/build.gradle b/build.gradle index 97c96344d..7ad16b888 100644 --- a/build.gradle +++ b/build.gradle @@ -141,6 +141,7 @@ subprojects { configurations { shadowNoGuava + linkageChecker } jacocoTestReport { @@ -233,6 +234,9 @@ subprojects { dependencies { codeGeneration libraries['maven.com_google_auto_value_auto_value'], libraries['maven.com_google_code_findbugs_jsr305'] + + // Separate configuration (class path) for Linkage Checker + linkageChecker "com.google.cloud.tools:dependencies:1.4.0" } compileJava.classpath += configurations.codeGeneration @@ -347,6 +351,16 @@ subprojects { } } } + + if (project.name in ['gax', 'gax-grpc', 'gax-httpjson']) { + task checkJavaLinkage(type: JavaExec) { + project.setProperty('skip.signing', true) + dependsOn project.getTasksByName('publishMavenJavaPublicationToMavenLocal', true) + classpath = configurations.linkageChecker + main = 'com.google.cloud.tools.opensource.classpath.LinkageCheckerMain' + args '-a', "com.google.api:${project.name}:${project.version}" + } + } } // JavaDoc @@ -459,16 +473,3 @@ task finalizeRelease { } } } - -configurations { linkageChecker } -dependencies { - // Separate configuration (class path) for Linkage Checker - linkageChecker "com.google.cloud.tools:dependencies:1.2.0" -} - -project.task('checkJavaLinkage', type: JavaExec) { - dependsOn project.getTasksByName('publishMavenJavaPublicationToMavenLocal', true) - classpath = project.configurations.linkageChecker - main = 'com.google.cloud.tools.opensource.classpath.LinkageCheckerMain' - args '-a', "com.google.api:gax-grpc:${project.version}" -} diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index a95009c3b..c13472f38 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,6 @@ +#Fri Apr 17 10:46:00 EDT 2020 +distributionUrl=https\://services.gradle.org/distributions/gradle-4.9-all.zip distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-4.9-bin.zip -zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists +zipStoreBase=GRADLE_USER_HOME From 4bd0a887d87c3d553f012e95294185839d2d9ccf Mon Sep 17 00:00:00 2001 From: Tomo Suzuki Date: Wed, 6 May 2020 11:27:36 -0400 Subject: [PATCH 3/8] Linkage Checker for gax, gax-grpc, gax-httpjson --- build.gradle | 26 +- gax-grpc/linkage-checker-exclusion.xml | 587 +++++++++++++++++++++ gax-httpjson/linkage-checker-exclusion.xml | 2 + gax/linkage-checker-exclusion.xml | 2 + 4 files changed, 606 insertions(+), 11 deletions(-) create mode 100644 gax-grpc/linkage-checker-exclusion.xml create mode 100644 gax-httpjson/linkage-checker-exclusion.xml create mode 100644 gax/linkage-checker-exclusion.xml diff --git a/build.gradle b/build.gradle index 7ad16b888..d4b30bd21 100644 --- a/build.gradle +++ b/build.gradle @@ -24,7 +24,7 @@ apply plugin: 'com.github.sherter.google-java-format' apply plugin: 'io.codearte.nexus-staging' // TODO: Populate this from dependencies.properties version property (for proper Gradle-Bazel sync) -project.version = "1.56.0" // {x-version-update:gax:current} +project.version = "1.60.0" // {x-version-update:gax:current} ext { // Project names not used for release @@ -340,6 +340,16 @@ subprojects { } } } + + task checkJavaLinkage(type: JavaExec) { + // Example invocation: + // ./gradlew gax-httpjson:checkJavaLinkage -Pskip.signing + dependsOn project.getTasksByName('publishMavenJavaPublicationToMavenLocal', true) + classpath = configurations.linkageChecker + main = 'com.google.cloud.tools.opensource.classpath.LinkageCheckerMain' + args '-a', "com.google.api:${project.name}:${project.version}", + '--exclusion-file', 'linkage-checker-exclusion.xml' + } } signing { @@ -351,16 +361,6 @@ subprojects { } } } - - if (project.name in ['gax', 'gax-grpc', 'gax-httpjson']) { - task checkJavaLinkage(type: JavaExec) { - project.setProperty('skip.signing', true) - dependsOn project.getTasksByName('publishMavenJavaPublicationToMavenLocal', true) - classpath = configurations.linkageChecker - main = 'com.google.cloud.tools.opensource.classpath.LinkageCheckerMain' - args '-a', "com.google.api:${project.name}:${project.version}" - } - } } // JavaDoc @@ -473,3 +473,7 @@ task finalizeRelease { } } } + +task checkAllJavaLinkage { + dependsOn project.getTasksByName('checkJavaLinkage', true) +} diff --git a/gax-grpc/linkage-checker-exclusion.xml b/gax-grpc/linkage-checker-exclusion.xml new file mode 100644 index 000000000..40c0c838a --- /dev/null +++ b/gax-grpc/linkage-checker-exclusion.xml @@ -0,0 +1,587 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/gax-httpjson/linkage-checker-exclusion.xml b/gax-httpjson/linkage-checker-exclusion.xml new file mode 100644 index 000000000..b4c28069e --- /dev/null +++ b/gax-httpjson/linkage-checker-exclusion.xml @@ -0,0 +1,2 @@ + + diff --git a/gax/linkage-checker-exclusion.xml b/gax/linkage-checker-exclusion.xml new file mode 100644 index 000000000..b4c28069e --- /dev/null +++ b/gax/linkage-checker-exclusion.xml @@ -0,0 +1,2 @@ + + From 906e4a3c6080fb2ee226be140da20e96f51c4bf5 Mon Sep 17 00:00:00 2001 From: Tomo Suzuki Date: Wed, 6 May 2020 11:32:47 -0400 Subject: [PATCH 4/8] Added in kokoro shell script --- .kokoro/linkage-monitor.sh | 5 +++++ build.gradle | 8 ++------ 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/.kokoro/linkage-monitor.sh b/.kokoro/linkage-monitor.sh index 2f78d139f..86bc2069d 100755 --- a/.kokoro/linkage-monitor.sh +++ b/.kokoro/linkage-monitor.sh @@ -23,6 +23,7 @@ cd github/gax-java/ java -version echo ${JOB_TYPE} +# Linkage Monitor checks the compatibility of GAX BOM # Using Gradle's maven-publish plugin. No need to sign the JAR. ./gradlew build publishToMavenLocal -x test -x signMavenJavaPublication @@ -32,3 +33,7 @@ curl -v -O "https://storage.googleapis.com/cloud-opensource-java-linkage-monitor # Fails if there's new linkage errors compared with baseline java -jar ${JAR} com.google.cloud:libraries-bom + + +# Linkage Checker looks for linkage errors at artifact level: gax, gax-grpc, and gax-httpjson +./gradlew checkJavaLinkage diff --git a/build.gradle b/build.gradle index d4b30bd21..123fd0a35 100644 --- a/build.gradle +++ b/build.gradle @@ -343,7 +343,7 @@ subprojects { task checkJavaLinkage(type: JavaExec) { // Example invocation: - // ./gradlew gax-httpjson:checkJavaLinkage -Pskip.signing + // ./gradlew gax-httpjson:checkJavaLinkage dependsOn project.getTasksByName('publishMavenJavaPublicationToMavenLocal', true) classpath = configurations.linkageChecker main = 'com.google.cloud.tools.opensource.classpath.LinkageCheckerMain' @@ -472,8 +472,4 @@ task finalizeRelease { commandLine 'rm', '-r', 'tmp_gh-pages' } } -} - -task checkAllJavaLinkage { - dependsOn project.getTasksByName('checkJavaLinkage', true) -} +} \ No newline at end of file From cf7ec0730cce91fa49590363949bd1bf351e4868 Mon Sep 17 00:00:00 2001 From: Tomo Suzuki Date: Wed, 6 May 2020 11:34:59 -0400 Subject: [PATCH 5/8] Removed unnecessary change --- .kokoro/build.sh | 1 - build.gradle | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/.kokoro/build.sh b/.kokoro/build.sh index 8c9cc2b0a..29a21d612 100755 --- a/.kokoro/build.sh +++ b/.kokoro/build.sh @@ -23,6 +23,5 @@ echo $JOB_TYPE ./gradlew assemble ./gradlew build install -./gradlew checkJavaLinkage -x signMavenJavaPublication bash $KOKORO_GFILE_DIR/codecov.sh diff --git a/build.gradle b/build.gradle index 123fd0a35..435846e1c 100644 --- a/build.gradle +++ b/build.gradle @@ -24,7 +24,7 @@ apply plugin: 'com.github.sherter.google-java-format' apply plugin: 'io.codearte.nexus-staging' // TODO: Populate this from dependencies.properties version property (for proper Gradle-Bazel sync) -project.version = "1.60.0" // {x-version-update:gax:current} +project.version = "1.56.0" // {x-version-update:gax:current} ext { // Project names not used for release From 425b92b9c4682d219af3762b3e4b10f59227ed49 Mon Sep 17 00:00:00 2001 From: Tomo Suzuki Date: Wed, 6 May 2020 11:37:00 -0400 Subject: [PATCH 6/8] Reverting unnecessary change --- build.gradle | 2 +- gradle/wrapper/gradle-wrapper.properties | 5 ++--- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/build.gradle b/build.gradle index 435846e1c..47e6c44b0 100644 --- a/build.gradle +++ b/build.gradle @@ -472,4 +472,4 @@ task finalizeRelease { commandLine 'rm', '-r', 'tmp_gh-pages' } } -} \ No newline at end of file +} diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index c13472f38..a95009c3b 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,5 @@ -#Fri Apr 17 10:46:00 EDT 2020 -distributionUrl=https\://services.gradle.org/distributions/gradle-4.9-all.zip distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -zipStorePath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-4.9-bin.zip zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists From 73eadc5d8d8f59f68d4cc1d0e809e71a57ba23ee Mon Sep 17 00:00:00 2001 From: Tomo Suzuki Date: Wed, 6 May 2020 11:53:09 -0400 Subject: [PATCH 7/8] Added comment for exclusion file --- build.gradle | 2 ++ 1 file changed, 2 insertions(+) diff --git a/build.gradle b/build.gradle index 47e6c44b0..4e283cfd4 100644 --- a/build.gradle +++ b/build.gradle @@ -349,6 +349,8 @@ subprojects { main = 'com.google.cloud.tools.opensource.classpath.LinkageCheckerMain' args '-a', "com.google.api:${project.name}:${project.version}", '--exclusion-file', 'linkage-checker-exclusion.xml' + // The exclusion file above can be regenerated by '-o' option. See its Wiki for details: + // https://github.com/GoogleCloudPlatform/cloud-opensource-java/wiki/LinkageCheckerMain#exclusion-files } } From 9ccddd7f57a9adca459c5aad655b56844610673b Mon Sep 17 00:00:00 2001 From: Tomo Suzuki Date: Wed, 6 May 2020 15:23:05 -0400 Subject: [PATCH 8/8] Exclusion file only for gax-grpc --- build.gradle | 12 ++++++++---- gax-httpjson/linkage-checker-exclusion.xml | 2 -- gax/linkage-checker-exclusion.xml | 2 -- 3 files changed, 8 insertions(+), 8 deletions(-) delete mode 100644 gax-httpjson/linkage-checker-exclusion.xml delete mode 100644 gax/linkage-checker-exclusion.xml diff --git a/build.gradle b/build.gradle index 4e283cfd4..822c63d67 100644 --- a/build.gradle +++ b/build.gradle @@ -347,10 +347,14 @@ subprojects { dependsOn project.getTasksByName('publishMavenJavaPublicationToMavenLocal', true) classpath = configurations.linkageChecker main = 'com.google.cloud.tools.opensource.classpath.LinkageCheckerMain' - args '-a', "com.google.api:${project.name}:${project.version}", - '--exclusion-file', 'linkage-checker-exclusion.xml' - // The exclusion file above can be regenerated by '-o' option. See its Wiki for details: - // https://github.com/GoogleCloudPlatform/cloud-opensource-java/wiki/LinkageCheckerMain#exclusion-files + + def arguments = ['-a', "com.google.api:${project.name}:${project.version}"] + if (project.name == 'gax-grpc') { + // The exclusion file can be regenerated by '-o' option. See its Wiki for details: + // https://github.com/GoogleCloudPlatform/cloud-opensource-java/wiki/LinkageCheckerMain#exclusion-files + arguments += ['--exclusion-file', 'linkage-checker-exclusion.xml'] + } + args arguments } } diff --git a/gax-httpjson/linkage-checker-exclusion.xml b/gax-httpjson/linkage-checker-exclusion.xml deleted file mode 100644 index b4c28069e..000000000 --- a/gax-httpjson/linkage-checker-exclusion.xml +++ /dev/null @@ -1,2 +0,0 @@ - - diff --git a/gax/linkage-checker-exclusion.xml b/gax/linkage-checker-exclusion.xml deleted file mode 100644 index b4c28069e..000000000 --- a/gax/linkage-checker-exclusion.xml +++ /dev/null @@ -1,2 +0,0 @@ - -