-
Notifications
You must be signed in to change notification settings - Fork 3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Cleanup dependencies #1315
Cleanup dependencies #1315
Conversation
This is a followup cleanup of android#1163 that was partially addressed by android#1140. - Remove unused `projects.core.testing` dependencies (or replace with direct dependencies). - Introduce `androidx.compose.ui.test` bundle. - Remove `NiaTestRunner` from the default config, forcing consumers to depend on it, even when not used.
Using latest graphviz 10.0.1
What's the purpose of introducing the bundle? |
The change was an internal version name contained in a comment.
The main purpose of this bundle is to avoid the need to specify both Stacktrace
|
Sorry @SimonMarquis, do you mind resolving the conflicts here please? |
@dturner ✅ |
@dturner this is once again ready to me reviewed/merged :) |
Thanks for doing this. It'd be good if we could generate dependency graphs other configurations as well (such as for |
@dturner what would be your thoughts about integrating this graph generation process directly into this project as an extra plugin in |
Here is a quick example of how it can look like:
%%{
init: {
'theme': 'dark'
}
}%%
graph LR
subgraph :core
:core:ui["ui"]:::android-library
:core:designsystem["designsystem"]:::android-library
:core:data["data"]:::android-library
:core:analytics["analytics"]:::android-library
:core:model["model"]:::jvm-library
:core:common["common"]:::android-library
:core:database["database"]:::android-library
:core:datastore["datastore"]:::android-library
:core:network["network"]:::android-library
:core:notifications["notifications"]:::android-library
end
subgraph :feature
:feature:topic["topic"]:::android-library-selected
end
:feature:topic -.-> :core:ui
:feature:topic -.-> :core:designsystem
:feature:topic -.-> :core:data
:core:ui ---> :core:analytics
:core:ui ---> :core:designsystem
:core:ui ---> :core:model
:core:data ---> :core:common
:core:data ---> :core:database
:core:data ---> :core:datastore
:core:data ---> :core:network
:core:data -.-> :core:analytics
:core:data -.-> :core:notifications
:core:database ---> :core:model
:core:network ---> :core:common
:core:network ---> :core:model
:core:notifications ---> :core:model
:core:notifications -.-> :core:common
classDef android-library-selected fill:#3BD482,stroke:#000,stroke-width:2px,color:#fff;
classDef android-library fill:#3BD482,stroke:#fff,stroke-width:2px,color:#fff;
classDef jvm-library fill:#8150FF,stroke:#fff,stroke-width:2px,color:#fff;
This looks better than the current Graphviz dot render: But it could still be improved to look like the mermaid version: |
My primary concern is around maintenance - if the build-config plugin approach is less maintenance than the current, somewhat hacky bash script then I'm all for it. The Mermaid graphs definitely look better, and the fact that they can be directly added to a markdown file, rather than needing a separate SVG is also a positive (more info). |
I feel like the local plugin approach will remain untouched once it is finished. I know that Gradle APIs changes a lot but, if we use recent APIs we should not really be impacted by this. And I think using external Gradle plugins would end up in the same situation if they were to ban some APIs. I'll push my work-in-progress after some cleanup in a draft PR, but I feel like we should first discuss what we want from these graphs. |
I've opened this discussions: |
This is a followup cleanup of #1163 that was partially addressed by #1140.
projects.core.testing
dependencies (or replace with direct dependencies).androidx.compose.ui.test
bundle.NiaTestRunner
from the default config, forcing consumers to depend on it, even when not used.Here is the current diff on the generated instrumented test APKs (
assembleDemoDebugAndroidTest
):