autonomousapps / autonomousapps/dependency-analysis-gradle-plugin
IncorrectConfiguration failure is transient
- Dominant language
- Kotlin
- Stars
- 2.2k
- Forks
- 158
- Avg merge
- 16h 25m
- Merged PRs (30d)
- 46
Description
Running `./gradlew buildHealth` yields:
```
> Advice for :design:icons
These transitive dependencies should be declared directly:
api(libs.compose.ui)
implementation(libs.compose.ui.graphics)
implementation(libs.compose.ui.unit)
```
I then add them, but use `implementation` for all of them, then run `./gradlew buildHealth` again, and it passes.
Here is the output of `reason` before adding the dependencies:
```
----------------------------------------
You asked about the dependency 'androidx.compose.ui:ui:1.7.2 (libs.compose.ui)'.
You have been advised to add this dependency to 'api'. It matched a bundle rule: androidx.compose.ui:ui:1.7.2 (libs.compose.ui) was substituted for androidx.compose.ui:ui-android:1.7.2.
----------------------------------------
Shortest path from :design:icons to androidx.compose.ui:ui:1.7.2 (libs.compose.ui) for devDebugCompileClasspath:
:design:icons
\--- androidx.compose.material:material-icons-core:1.7.2
\--- androidx.compose.material:material-icons-core-android:1.7.2
\--- androidx.compose.ui:ui:1.7.2
Shortest path from :design:icons to androidx.compose.ui:ui:1.7.2 (libs.compose.ui) for devDebugRuntimeClasspath:
:design:icons
\--- androidx.compose.material:material-icons-core:1.7.2
\--- androidx.compose.material:material-icons-core-android:1.7.2
\--- androidx.compose.ui:ui:1.7.2
Shortest path from :design:icons to androidx.compose.ui:ui:1.7.2 (libs.compose.ui) for devDebugUnitTestCompileClasspath:
:design:icons
\--- androidx.compose.material:material-icons-core:1.7.2
\--- androidx.compose.material:material-icons-core-android:1.7.2
\--- androidx.compose.ui:ui:1.7.2
Shortest path from :design:icons to androidx.compose.ui:ui:1.7.2 (libs.compose.ui) for devDebugUnitTestRuntimeClasspath:
:design:icons
\--- androidx.compose.material:material-icons-core:1.7.2
\--- androidx.compose.material:material-icons-core-android:1.7.2
\--- androidx.compose.ui:ui:1.7.2
Shortest path from :design:icons to androidx.compose.ui:ui:1.7.2 (libs.compose.ui) for devDebugAndroidTestCompileClasspath:
:design:icons
\--- androidx.compose.material:material-icons-core:1.7.2
\--- androidx.compose.material:material-icons-core-android:1.7.2
\--- androidx.compose.ui:ui:1.7.2
Shortest path from :design:icons to androidx.compose.ui:ui:1.7.2 (libs.compose.ui) for devDebugAndroidTestRuntimeClasspath:
:design:icons
\--- androidx.compose.material:material-icons-core:1.7.2
\--- androidx.compose.material:material-icons-core-android:1.7.2
\--- androidx.compose.ui:ui:1.7.2
Shortest path from :design:icons to androidx.compose.ui:ui:1.7.2 (libs.compose.ui) for devReleaseCompileClasspath:
:design:icons
\--- androidx.compose.material:material-icons-core:1.7.2
\--- androidx.compose.material:material-icons-core-android:1.7.2
\--- androidx.compose.ui:ui:1.7.2
Shortest path from :design:icons to androidx.compose.ui:ui:1.7.2 (libs.compose.ui) for devReleaseRuntimeClasspath:
:design:icons
\--- androidx.compose.material:material-icons-core:1.7.2
\--- androidx.compose.material:material-icons-core-android:1.7.2
\--- androidx.compose.ui:ui:1.7.2
Shortest path from :design:icons to androidx.compose.ui:ui:1.7.2 (libs.compose.ui) for devReleaseUnitTestCompileClasspath:
:design:icons
\--- androidx.compose.material:material-icons-core:1.7.2
\--- androidx.compose.material:material-icons-core-android:1.7.2
\--- androidx.compose.ui:ui:1.7.2
Shortest path from :design:icons to androidx.compose.ui:ui:1.7.2 (libs.compose.ui) for devReleaseUnitTestRuntimeClasspath:
:design:icons
\--- androidx.compose.material:material-icons-core:1.7.2
\--- androidx.compose.material:material-icons-core-android:1.7.2
\--- androidx.compose.ui:ui:1.7.2
Source: devDebug, main
----------------------
(no usages)
Source: devRelease, main
------------------------
(no usages)
Source: devDebug, test
----------------------
(no usages)
Source: devRelease, test
------------------------
(no usages)
Source: devDebug, android_test
------------------------------
(no usages)
```
And here's the output after adding them all as `implementation`:
```
----------------------------------------
You asked about the dependency 'androidx.compose.ui:ui:1.7.2 (libs.compose.ui)'.
There is no advice regarding this dependency.
----------------------------------------
Shortest path from :design:icons to androidx.compose.ui:ui:1.7.2 (libs.compose.ui) for devDebugCompileClasspath:
:design:icons
\--- androidx.compose.ui:ui:1.7.2
Shortest path from :design:icons to androidx.compose.ui:ui:1.7.2 (libs.compose.ui) for devDebugRuntimeClasspath:
:design:icons
\--- androidx.compose.ui:ui:1.7.2
Shortest path from :design:icons to androidx.compose.ui:ui:1.7.2 (libs.compose.ui) for devDebugUnitTestCompileClasspath:
:design:icons
\--- androidx.compose.ui:ui:1.7.2
Shortest path from :design:icons to androidx.compose.ui:ui:1.7.2 (libs.compose.ui) for devDebugUnitTestRuntimeClasspath:
:design:icons
\--- androidx.compose.ui:ui:1.7.2
Shortest path from :design:icons to androidx.compose.ui:ui:1.7.2 (libs.compose.ui) for devDebugAndroidTestCompileClasspath:
:design:icons
\--- androidx.compose.ui:ui:1.7.2
Shortest path from :design:icons to androidx.compose.ui:ui:1.7.2 (libs.compose.ui) for devDebugAndroidTestRuntimeClasspath:
:design:icons
\--- androidx.compose.ui:ui:1.7.2
Shortest path from :design:icons to androidx.compose.ui:ui:1.7.2 (libs.compose.ui) for devReleaseCompileClasspath:
:design:icons
\--- androidx.compose.ui:ui:1.7.2
Shortest path from :design:icons to androidx.compose.ui:ui:1.7.2 (libs.compose.ui) for devReleaseRuntimeClasspath:
:design:icons
\--- androidx.compose.ui:ui:1.7.2
Shortest path from :design:icons to androidx.compose.ui:ui:1.7.2 (libs.compose.ui) for devReleaseUnitTestCompileClasspath:
:design:icons
\--- androidx.compose.ui:ui:1.7.2
Shortest path from :design:icons to androidx.compose.ui:ui:1.7.2 (libs.compose.ui) for devReleaseUnitTestRuntimeClasspath:
:design:icons
\--- androidx.compose.ui:ui:1.7.2
Source: devDebug, main
----------------------
(no usages)
Source: devRelease, main
------------------------
(no usages)
Source: devDebug, test
----------------------
(no usages)
Source: devRelease, test
------------------------
(no usages)
Source: devDebug, android_test
------------------------------
(no usages)
```
**Plugin version**
2.1.1
**Gradle version**
8.10.2
**JDK version**
22
**Kotlin and Kotlin Gradle Plugin (KGP) version**
2.0.20
**Android Gradle Plugin (AGP) version**
8.7.0
Contributor guide
Research direction
Reproduce the report with ./gradlew buildHealth and the reason command in the :design:icons context, using the listed Gradle, JDK, Kotlin, and AGP versions where possible. Compare the dependency advice and resolution paths before and after adding the Compose dependencies; done means the advice is no longer transient and buildHealth gives consistent results.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- android, kotlin
- Domain
- build-system, tooling
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 38/100