xref: /aosp_15_r20/external/nullaway/gradle/dependencies.gradle (revision f50c306653bc89b8210ce6c9e0b0b44fc134bc03)
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