autonomousapps / autonomousapps/dependency-analysis-gradle-plugin

IncorrectConfiguration failure is transient

Open
#1,276 4 comments 0 reactions 0 assignees View on GitHub
bug more information needed toolchain:android
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.