Disable non-sample lint checks for non-sample projects in sample lint tasks
Only removes one lint baseline to minimize merge conflicts since we keep
updating baselines globally. Re-enables NewApi for sample project lint.
Fixes: 206852370
Test: ./gradlew :activity:activity-compose:activity-compose-samples:lintDebug
Change-Id: I1a090588029dee9b4641081e06cb3baaaa162b14
diff --git a/buildSrc/lint.xml b/buildSrc/lint.xml
index 12cad2a..5ec6632 100644
--- a/buildSrc/lint.xml
+++ b/buildSrc/lint.xml
@@ -1,5 +1,24 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!-- Please copy any lint rules added here to all other modules local lint.xml files -->
+<!--
+ Copyright 2021 The Android Open Source Project
+
+ 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.
+ -->
+
+<!--
+ Please copy any lint rules added here to all other modules local lint.xml
+ files and lint_samples.xml (if applicable).
+ -->
<lint>
<issue id="LintBaseline" severity="ignore">
<ignore regexp=".* filtered out because .* listed in the baseline file.*"/>
diff --git a/buildSrc/lint_samples.xml b/buildSrc/lint_samples.xml
new file mode 100644
index 0000000..8ec48c4
--- /dev/null
+++ b/buildSrc/lint_samples.xml
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Copyright 2021 The Android Open Source Project
+
+ 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.
+ -->
+
+<!--
+ This configuration is applied to LibraryType.SAMPLES projects which must run
+ specific lint checks on dependencies, but don't want the full suite running.
+ -->
+<lint>
+ <issue id="LintBaseline" severity="ignore">
+ <ignore regexp=".* filtered out because .* listed in the baseline file.*"/>
+ </issue>
+ <!-- Disable all lint checks in non-sample projects. -->
+ <issue id="all">
+ <ignore regexp="^((?!samples).)*$" />
+ </issue>
+ <!-- Re-enable sampled lint checks for all projects. -->
+ <issue id="InvalidSamplesLocation" severity="fatal" />
+ <issue id="MultipleSampledFunctions" severity="fatal" />
+ <issue id="UnresolvedSampleLink" severity="fatal" />
+ <issue id="ObsoleteSampledAnnotation" severity="fatal" />
+</lint>
diff --git a/buildSrc/private/src/main/kotlin/androidx/build/LintConfiguration.kt b/buildSrc/private/src/main/kotlin/androidx/build/LintConfiguration.kt
index 97cc2cb..aa52ac8 100644
--- a/buildSrc/private/src/main/kotlin/androidx/build/LintConfiguration.kt
+++ b/buildSrc/private/src/main/kotlin/androidx/build/LintConfiguration.kt
@@ -303,13 +303,6 @@
// This is needed because SampledAnnotationDetector uses partial analysis, and
// hence requires dependencies to be analyzed.
checkDependencies = true
- // TODO: baselines from dependencies aren't used when we run lint with
- // isCheckDependencies = true. NewApi was recently enabled for tests, and so
- // there are a large amount of baselined issues that would be reported here
- // again, and we don't want to add them to the baseline for the sample modules.
- // Instead just temporarily disable this lint check until the underlying issues
- // are fixed.
- disable.add("NewApi")
}
// Only run certain checks where API tracking is important.
@@ -319,9 +312,14 @@
// If the project has not overridden the lint config, set the default one.
if (lintConfig == null) {
+ val lintXmlPath = if (extension.type == LibraryType.SAMPLES) {
+ "buildSrc/lint_samples.xml"
+ } else {
+ "buildSrc/lint.xml"
+ }
// suppress warnings more specifically than issue-wide severity (regexes)
// Currently suppresses warnings from baseline files working as intended
- lintConfig = File(project.getSupportRootFolder(), "buildSrc/lint.xml")
+ lintConfig = File(project.getSupportRootFolder(), lintXmlPath)
}
// Ideally, teams aren't able to add new violations to a baseline file; they should only