import org.gradle.util.VersionNumber /* * Copyright (C) 2017. Uber Technologies * * 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. */ // The oldest version of Error Prone that we support running on def oldestErrorProneVersion = "2.10.0" // Latest released Error Prone version that we've tested with def latestErrorProneVersion = "2.24.1" // Default to using latest tested Error Prone version def defaultErrorProneVersion = latestErrorProneVersion def errorProneVersionToCompileAgainst = defaultErrorProneVersion // If the epApiVersion project property is set, compile and test against that version of Error Prone if (project.hasProperty("epApiVersion")) { def epApiVNum = VersionNumber.parse(epApiVersion) if (epApiVNum.equals(VersionNumber.UNKNOWN)) { throw new IllegalArgumentException("Invalid Error Prone API version " + epApiVersion) } if (epApiVNum.compareTo(VersionNumber.parse(oldestErrorProneVersion)) < 0) { throw new IllegalArgumentException( "Error Prone API version " + epApiVersion + " is too old; " + oldestErrorProneVersion + " is the oldest supported version") } errorProneVersionToCompileAgainst = epApiVersion } def versions = [ asm : "9.3", checkerFramework : "3.40.0", // for comparisons in other parts of the build errorProneLatest : latestErrorProneVersion, // The version of Error Prone used to check NullAway's code. errorProne : defaultErrorProneVersion, // The version of Error Prone that NullAway is compiled and tested against errorProneApi : errorProneVersionToCompileAgainst, support : "27.1.1", wala : "1.6.3", commonscli : "1.4", autoValue : "1.10.2", autoService : "1.1.1", ] def apt = [ autoValue : "com.google.auto.value:auto-value:${versions.autoValue}", autoValueAnnot : "com.google.auto.value:auto-value-annotations:${versions.autoValue}", autoService : "com.google.auto.service:auto-service:${versions.autoService}", autoServiceAnnot : "com.google.auto.service:auto-service-annotations:${versions.autoService}", jakartaInject : "jakarta.inject:jakarta.inject-api:2.0.0", javaxInject : "javax.inject:javax.inject:1", ] def build = [ asm : "org.ow2.asm:asm:${versions.asm}", asmTree : "org.ow2.asm:asm-tree:${versions.asm}", errorProneCheckApi : "com.google.errorprone:error_prone_check_api:${versions.errorProneApi}", errorProneCheckApiOld : "com.google.errorprone:error_prone_check_api:${oldestErrorProneVersion}", errorProneCore : "com.google.errorprone:error_prone_core:${versions.errorProne}", errorProneCoreForApi : "com.google.errorprone:error_prone_core:${versions.errorProneApi}", errorProneJavac : "com.google.errorprone:javac:9+181-r4173-1", errorProneTestHelpers : "com.google.errorprone:error_prone_test_helpers:${versions.errorProneApi}", errorProneTestHelpersOld: "com.google.errorprone:error_prone_test_helpers:${oldestErrorProneVersion}", checkerDataflow : "org.checkerframework:dataflow-nullaway:${versions.checkerFramework}", guava : "com.google.guava:guava:30.1-jre", javaxValidation : "javax.validation:validation-api:2.0.1.Final", jspecify : "org.jspecify:jspecify:0.3.0", jsr305Annotations : "com.google.code.findbugs:jsr305:3.0.2", commonsIO : "commons-io:commons-io:2.11.0", wala : [ "com.ibm.wala:com.ibm.wala.util:${versions.wala}", "com.ibm.wala:com.ibm.wala.shrike:${versions.wala}", "com.ibm.wala:com.ibm.wala.core:${versions.wala}" ], commonscli : "commons-cli:commons-cli:${versions.commonscli}", // android stuff compileSdkVersion: 30, ci: "true" == System.getenv("CI"), minSdkVersion: 16, targetSdkVersion: 30, ] def support = [ appcompat : "com.android.support:appcompat-v7:${versions.support}" ] def test = [ junit4 : "junit:junit:4.13.2", junit5Jupiter : [ "org.junit.jupiter:junit-jupiter-api:5.0.2", "org.apiguardian:apiguardian-api:1.0.0" ], jetbrainsAnnotations : "org.jetbrains:annotations:24.1.0", cfQual : "org.checkerframework:checker-qual:${versions.checkerFramework}", // 2.5.5 is the last release to contain this artifact cfCompatQual : "org.checkerframework:checker-compat-qual:2.5.5", rxjava2 : "io.reactivex.rxjava2:rxjava:2.1.2", commonsLang3 : "org.apache.commons:commons-lang3:3.8.1", commonsLang : "commons-lang:commons-lang:2.6", lombok : "org.projectlombok:lombok:1.18.24", springBeans : "org.springframework:spring-beans:5.3.7", springContext : "org.springframework:spring-context:5.3.7", grpcCore : "io.grpc:grpc-core:1.15.1", // Should upgrade, but this matches our guava version mockito : "org.mockito:mockito-core:5.5.0", javaxAnnotationApi : "javax.annotation:javax.annotation-api:1.3.2", assertJ : "org.assertj:assertj-core:3.23.1", ] ext.deps = [ "apt": apt, "build": build, "support": support, "test": test, "versions": versions ]