[go: nahoru, domu]

Adds vendor information to Compose lint checks

Also updates the minimum version of lint we compile against, since Compose will not be supported by older versions of AGP anyway, so we don't need to worry about lint compatibility for these versions.

Test: lintDebug
Fixes: b/182832722
Change-Id: Ib777e3a56d89ea12ba277fbbbfaa8ae67ed7171b
diff --git a/compose/animation/animation-core-lint/build.gradle b/compose/animation/animation-core-lint/build.gradle
index 4bd1fdb..3a4cd10 100644
--- a/compose/animation/animation-core-lint/build.gradle
+++ b/compose/animation/animation-core-lint/build.gradle
@@ -27,7 +27,7 @@
 BundleInsideHelper.forInsideLintJar(project)
 
 dependencies {
-    compileOnly libs.androidLintMinApi
+    compileOnly libs.androidLintMinComposeApi
     compileOnly libs.kotlinStdlib
     bundleInside(project(":compose:lint:common"))
 
diff --git a/compose/animation/animation-core-lint/src/main/java/androidx/compose/animation/core/lint/AnimationCoreIssueRegistry.kt b/compose/animation/animation-core-lint/src/main/java/androidx/compose/animation/core/lint/AnimationCoreIssueRegistry.kt
index 1988e40..dae1d21e 100644
--- a/compose/animation/animation-core-lint/src/main/java/androidx/compose/animation/core/lint/AnimationCoreIssueRegistry.kt
+++ b/compose/animation/animation-core-lint/src/main/java/androidx/compose/animation/core/lint/AnimationCoreIssueRegistry.kt
@@ -17,6 +17,7 @@
 package androidx.compose.animation.core.lint
 
 import com.android.tools.lint.client.api.IssueRegistry
+import com.android.tools.lint.client.api.Vendor
 import com.android.tools.lint.detector.api.CURRENT_API
 
 /**
@@ -30,4 +31,9 @@
         TransitionDetector.UnusedTransitionTargetStateParameter,
         UnrememberedAnimatableDetector.UnrememberedAnimatable
     )
+    override val vendor = Vendor(
+        vendorName = "Jetpack Compose",
+        identifier = "androidx.compose.animation.core",
+        feedbackUrl = "https://issuetracker.google.com/issues/new?component=612128"
+    )
 }
diff --git a/compose/animation/animation-core-lint/src/test/java/androidx/compose/animation/core/lint/ApiLintVersionsTest.kt b/compose/animation/animation-core-lint/src/test/java/androidx/compose/animation/core/lint/ApiLintVersionsTest.kt
index 133e1198..b4fbec9 100644
--- a/compose/animation/animation-core-lint/src/test/java/androidx/compose/animation/core/lint/ApiLintVersionsTest.kt
+++ b/compose/animation/animation-core-lint/src/test/java/androidx/compose/animation/core/lint/ApiLintVersionsTest.kt
@@ -33,10 +33,7 @@
         LintClient.clientName = LintClient.CLIENT_UNIT_TESTS
 
         val registry = AnimationCoreIssueRegistry()
-        // we hardcode version registry.api to the version that is used to run tests
         assertThat(registry.api).isEqualTo(CURRENT_API)
-        // Intentionally fails in IDE, because we use different API version in
-        // studio and command line
-        assertThat(registry.minApi).isEqualTo(3)
+        assertThat(registry.minApi).isEqualTo(10)
     }
 }
diff --git a/compose/animation/animation-lint/build.gradle b/compose/animation/animation-lint/build.gradle
index ce68e93..acbe4be 100644
--- a/compose/animation/animation-lint/build.gradle
+++ b/compose/animation/animation-lint/build.gradle
@@ -27,7 +27,7 @@
 BundleInsideHelper.forInsideLintJar(project)
 
 dependencies {
-    compileOnly libs.androidLintMinApi
+    compileOnly libs.androidLintMinComposeApi
     compileOnly libs.kotlinStdlib
     bundleInside(project(":compose:lint:common"))
 
diff --git a/compose/animation/animation-lint/src/main/java/androidx/compose/animation/lint/AnimationIssueRegistry.kt b/compose/animation/animation-lint/src/main/java/androidx/compose/animation/lint/AnimationIssueRegistry.kt
index e835511..592a6ba 100644
--- a/compose/animation/animation-lint/src/main/java/androidx/compose/animation/lint/AnimationIssueRegistry.kt
+++ b/compose/animation/animation-lint/src/main/java/androidx/compose/animation/lint/AnimationIssueRegistry.kt
@@ -19,6 +19,7 @@
 package androidx.compose.animation.lint
 
 import com.android.tools.lint.client.api.IssueRegistry
+import com.android.tools.lint.client.api.Vendor
 import com.android.tools.lint.detector.api.CURRENT_API
 
 /**
@@ -31,4 +32,9 @@
     override val issues get() = listOf(
         CrossfadeDetector.UnusedCrossfadeTargetStateParameter
     )
+    override val vendor = Vendor(
+        vendorName = "Jetpack Compose",
+        identifier = "androidx.compose.animation",
+        feedbackUrl = "https://issuetracker.google.com/issues/new?component=612128"
+    )
 }
diff --git a/compose/animation/animation-lint/src/test/java/androidx/compose/animation/lint/ApiLintVersionsTest.kt b/compose/animation/animation-lint/src/test/java/androidx/compose/animation/lint/ApiLintVersionsTest.kt
index 5e4df8f..3b758c0 100644
--- a/compose/animation/animation-lint/src/test/java/androidx/compose/animation/lint/ApiLintVersionsTest.kt
+++ b/compose/animation/animation-lint/src/test/java/androidx/compose/animation/lint/ApiLintVersionsTest.kt
@@ -33,10 +33,7 @@
         LintClient.clientName = LintClient.CLIENT_UNIT_TESTS
 
         val registry = AnimationIssueRegistry()
-        // we hardcode version registry.api to the version that is used to run tests
         assertThat(registry.api).isEqualTo(CURRENT_API)
-        // Intentionally fails in IDE, because we use different API version in
-        // studio and command line
-        assertThat(registry.minApi).isEqualTo(3)
+        assertThat(registry.minApi).isEqualTo(10)
     }
 }
diff --git a/compose/lint/common/build.gradle b/compose/lint/common/build.gradle
index b039cc5..446ff4c 100644
--- a/compose/lint/common/build.gradle
+++ b/compose/lint/common/build.gradle
@@ -22,7 +22,7 @@
 }
 
 dependencies {
-    compileOnly(libs.androidLintMinApi)
+    compileOnly(libs.androidLintMinComposeApi)
     compileOnly(libs.kotlinStdlib)
 
     api(libs.kotlinMetadataJvm)
diff --git a/compose/lint/internal-lint-checks/src/main/java/androidx/compose/lint/ComposeIssueRegistry.kt b/compose/lint/internal-lint-checks/src/main/java/androidx/compose/lint/ComposeIssueRegistry.kt
index b6143de..cf49d1c 100644
--- a/compose/lint/internal-lint-checks/src/main/java/androidx/compose/lint/ComposeIssueRegistry.kt
+++ b/compose/lint/internal-lint-checks/src/main/java/androidx/compose/lint/ComposeIssueRegistry.kt
@@ -20,6 +20,7 @@
 
 import androidx.build.lint.AndroidXIssueRegistry
 import com.android.tools.lint.client.api.IssueRegistry
+import com.android.tools.lint.client.api.Vendor
 import com.android.tools.lint.detector.api.CURRENT_API
 import com.android.tools.lint.detector.api.Issue
 
@@ -33,4 +34,9 @@
             UnnecessaryLambdaCreationDetector.ISSUE,
         ) + AndroidXIssueRegistry.Issues
     }
+    override val vendor = Vendor(
+        vendorName = "Jetpack Compose",
+        identifier = "compose:lint:internal-lint-checks",
+        feedbackUrl = "https://issuetracker.google.com/issues/new?component=612128"
+    )
 }
diff --git a/compose/material/material-lint/build.gradle b/compose/material/material-lint/build.gradle
index 33da16f..3a5a113 100644
--- a/compose/material/material-lint/build.gradle
+++ b/compose/material/material-lint/build.gradle
@@ -27,7 +27,7 @@
 BundleInsideHelper.forInsideLintJar(project)
 
 dependencies {
-    compileOnly libs.androidLintMinApi
+    compileOnly libs.androidLintMinComposeApi
     compileOnly libs.kotlinStdlib
     bundleInside(project(":compose:lint:common"))
 
diff --git a/compose/material/material-lint/src/main/java/androidx/compose/material/lint/ColorsDetector.kt b/compose/material/material-lint/src/main/java/androidx/compose/material/lint/ColorsDetector.kt
index d76a86f..2f4c445 100644
--- a/compose/material/material-lint/src/main/java/androidx/compose/material/lint/ColorsDetector.kt
+++ b/compose/material/material-lint/src/main/java/androidx/compose/material/lint/ColorsDetector.kt
@@ -33,8 +33,7 @@
 import com.android.tools.lint.detector.api.UastLintUtils
 import com.intellij.psi.PsiParameter
 import com.intellij.psi.PsiVariable
-import org.jetbrains.kotlin.asJava.elements.KtLightElement
-import org.jetbrains.kotlin.psi.KtParameter
+import org.jetbrains.kotlin.asJava.elements.KtLightParameter
 import org.jetbrains.uast.UCallExpression
 import org.jetbrains.uast.UElement
 import org.jetbrains.uast.UExpression
@@ -69,12 +68,7 @@
             }
 
             val parameters = method.parameterList.parameters.mapIndexed { index, parameter ->
-                // UCallExpressionEx is deprecated, but getArgumentForParameter doesn't exist on
-                // UCallExpression on the version of lint we compile against.
-                // TODO: remove when we upgrade the min lint version we compile against b/182832722
-                @Suppress("DEPRECATION")
-                val argumentForParameter = (node as org.jetbrains.uast.UCallExpressionEx)
-                    .getArgumentForParameter(index)
+                val argumentForParameter = node.getArgumentForParameter(index)
                 ParameterWithArgument(
                     parameter,
                     argumentForParameter
@@ -190,10 +184,8 @@
             // A default value exists (so !! is safe), and we are browsing Kotlin source
             // Note: this should be is KtLightParameter, but this was changed from an interface
             // to a class, so we get an IncompatibleClassChangeError.
-            // TODO: change to KtParameter when we upgrade the min lint version we compile against
-            //  b/182832722
-            parameter is KtLightElement<*, *> -> {
-                (parameter.kotlinOrigin!! as KtParameter).defaultValue.toUElement()
+            parameter is KtLightParameter -> {
+                parameter.kotlinOrigin!!.defaultValue.toUElement()
             }
             // A default value exists, but it is in a class file so we can't access it anymore
             else -> null
diff --git a/compose/material/material-lint/src/main/java/androidx/compose/material/lint/MaterialIssueRegistry.kt b/compose/material/material-lint/src/main/java/androidx/compose/material/lint/MaterialIssueRegistry.kt
index 822cc27..4d711a1 100644
--- a/compose/material/material-lint/src/main/java/androidx/compose/material/lint/MaterialIssueRegistry.kt
+++ b/compose/material/material-lint/src/main/java/androidx/compose/material/lint/MaterialIssueRegistry.kt
@@ -17,6 +17,7 @@
 package androidx.compose.material.lint
 
 import com.android.tools.lint.client.api.IssueRegistry
+import com.android.tools.lint.client.api.Vendor
 import com.android.tools.lint.detector.api.CURRENT_API
 
 /**
@@ -29,4 +30,9 @@
     override val issues get() = listOf(
         ColorsDetector.ConflictingOnColor
     )
+    override val vendor = Vendor(
+        vendorName = "Jetpack Compose",
+        identifier = "androidx.compose.material",
+        feedbackUrl = "https://issuetracker.google.com/issues/new?component=612128"
+    )
 }
diff --git a/compose/material/material-lint/src/test/java/androidx/compose/material/lint/ApiLintVersionsTest.kt b/compose/material/material-lint/src/test/java/androidx/compose/material/lint/ApiLintVersionsTest.kt
index 0364538..0b7531f 100644
--- a/compose/material/material-lint/src/test/java/androidx/compose/material/lint/ApiLintVersionsTest.kt
+++ b/compose/material/material-lint/src/test/java/androidx/compose/material/lint/ApiLintVersionsTest.kt
@@ -33,10 +33,7 @@
         LintClient.clientName = LintClient.CLIENT_UNIT_TESTS
 
         val registry = MaterialIssueRegistry()
-        // we hardcode version registry.api to the version that is used to run tests
         assertThat(registry.api).isEqualTo(CURRENT_API)
-        // Intentionally fails in IDE, because we use different API version in
-        // studio and command line
-        assertThat(registry.minApi).isEqualTo(3)
+        assertThat(registry.minApi).isEqualTo(10)
     }
 }
diff --git a/compose/runtime/runtime-lint/build.gradle b/compose/runtime/runtime-lint/build.gradle
index a7754a6d..f3672f6 100644
--- a/compose/runtime/runtime-lint/build.gradle
+++ b/compose/runtime/runtime-lint/build.gradle
@@ -27,7 +27,7 @@
 BundleInsideHelper.forInsideLintJar(project)
 
 dependencies {
-    compileOnly(libs.androidLintMinApi)
+    compileOnly(libs.androidLintMinComposeApi)
     compileOnly(libs.kotlinStdlib)
     bundleInside(project(":compose:lint:common"))
 
diff --git a/compose/runtime/runtime-lint/src/main/java/androidx/compose/runtime/lint/RuntimeIssueRegistry.kt b/compose/runtime/runtime-lint/src/main/java/androidx/compose/runtime/lint/RuntimeIssueRegistry.kt
index 117f9b5..57f33f0 100644
--- a/compose/runtime/runtime-lint/src/main/java/androidx/compose/runtime/lint/RuntimeIssueRegistry.kt
+++ b/compose/runtime/runtime-lint/src/main/java/androidx/compose/runtime/lint/RuntimeIssueRegistry.kt
@@ -19,6 +19,7 @@
 package androidx.compose.runtime.lint
 
 import com.android.tools.lint.client.api.IssueRegistry
+import com.android.tools.lint.client.api.Vendor
 import com.android.tools.lint.detector.api.CURRENT_API
 
 /**
@@ -37,4 +38,9 @@
         RememberDetector.RememberReturnType,
         UnrememberedMutableStateDetector.UnrememberedMutableState
     )
+    override val vendor = Vendor(
+        vendorName = "Jetpack Compose",
+        identifier = "androidx.compose.runtime",
+        feedbackUrl = "https://issuetracker.google.com/issues/new?component=612128"
+    )
 }
diff --git a/compose/runtime/runtime-lint/src/test/java/androidx/compose/runtime/lint/ApiLintVersionsTest.kt b/compose/runtime/runtime-lint/src/test/java/androidx/compose/runtime/lint/ApiLintVersionsTest.kt
index e95d95d..ad0785c 100644
--- a/compose/runtime/runtime-lint/src/test/java/androidx/compose/runtime/lint/ApiLintVersionsTest.kt
+++ b/compose/runtime/runtime-lint/src/test/java/androidx/compose/runtime/lint/ApiLintVersionsTest.kt
@@ -33,10 +33,7 @@
         LintClient.clientName = LintClient.CLIENT_UNIT_TESTS
 
         val registry = RuntimeIssueRegistry()
-        // we hardcode version registry.api to the version that is used to run tests
         assertThat(registry.api).isEqualTo(CURRENT_API)
-        // Intentionally fails in IDE, because we use different API version in
-        // studio and command line
-        assertThat(registry.minApi).isEqualTo(3)
+        assertThat(registry.minApi).isEqualTo(10)
     }
 }
diff --git a/compose/runtime/runtime-saveable-lint/build.gradle b/compose/runtime/runtime-saveable-lint/build.gradle
index 54d62df..5265bbf 100644
--- a/compose/runtime/runtime-saveable-lint/build.gradle
+++ b/compose/runtime/runtime-saveable-lint/build.gradle
@@ -27,7 +27,7 @@
 BundleInsideHelper.forInsideLintJar(project)
 
 dependencies {
-    compileOnly(libs.androidLintMinApi)
+    compileOnly(libs.androidLintMinComposeApi)
     compileOnly(libs.kotlinStdlib)
     bundleInside(project(":compose:lint:common"))
 
diff --git a/compose/runtime/runtime-saveable-lint/src/main/java/androidx/compose/runtime/saveable/lint/RuntimeSaveableIssueRegistry.kt b/compose/runtime/runtime-saveable-lint/src/main/java/androidx/compose/runtime/saveable/lint/RuntimeSaveableIssueRegistry.kt
index c3f8f55..ada42a3 100644
--- a/compose/runtime/runtime-saveable-lint/src/main/java/androidx/compose/runtime/saveable/lint/RuntimeSaveableIssueRegistry.kt
+++ b/compose/runtime/runtime-saveable-lint/src/main/java/androidx/compose/runtime/saveable/lint/RuntimeSaveableIssueRegistry.kt
@@ -19,6 +19,7 @@
 package androidx.compose.runtime.saveable.lint
 
 import com.android.tools.lint.client.api.IssueRegistry
+import com.android.tools.lint.client.api.Vendor
 import com.android.tools.lint.detector.api.CURRENT_API
 
 /**
@@ -31,4 +32,9 @@
     override val issues get() = listOf(
         RememberSaveableDetector.RememberSaveableSaverParameter
     )
+    override val vendor = Vendor(
+        vendorName = "Jetpack Compose",
+        identifier = "androidx.compose.runtime.saveable",
+        feedbackUrl = "https://issuetracker.google.com/issues/new?component=612128"
+    )
 }
diff --git a/compose/runtime/runtime-saveable-lint/src/test/java/androidx/compose/runtime/saveable/lint/ApiLintVersionsTest.kt b/compose/runtime/runtime-saveable-lint/src/test/java/androidx/compose/runtime/saveable/lint/ApiLintVersionsTest.kt
index 9bc4684..1e21d66 100644
--- a/compose/runtime/runtime-saveable-lint/src/test/java/androidx/compose/runtime/saveable/lint/ApiLintVersionsTest.kt
+++ b/compose/runtime/runtime-saveable-lint/src/test/java/androidx/compose/runtime/saveable/lint/ApiLintVersionsTest.kt
@@ -33,10 +33,7 @@
         LintClient.clientName = LintClient.CLIENT_UNIT_TESTS
 
         val registry = RuntimeSaveableIssueRegistry()
-        // we hardcode version registry.api to the version that is used to run tests
         assertThat(registry.api).isEqualTo(CURRENT_API)
-        // Intentionally fails in IDE, because we use different API version in
-        // studio and command line
-        assertThat(registry.minApi).isEqualTo(3)
+        assertThat(registry.minApi).isEqualTo(10)
     }
 }
diff --git a/compose/ui/ui-graphics-lint/build.gradle b/compose/ui/ui-graphics-lint/build.gradle
index 60bcdd1..7cb01fe 100644
--- a/compose/ui/ui-graphics-lint/build.gradle
+++ b/compose/ui/ui-graphics-lint/build.gradle
@@ -26,7 +26,7 @@
 BundleInsideHelper.forInsideLintJar(project)
 
 dependencies {
-    compileOnly(libs.androidLintMinApi)
+    compileOnly libs.androidLintMinComposeApi
     compileOnly(libs.kotlinStdlib)
 
     bundleInside(project(":compose:lint:common"))
diff --git a/compose/ui/ui-graphics-lint/src/main/java/androidx/compose/ui/graphics/lint/ColorDetector.kt b/compose/ui/ui-graphics-lint/src/main/java/androidx/compose/ui/graphics/lint/ColorDetector.kt
index 2e83a58..16a8216 100644
--- a/compose/ui/ui-graphics-lint/src/main/java/androidx/compose/ui/graphics/lint/ColorDetector.kt
+++ b/compose/ui/ui-graphics-lint/src/main/java/androidx/compose/ui/graphics/lint/ColorDetector.kt
@@ -50,7 +50,7 @@
                 val argument = node.valueArguments.first()
                 // Ignore non-literal expressions
                 if (argument !is KotlinULiteralExpression) return
-                val argumentText = argument.sourcePsi?.text ?: return
+                val argumentText = argument.sourcePsi.text ?: return
                 val hexPrefix = "0x"
                 val hexIndex = argumentText.indexOf(hexPrefix, ignoreCase = true)
                 // Ignore if this isn't a hex value
diff --git a/compose/ui/ui-graphics-lint/src/main/java/androidx/compose/ui/graphics/lint/UiGraphicsIssueRegistry.kt b/compose/ui/ui-graphics-lint/src/main/java/androidx/compose/ui/graphics/lint/UiGraphicsIssueRegistry.kt
index 4d7355d..6b90727 100644
--- a/compose/ui/ui-graphics-lint/src/main/java/androidx/compose/ui/graphics/lint/UiGraphicsIssueRegistry.kt
+++ b/compose/ui/ui-graphics-lint/src/main/java/androidx/compose/ui/graphics/lint/UiGraphicsIssueRegistry.kt
@@ -17,6 +17,7 @@
 package androidx.compose.ui.graphics.lint
 
 import com.android.tools.lint.client.api.IssueRegistry
+import com.android.tools.lint.client.api.Vendor
 import com.android.tools.lint.detector.api.CURRENT_API
 
 /**
@@ -30,4 +31,9 @@
         ColorDetector.MissingColorAlphaChannel,
         ColorDetector.InvalidColorHexValue
     )
+    override val vendor = Vendor(
+        vendorName = "Jetpack Compose",
+        identifier = "androidx.compose.ui.graphics",
+        feedbackUrl = "https://issuetracker.google.com/issues/new?component=612128"
+    )
 }
diff --git a/compose/ui/ui-graphics-lint/src/test/java/androidx/compose/ui/graphics/lint/ApiLintVersionsTest.kt b/compose/ui/ui-graphics-lint/src/test/java/androidx/compose/ui/graphics/lint/ApiLintVersionsTest.kt
index ebfed874..e3f2599 100644
--- a/compose/ui/ui-graphics-lint/src/test/java/androidx/compose/ui/graphics/lint/ApiLintVersionsTest.kt
+++ b/compose/ui/ui-graphics-lint/src/test/java/androidx/compose/ui/graphics/lint/ApiLintVersionsTest.kt
@@ -33,10 +33,7 @@
         LintClient.clientName = LintClient.CLIENT_UNIT_TESTS
 
         val registry = UiGraphicsIssueRegistry()
-        // we hardcode version registry.api to the version that is used to run tests
         assertThat(registry.api).isEqualTo(CURRENT_API)
-        // Intentionally fails in IDE, because we use different API version in
-        // studio and command line
-        assertThat(registry.minApi).isEqualTo(3)
+        assertThat(registry.minApi).isEqualTo(10)
     }
 }
diff --git a/compose/ui/ui-lint/build.gradle b/compose/ui/ui-lint/build.gradle
index 915153a..1d86290 100644
--- a/compose/ui/ui-lint/build.gradle
+++ b/compose/ui/ui-lint/build.gradle
@@ -26,7 +26,7 @@
 BundleInsideHelper.forInsideLintJar(project)
 
 dependencies {
-    compileOnly(libs.androidLintMinApi)
+    compileOnly(libs.androidLintMinComposeApi)
     compileOnly(libs.kotlinStdlib)
 
     bundleInside(project(":compose:lint:common"))
diff --git a/compose/ui/ui-lint/src/main/java/androidx/compose/ui/lint/UiIssueRegistry.kt b/compose/ui/ui-lint/src/main/java/androidx/compose/ui/lint/UiIssueRegistry.kt
index 7988e6a..e812090 100644
--- a/compose/ui/ui-lint/src/main/java/androidx/compose/ui/lint/UiIssueRegistry.kt
+++ b/compose/ui/ui-lint/src/main/java/androidx/compose/ui/lint/UiIssueRegistry.kt
@@ -17,6 +17,7 @@
 package androidx.compose.ui.lint
 
 import com.android.tools.lint.client.api.IssueRegistry
+import com.android.tools.lint.client.api.Vendor
 import com.android.tools.lint.detector.api.CURRENT_API
 
 /**
@@ -33,4 +34,9 @@
         ModifierDeclarationDetector.ModifierFactoryUnreferencedReceiver,
         ModifierParameterDetector.ModifierParameter
     )
+    override val vendor = Vendor(
+        vendorName = "Jetpack Compose",
+        identifier = "androidx.compose.ui",
+        feedbackUrl = "https://issuetracker.google.com/issues/new?component=612128"
+    )
 }
diff --git a/compose/ui/ui-lint/src/test/java/androidx/compose/ui/lint/ApiLintVersionsTest.kt b/compose/ui/ui-lint/src/test/java/androidx/compose/ui/lint/ApiLintVersionsTest.kt
index 6a0c7d3..1c0b6e9 100644
--- a/compose/ui/ui-lint/src/test/java/androidx/compose/ui/lint/ApiLintVersionsTest.kt
+++ b/compose/ui/ui-lint/src/test/java/androidx/compose/ui/lint/ApiLintVersionsTest.kt
@@ -33,10 +33,7 @@
         LintClient.clientName = LintClient.CLIENT_UNIT_TESTS
 
         val registry = UiIssueRegistry()
-        // we hardcode version registry.api to the version that is used to run tests
         assertThat(registry.api).isEqualTo(CURRENT_API)
-        // Intentionally fails in IDE, because we use different API version in
-        // studio and command line
-        assertThat(registry.minApi).isEqualTo(3)
+        assertThat(registry.minApi).isEqualTo(10)
     }
 }
diff --git a/docs/lint_guide.md b/docs/lint_guide.md
index c1b56c4..6ce7154 100644
--- a/docs/lint_guide.md
+++ b/docs/lint_guide.md
@@ -54,13 +54,7 @@
 }
 
 dependencies {
-    // compileOnly because lint runtime is provided when checks are run
-    // Use latest lint for running from IDE to make sure checks always run
-    if (rootProject.hasProperty("android.injected.invoked.from.ide")) {
-        compileOnly LINT_API_LATEST
-    } else {
-        compileOnly LINT_API_MIN
-    }
+    compileOnly LINT_API_MIN
     compileOnly KOTLIN_STDLIB
 
     testImplementation KOTLIN_STDLIB
diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml
index d177eb0..f0975f0 100644
--- a/gradle/libs.versions.toml
+++ b/gradle/libs.versions.toml
@@ -12,6 +12,10 @@
 # -----------------------------------------------------------------------------
 
 androidLintMin = "26.3.0"
+# Compose 1.0 stable is aligned with AGP 7.0 / Lint 30.0.0 stable - so we use a higher min to
+# compile against as we don't need to maintain compatibility with older versions of Lint.
+# TODO: update to 30.0.0 stable when it is released
+androidLintMinCompose = "30.0.0-alpha15"
 androidxTest = "1.4.0-beta01"
 androidxTestExt = "1.1.3-beta01"
 autoService = "1.0-rc6"
@@ -36,6 +40,7 @@
 androidLintMin = { module = "com.android.tools.lint:lint", version.ref = "androidLintMin" }
 androidLintApi = { module = "com.android.tools.lint:lint-api", version.ref = "androidLint" }
 androidLintMinApi = { module = "com.android.tools.lint:lint-api", version.ref = "androidLintMin" }
+androidLintMinComposeApi = { module = "com.android.tools.lint:lint-api", version.ref = "androidLintMinCompose" }
 androidLintChecks = { module = "com.android.tools.lint:lint-checks", version.ref = "androidLint" }
 androidLintTests = { module = "com.android.tools.lint:lint-tests", version.ref = "androidLint" }
 autoCommon = { module = "com.google.auto:auto-common", version = "0.11" }