1import org.gradle.util.VersionNumber 2 3/* 4 * Copyright (C) 2017. Uber Technologies 5 * 6 * Licensed under the Apache License, Version 2.0 (the "License"); 7 * you may not use this file except in compliance with the License. 8 * You may obtain a copy of the License at 9 * 10 * http://www.apache.org/licenses/LICENSE-2.0 11 * 12 * Unless required by applicable law or agreed to in writing, software 13 * distributed under the License is distributed on an "AS IS" BASIS, 14 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 * See the License for the specific language governing permissions and 16 * limitations under the License. 17 */ 18 19// The oldest version of Error Prone that we support running on 20def oldestErrorProneVersion = "2.10.0" 21// Latest released Error Prone version that we've tested with 22def latestErrorProneVersion = "2.24.1" 23// Default to using latest tested Error Prone version 24def defaultErrorProneVersion = latestErrorProneVersion 25def errorProneVersionToCompileAgainst = defaultErrorProneVersion 26 27// If the epApiVersion project property is set, compile and test against that version of Error Prone 28if (project.hasProperty("epApiVersion")) { 29 def epApiVNum = VersionNumber.parse(epApiVersion) 30 if (epApiVNum.equals(VersionNumber.UNKNOWN)) { 31 throw new IllegalArgumentException("Invalid Error Prone API version " + epApiVersion) 32 } 33 if (epApiVNum.compareTo(VersionNumber.parse(oldestErrorProneVersion)) < 0) { 34 throw new IllegalArgumentException( 35 "Error Prone API version " + epApiVersion + " is too old; " 36 + oldestErrorProneVersion + " is the oldest supported version") 37 } 38 errorProneVersionToCompileAgainst = epApiVersion 39} 40 41def versions = [ 42 asm : "9.3", 43 checkerFramework : "3.40.0", 44 // for comparisons in other parts of the build 45 errorProneLatest : latestErrorProneVersion, 46 // The version of Error Prone used to check NullAway's code. 47 errorProne : defaultErrorProneVersion, 48 // The version of Error Prone that NullAway is compiled and tested against 49 errorProneApi : errorProneVersionToCompileAgainst, 50 support : "27.1.1", 51 wala : "1.6.3", 52 commonscli : "1.4", 53 autoValue : "1.10.2", 54 autoService : "1.1.1", 55] 56 57def apt = [ 58 autoValue : "com.google.auto.value:auto-value:${versions.autoValue}", 59 autoValueAnnot : "com.google.auto.value:auto-value-annotations:${versions.autoValue}", 60 autoService : "com.google.auto.service:auto-service:${versions.autoService}", 61 autoServiceAnnot : "com.google.auto.service:auto-service-annotations:${versions.autoService}", 62 jakartaInject : "jakarta.inject:jakarta.inject-api:2.0.0", 63 javaxInject : "javax.inject:javax.inject:1", 64] 65 66def build = [ 67 asm : "org.ow2.asm:asm:${versions.asm}", 68 asmTree : "org.ow2.asm:asm-tree:${versions.asm}", 69 errorProneCheckApi : "com.google.errorprone:error_prone_check_api:${versions.errorProneApi}", 70 errorProneCheckApiOld : "com.google.errorprone:error_prone_check_api:${oldestErrorProneVersion}", 71 errorProneCore : "com.google.errorprone:error_prone_core:${versions.errorProne}", 72 errorProneCoreForApi : "com.google.errorprone:error_prone_core:${versions.errorProneApi}", 73 errorProneJavac : "com.google.errorprone:javac:9+181-r4173-1", 74 errorProneTestHelpers : "com.google.errorprone:error_prone_test_helpers:${versions.errorProneApi}", 75 errorProneTestHelpersOld: "com.google.errorprone:error_prone_test_helpers:${oldestErrorProneVersion}", 76 checkerDataflow : "org.checkerframework:dataflow-nullaway:${versions.checkerFramework}", 77 guava : "com.google.guava:guava:30.1-jre", 78 javaxValidation : "javax.validation:validation-api:2.0.1.Final", 79 jspecify : "org.jspecify:jspecify:0.3.0", 80 jsr305Annotations : "com.google.code.findbugs:jsr305:3.0.2", 81 commonsIO : "commons-io:commons-io:2.11.0", 82 wala : [ 83 "com.ibm.wala:com.ibm.wala.util:${versions.wala}", 84 "com.ibm.wala:com.ibm.wala.shrike:${versions.wala}", 85 "com.ibm.wala:com.ibm.wala.core:${versions.wala}" 86 ], 87 commonscli : "commons-cli:commons-cli:${versions.commonscli}", 88 89 // android stuff 90 compileSdkVersion: 30, 91 ci: "true" == System.getenv("CI"), 92 minSdkVersion: 16, 93 targetSdkVersion: 30, 94 95] 96 97def support = [ 98 appcompat : "com.android.support:appcompat-v7:${versions.support}" 99] 100 101def test = [ 102 junit4 : "junit:junit:4.13.2", 103 junit5Jupiter : [ 104 "org.junit.jupiter:junit-jupiter-api:5.0.2", 105 "org.apiguardian:apiguardian-api:1.0.0" 106 ], 107 jetbrainsAnnotations : "org.jetbrains:annotations:24.1.0", 108 cfQual : "org.checkerframework:checker-qual:${versions.checkerFramework}", 109 // 2.5.5 is the last release to contain this artifact 110 cfCompatQual : "org.checkerframework:checker-compat-qual:2.5.5", 111 rxjava2 : "io.reactivex.rxjava2:rxjava:2.1.2", 112 commonsLang3 : "org.apache.commons:commons-lang3:3.8.1", 113 commonsLang : "commons-lang:commons-lang:2.6", 114 lombok : "org.projectlombok:lombok:1.18.24", 115 springBeans : "org.springframework:spring-beans:5.3.7", 116 springContext : "org.springframework:spring-context:5.3.7", 117 grpcCore : "io.grpc:grpc-core:1.15.1", // Should upgrade, but this matches our guava version 118 mockito : "org.mockito:mockito-core:5.5.0", 119 javaxAnnotationApi : "javax.annotation:javax.annotation-api:1.3.2", 120 assertJ : "org.assertj:assertj-core:3.23.1", 121] 122 123ext.deps = [ 124 "apt": apt, 125 "build": build, 126 "support": support, 127 "test": test, 128 "versions": versions 129] 130