Use Gradle dependency dynamic versioning (#1612)

* Use Gradle dependency dynamic versioning

Use dynamic versioning for Gradle dependencies when possible.
Please refer to go/dr-dependency-upgrade for more information about the
automation plan.

This PR calls out all dependencies that must be pinned to specific
versions for various reasons. The remaining ones are converted to
open-ended version ranges ("[version_str,)").
This commit is contained in:
Weimin Yu
2022-05-02 14:10:52 -04:00
committed by GitHub
parent fa135dcd85
commit 8e8911870c
159 changed files with 14185 additions and 14070 deletions
+189 -147
View File
@@ -16,178 +16,220 @@ ext {
// Direct dependencies and compile-time transitive dependencies (i.e.,
// those flagged as undeclared-dependency by Nebula-lint).
dependencyList = [
'args4j:args4j:2.0.26',
// Pinned dependencies (those cannot use dynamic version) should be listed
// first. There are several reasons why a dependency has to be pinned.
// 1. The resolved dynamic version introduces breaking API changes that
// cause compilation errors.
// 2. The resolved version has behavior changes that break some tests.
// 3. Pinned by legacy software. E.g., the closure compiler and stylesheet
// jars must be pinned to work with the final version of gwt-user.
// 4. The resolved version is a pin-breaker, i.e., it forcefully upgrades
// a pinned dependency to a newer version.
// 5. Inconsistent group resolutions: the resolved versions of modules in
// a dependency group can not work together. For example, the three
// bouncycastle jars need to be hardcoded with the same version string
// as of April, 2022.
// 6. Dependency constraints violation: e.g., as of April 2022, Hibernate
// 6.0 has a dependency that is not Java-8-compatible.
// 7. Maven mirroring error. Gradle expects that a dependency with dynamic
// version be available on both repo.maven and repo2.maven. The
// resolved version of xpp3 is not on repo.maven. This may be due to
// the fact that xpp3 has been renamed to org.ogce.xpp3.
// Breaking changes causing compilation error.
'com.beust:jcommander:1.60',
'com.github.ben-manes.caffeine:caffeine:2.9.3',
'com.google.api:gax:1.66.0',
'com.google.api.grpc:proto-google-cloud-secretmanager-v1:1.4.0',
// The two below are needed only for Datastore bulk delete pipeline.
'com.google.api.grpc:proto-google-cloud-datastore-v1:0.88.9',
'com.google.api.grpc:proto-google-cloud-tasks-v2:1.33.2',
'com.google.api.grpc:proto-google-common-protos:2.1.0',
'com.google.api-client:google-api-client-java6:1.31.3',
'com.google.api-client:google-api-client:1.31.3',
'com.google.api-client:google-api-client-appengine:1.31.3',
'com.google.api-client:google-api-client-servlet:1.31.3',
'com.google.apis:google-api-services-admin-directory:directory_v1-rev118-1.25.0',
'com.google.apis:google-api-services-appengine:v1-rev130-1.25.0',
'com.google.apis:google-api-services-bigquery:v2-rev459-1.25.0',
'com.google.apis:google-api-services-cloudkms:v1-rev108-1.25.0',
'com.google.apis:google-api-services-dataflow:v1b3-rev302-1.25.0',
'com.google.apis:google-api-services-dns:v2beta1-rev99-1.25.0',
'com.google.apis:google-api-services-admin-directory:directory_v1-rev118-1.25.0',
'com.google.apis:google-api-services-drive:v2-rev393-1.25.0',
'com.google.apis:google-api-services-groupssettings:v1-rev82-1.25.0',
'com.google.apis:google-api-services-monitoring:v3-rev540-1.25.0',
'com.google.apis:google-api-services-sheets:v4-rev612-1.25.0',
'com.google.apis:google-api-services-storage:v1-rev20210127-1.31.0',
'com.google.appengine.tools:appengine-gcs-client:0.8.1',
'com.google.appengine.tools:appengine-mapreduce:0.9',
'com.google.appengine.tools:appengine-pipeline:0.2.13',
'com.google.appengine:appengine-api-1.0-sdk:1.9.86',
'com.google.appengine:appengine-api-stubs:1.9.86',
'com.google.appengine:appengine-remote-api:1.9.86',
'com.google.appengine:appengine-testing:1.9.86',
'com.google.auth:google-auth-library-credentials:0.24.1',
'com.google.auth:google-auth-library-oauth2-http:0.24.1',
'com.google.auto.service:auto-service-annotations:1.0-rc7',
'com.google.auto.service:auto-service:1.0-rc7',
'com.google.auto.value:auto-value-annotations:1.7.4',
'com.google.auto.value:auto-value:1.7.4',
'com.google.common.html.types:types:1.0.6',
'com.google.closure-stylesheets:closure-stylesheets:1.5.0',
// The two below are needed only for Datastore bulk delete pipeline.
'com.google.cloud.bigdataoss:util:2.1.3',
'com.google.cloud.datastore:datastore-v1-proto-client:1.6.3',
'com.google.cloud.sql:jdbc-socket-factory-core:1.2.1',
'com.google.cloud.sql:postgres-socket-factory:1.2.1',
'com.google.cloud:google-cloud-core:1.94.3',
'com.google.cloud:google-cloud-core-http:1.94.3',
'com.google.cloud:google-cloud-secretmanager:1.4.0',
'com.google.cloud:google-cloud-storage:1.113.12',
'com.google.cloud:google-cloud-nio:0.123.4',
'com.google.cloud:google-cloud-tasks:1.33.2',
'com.google.code.findbugs:jsr305:3.0.2',
'com.google.code.gson:gson:2.8.6',
'com.google.dagger:dagger-compiler:2.33',
'com.google.dagger:dagger:2.33',
'com.google.errorprone:error_prone_annotations:2.7.1',
'com.google.flogger:flogger-system-backend:0.7.4',
'com.google.flogger:flogger:0.7.4',
'com.google.guava:guava-testlib:30.1.1-jre',
'com.google.guava:guava:30.1.1-jre',
'com.google.gwt:gwt-user:2.9.0',
'com.google.http-client:google-http-client-appengine:1.39.0',
'com.google.http-client:google-http-client-jackson2:1.39.0',
'com.google.http-client:google-http-client:1.39.0',
'com.google.inject:guice:5.0.1',
'com.google.javascript:closure-compiler:v20210505',
'com.google.monitoring-client:contrib:1.0.7',
'com.google.monitoring-client:metrics:1.0.7',
'com.google.monitoring-client:stackdriver:1.0.7',
'com.google.oauth-client:google-oauth-client:1.31.4',
'com.google.oauth-client:google-oauth-client-appengine:1.31.4',
'com.google.oauth-client:google-oauth-client-java6:1.31.4',
'com.google.oauth-client:google-oauth-client-jetty:1.31.4',
'com.google.oauth-client:google-oauth-client-servlet:1.31.4',
'com.google.protobuf:protobuf-java:3.13.0',
'com.google.protobuf:protobuf-java-util:3.17.3',
'com.google.re2j:re2j:1.6',
'com.google.template:soy:2021-02-01',
'com.google.truth.extensions:truth-java8-extension:1.1.2',
'com.google.truth:truth:1.1.2',
'com.googlecode.json-simple:json-simple:1.1.1',
'com.ibm.icu:icu4j:68.2',
'com.jcraft:jsch:0.1.55',
'commons-codec:commons-codec:1.15',
'com.squareup:javapoet:1.13.0',
'com.sun.activation:javax.activation:1.2.0',
'com.sun.xml.bind:jaxb-impl:2.3.3',
'com.sun.xml.bind:jaxb-osgi:2.3.3',
'com.sun.xml.bind:jaxb-xjc:2.3.3',
'com.thoughtworks.qdox:qdox:1.12.1',
'com.zaxxer:HikariCP:3.4.5',
'dnsjava:dnsjava:3.3.1',
'guru.nidi:graphviz-java-all-j2v8:0.17.0',
'io.github.classgraph:classgraph:4.8.102',
'jline:jline:1.0',
// Breaking change causing soy template parsing error.
'com.google.template:soy:2021-02-01',
// Our .xjb files are not compatible with newer binding specs: some
// xml elements' names have changed.
'com.sun.xml.bind:jaxb-xjc:2.3.3',
// appengine-api-1.0-sdk has breaking changes.
'com.google.appengine:appengine-api-1.0-sdk:1.9.86',
// Pin-breakers for appengine-api-1.0-sdk
'com.google.appengine.tools:appengine-gcs-client:0.8.1',
'com.google.appengine.tools:appengine-pipeline:0.2.13',
'com.google.appengine:appengine-testing:1.9.86',
// Behavior change that breaks a test.
'io.github.java-diff-utils:java-diff-utils:4.9',
// Pinned for gwt-user.
'com.google.javascript:closure-compiler:v20210505',
'com.google.closure-stylesheets:closure-stylesheets:1.5.0',
// Hibernate 6.0 has Java11-only dependencies
'org.hibernate:hibernate-core:[5.4.23.Final, 6.0)',
'org.hibernate:hibernate-hikaricp:[5.4.23.Final, 6.0)',
// Broken by asymmetric mirroring on Maven. Note that this should be
// upgraded to org.ogce.xpp3
'xpp3:xpp3:1.1.4c',
// Dependency groups with inconsistent version resolutions start here
'io.netty:netty-buffer:4.1.59.Final',
'io.netty:netty-codec-http:4.1.59.Final',
'io.netty:netty-codec:4.1.59.Final',
'io.netty:netty-common:4.1.59.Final',
'io.netty:netty-handler:4.1.59.Final',
'io.netty:netty-tcnative-boringssl-static:2.0.36.Final',
'io.netty:netty-transport:4.1.59.Final',
'javax.annotation:javax.annotation-api:1.3.2',
'javax.annotation:jsr250-api:1.0',
'javax.inject:javax.inject:1',
'javax.mail:mail:1.4',
'javax.persistence:javax.persistence-api:2.2',
'javax.servlet:servlet-api:2.5',
'javax.xml.bind:jaxb-api:2.3.0',
'jline:jline:1.0',
'joda-time:joda-time:2.9.2',
'junit:junit:4.13',
'org.checkerframework:checker-qual:3.9.1',
'org.checkerframework:checker-compat-qual:2.5.5',
'org.junit.jupiter:junit-jupiter-api:5.6.2',
'org.junit.jupiter:junit-jupiter-engine:5.6.2',
'org.junit.jupiter:junit-jupiter-migrationsupport:5.6.2',
'org.junit.jupiter:junit-jupiter-params:5.6.2',
'org.junit.platform:junit-platform-runner:1.6.2',
'org.junit.platform:junit-platform-suite-api:1.6.2',
'org.junit-pioneer:junit-pioneer:0.7.0',
'org.apache.avro:avro:1.8.2',
'org.apache.beam:beam-runners-core-construction-java:2.37.0',
'org.apache.beam:beam-runners-direct-java:2.37.0',
'org.apache.beam:beam-runners-google-cloud-dataflow-java:2.37.0',
'org.apache.beam:beam-sdks-java-core:2.37.0',
'org.apache.beam:beam-sdks-java-extensions-google-cloud-platform-core:2.37.0',
'org.apache.beam:beam-sdks-java-io-google-cloud-platform:2.37.0',
'org.apache.commons:commons-lang3:3.8.1',
'org.apache.commons:commons-text:1.6',
'org.apache.ftpserver:ftplet-api:1.0.6',
'org.apache.ftpserver:ftpserver-core:1.0.6',
'org.apache.httpcomponents:httpclient:4.5.11',
'org.apache.httpcomponents:httpcore:4.4.13',
'org.apache.sshd:sshd-core:2.0.0',
'org.apache.sshd:sshd-scp:2.0.0',
'org.apache.sshd:sshd-sftp:2.0.0',
'org.apache.tomcat:tomcat-annotations-api:8.0.5',
'org.bouncycastle:bcpg-jdk15on:1.67',
'org.bouncycastle:bcpkix-jdk15on:1.67',
'org.bouncycastle:bcprov-jdk15on:1.67',
'com.fasterxml.jackson.core:jackson-databind:2.11.2',
'org.flywaydb:flyway-core:5.2.4',
'org.glassfish.jaxb:jaxb-runtime:2.3.0',
'org.hamcrest:hamcrest:2.2',
'org.hamcrest:hamcrest-core:2.2',
'org.hamcrest:hamcrest-library:2.2',
'org.hibernate:hibernate-core:5.4.23.Final',
'org.hibernate:hibernate-hikaricp:5.4.23.Final',
'org.joda:joda-money:1.0.1',
'org.json:json:20160810',
'org.jsoup:jsoup:1.13.1',
'org.mockito:mockito-core:3.7.7',
'org.mockito:mockito-junit-jupiter:3.7.7',
'org.mortbay.jetty:jetty:6.1.26',
'org.postgresql:postgresql:42.2.18',
'org.seleniumhq.selenium:selenium-api:3.141.59',
'org.seleniumhq.selenium:selenium-chrome-driver:3.141.59',
'org.seleniumhq.selenium:selenium-java:3.141.59',
'org.seleniumhq.selenium:selenium-remote-driver:3.141.59',
'org.slf4j:slf4j-jdk14:1.7.28',
'org.testcontainers:jdbc:1.15.2',
'org.testcontainers:junit-jupiter:1.15.2',
'org.testcontainers:postgresql:1.15.2',
'org.testcontainers:selenium:1.15.2',
'org.testcontainers:testcontainers:1.15.2',
'org.yaml:snakeyaml:1.17',
'us.fatehi:schemacrawler:16.10.1',
'us.fatehi:schemacrawler-api:16.10.1',
'us.fatehi:schemacrawler-diagram:16.10.1',
'us.fatehi:schemacrawler-tools:16.10.1',
'xerces:xmlParserAPIs:2.6.2',
'xpp3:xpp3:1.1.4c'
// Dependencies with dynamic versions start from here.
'args4j:args4j:[2.0.26,)',
'com.github.ben-manes.caffeine:caffeine:[2.9.3,)',
'com.google.api:gax:[1.66.0,)',
'com.google.api.grpc:proto-google-cloud-secretmanager-v1:[1.4.0,)',
// The two below are needed only for Datastore bulk delete pipeline.
'com.google.api.grpc:proto-google-cloud-datastore-v1:[0.88.9,)',
'com.google.api.grpc:proto-google-cloud-tasks-v2:[1.33.2,)',
'com.google.api.grpc:proto-google-common-protos:[2.1.0,)',
'com.google.api-client:google-api-client-java6:[1.31.3,)',
'com.google.api-client:google-api-client:[1.31.3,)',
'com.google.api-client:google-api-client-appengine:[1.31.3,)',
'com.google.api-client:google-api-client-servlet:[1.31.3,)',
'com.google.apis:google-api-services-appengine:[v1-rev130-1.25.0,)',
'com.google.apis:google-api-services-bigquery:[v2-rev459-1.25.0,)',
'com.google.apis:google-api-services-cloudkms:[v1-rev108-1.25.0,)',
'com.google.apis:google-api-services-dataflow:[v1b3-rev302-1.25.0,)',
'com.google.apis:google-api-services-groupssettings:[v1-rev82-1.25.0,)',
'com.google.apis:google-api-services-monitoring:[v3-rev540-1.25.0,)',
'com.google.apis:google-api-services-sheets:[v4-rev612-1.25.0,)',
'com.google.apis:google-api-services-storage:[v1-rev20210127-1.31.0,)',
'com.google.appengine.tools:appengine-mapreduce:[0.9,)',
'com.google.appengine:appengine-api-stubs:[1.9.86,)',
'com.google.appengine:appengine-remote-api:[1.9.86,)',
'com.google.auth:google-auth-library-credentials:[0.24.1,)',
'com.google.auth:google-auth-library-oauth2-http:[0.24.1,)',
'com.google.auto.service:auto-service-annotations:[1.0-rc7,)',
'com.google.auto.service:auto-service:[1.0-rc7,)',
'com.google.auto.value:auto-value-annotations:[1.7.4,)',
'com.google.auto.value:auto-value:[1.7.4,)',
'com.google.common.html.types:types:[1.0.6,)',
// The two below are needed only for Datastore bulk delete pipeline.
'com.google.cloud.bigdataoss:util:[2.1.3,)',
'com.google.cloud.datastore:datastore-v1-proto-client:[1.6.3,)',
'com.google.cloud.sql:jdbc-socket-factory-core:[1.2.1,)',
'com.google.cloud.sql:postgres-socket-factory:[1.2.1,)',
'com.google.cloud:google-cloud-core:[1.94.3,)',
'com.google.cloud:google-cloud-core-http:[1.94.3,)',
'com.google.cloud:google-cloud-secretmanager:[1.4.0,)',
'com.google.cloud:google-cloud-storage:[1.113.12,)',
'com.google.cloud:google-cloud-nio:[0.123.4,)',
'com.google.cloud:google-cloud-tasks:[1.33.2,)',
'com.google.code.findbugs:jsr305:[3.0.2,)',
'com.google.code.gson:gson:[2.8.6,)',
'com.google.dagger:dagger-compiler:[2.33,)',
'com.google.dagger:dagger:[2.33,)',
'com.google.errorprone:error_prone_annotations:[2.7.1,)',
'com.google.flogger:flogger-system-backend:[0.7.4,)',
'com.google.flogger:flogger:[0.7.4,)',
'com.google.guava:guava-testlib:[30.1.1-jre,)',
'com.google.guava:guava:[30.1.1-jre,)',
'com.google.gwt:gwt-user:[2.9.0,)',
'com.google.http-client:google-http-client-appengine:[1.39.0,)',
'com.google.http-client:google-http-client-jackson2:[1.39.0,)',
'com.google.http-client:google-http-client:[1.39.0,)',
'com.google.inject:guice:[5.0.1,)',
'com.google.monitoring-client:contrib:[1.0.7,)',
'com.google.monitoring-client:metrics:[1.0.7,)',
'com.google.monitoring-client:stackdriver:[1.0.7,)',
'com.google.oauth-client:google-oauth-client:[1.31.4,)',
'com.google.oauth-client:google-oauth-client-appengine:[1.31.4,)',
'com.google.oauth-client:google-oauth-client-java6:[1.31.4,)',
'com.google.oauth-client:google-oauth-client-jetty:[1.31.4,)',
'com.google.oauth-client:google-oauth-client-servlet:[1.31.4,)',
'com.google.protobuf:protobuf-java:[3.13.0,)',
'com.google.protobuf:protobuf-java-util:[3.17.3,)',
'com.google.re2j:re2j:[1.6,)',
'com.google.truth.extensions:truth-java8-extension:[1.1.2,)',
'com.google.truth:truth:[1.1.2,)',
'com.googlecode.json-simple:json-simple:[1.1.1,)',
'com.ibm.icu:icu4j:[68.2,)',
'com.jcraft:jsch:[0.1.55,)',
'commons-codec:commons-codec:[1.15,)',
'com.squareup:javapoet:[1.13.0,)',
'com.sun.activation:javax.activation:[1.2.0,)',
'com.sun.xml.bind:jaxb-impl:[2.3.3,)',
'com.sun.xml.bind:jaxb-osgi:[2.3.3,)',
'com.zaxxer:HikariCP:[3.4.5,)',
'dnsjava:dnsjava:[3.3.1,)',
'guru.nidi:graphviz-java-all-j2v8:[0.17.0,)',
'io.github.classgraph:classgraph:[4.8.102,)',
'io.netty:netty-tcnative-boringssl-static:[2.0.36.Final,)',
'javax.annotation:javax.annotation-api:[1.3.2,)',
'javax.annotation:jsr250-api:[1.0,)',
'javax.inject:javax.inject:[1,)',
'javax.mail:mail:[1.4,)',
'javax.persistence:javax.persistence-api:[2.2,)',
'javax.servlet:servlet-api:[2.5,)',
'javax.xml.bind:jaxb-api:[2.3.0,)',
'joda-time:joda-time:[2.9.2,)',
'junit:junit:[4.13,)',
'org.checkerframework:checker-qual:[3.9.1,)',
'org.checkerframework:checker-compat-qual:[2.5.5,)',
'org.junit.jupiter:junit-jupiter-api:[5.6.2,)',
'org.junit.jupiter:junit-jupiter-engine:[5.6.2,)',
'org.junit.jupiter:junit-jupiter-migrationsupport:[5.6.2,)',
'org.junit.jupiter:junit-jupiter-params:[5.6.2,)',
'org.junit.platform:junit-platform-runner:[1.6.2,)',
'org.junit.platform:junit-platform-suite-api:[1.6.2,)',
'org.junit-pioneer:junit-pioneer:[0.7.0,)',
'org.apache.avro:avro:[1.8.2,)',
'org.apache.beam:beam-runners-core-construction-java:[2.37.0,)',
'org.apache.beam:beam-runners-direct-java:[2.37.0,)',
'org.apache.beam:beam-runners-google-cloud-dataflow-java:[2.37.0,)',
'org.apache.beam:beam-sdks-java-core:[2.37.0,)',
'org.apache.beam:beam-sdks-java-extensions-google-cloud-platform-core:[2.37.0,)',
'org.apache.beam:beam-sdks-java-io-google-cloud-platform:[2.37.0,)',
'org.apache.commons:commons-lang3:[3.8.1,)',
'org.apache.commons:commons-text:[1.6,)',
'org.apache.ftpserver:ftplet-api:[1.0.6,)',
'org.apache.ftpserver:ftpserver-core:[1.0.6,)',
'org.apache.httpcomponents:httpclient:[4.5.11,)',
'org.apache.httpcomponents:httpcore:[4.4.13,)',
'org.apache.tomcat:tomcat-annotations-api:[8.0.5,)',
'com.fasterxml.jackson.core:jackson-databind:[2.11.2,)',
'org.flywaydb:flyway-core:[5.2.4,)',
'org.glassfish.jaxb:jaxb-runtime:[2.3.0,)',
'org.hamcrest:hamcrest:[2.2,)',
'org.hamcrest:hamcrest-core:[2.2,)',
'org.hamcrest:hamcrest-library:[2.2,)',
'org.joda:joda-money:[1.0.1,)',
'org.json:json:[20160810,)',
'org.jsoup:jsoup:[1.13.1,)',
'org.mockito:mockito-core:[3.7.7,)',
'org.mockito:mockito-junit-jupiter:[3.7.7,)',
'org.mortbay.jetty:jetty:[6.1.26,)',
'org.postgresql:postgresql:[42.2.18,)',
'org.slf4j:slf4j-jdk14:[1.7.28,)',
'org.testcontainers:jdbc:[1.15.2,)',
'org.testcontainers:junit-jupiter:[1.15.2,)',
'org.testcontainers:postgresql:[1.15.2,)',
'org.testcontainers:selenium:[1.15.2,)',
'org.testcontainers:testcontainers:[1.15.2,)',
'org.yaml:snakeyaml:[1.17,)',
'xerces:xmlParserAPIs:[2.6.2,)',
]
dependencyMap = dependencyList.collectEntries {