Merge pull request #203 from vector-im/feature/bma/cleanModules
Clean module dependencies
This commit is contained in:
@@ -18,7 +18,7 @@
|
||||
|
||||
import com.android.build.api.variant.FilterConfiguration.FilterType.ABI
|
||||
import extension.allFeaturesImpl
|
||||
import extension.allLibraries
|
||||
import extension.allLibrariesImpl
|
||||
|
||||
// TODO: Remove once https://youtrack.jetbrains.com/issue/KTIJ-19369 is fixed
|
||||
@Suppress("DSL_SCOPE_VIOLATION")
|
||||
@@ -200,11 +200,8 @@ knit {
|
||||
}
|
||||
|
||||
dependencies {
|
||||
allLibraries()
|
||||
allLibrariesImpl()
|
||||
allFeaturesImpl()
|
||||
implementation(projects.libraries.matrix.impl)
|
||||
implementation(projects.libraries.dateformatter.impl)
|
||||
implementation(projects.libraries.sessionStorage.impl)
|
||||
implementation(projects.tests.uitests)
|
||||
implementation(projects.anvilannotations)
|
||||
implementation(projects.appnav)
|
||||
|
||||
@@ -181,10 +181,46 @@ A few details about some modules:
|
||||
Most of the time a feature module should not know anything about other feature module.
|
||||
The navigation glue is currently done in the `app` module.
|
||||
|
||||
Here is the current module dependency graph:
|
||||
Here is the current simplified module dependency graph:
|
||||
|
||||
<!-- To update this graph, run `./tools/docs/generateModuleGraph.sh` (one day the CI will do it hopefully). -->
|
||||
<img src=./images/module_graph.png width=800 />
|
||||
<!-- Note: a full graph can be generated using `./tools/docs/generateModuleGraph.sh`. -->
|
||||
<!-- Note: doc can be found at https://mermaid.js.org/syntax/flowchart.html#graph -->
|
||||
```mermaid
|
||||
flowchart TD
|
||||
subgraph Application
|
||||
app([:app])--implementation-->appnav([:appnav])
|
||||
end
|
||||
subgraph Features
|
||||
featureapi([:features:*:api])
|
||||
featureimpl([:features:*:impl])
|
||||
end
|
||||
subgraph Libraries
|
||||
subgraph Matrix
|
||||
matrixapi([:matrix:api])
|
||||
matriximpl([:matrix:impl])
|
||||
end
|
||||
libraryarch([:libraries:architecture])
|
||||
libraryapi([:libraries:*:api])
|
||||
libraryimpl([:libraries:*:impl])
|
||||
end
|
||||
subgraph Matrix RustSdk
|
||||
RustSdk([Rust Sdk])
|
||||
end
|
||||
|
||||
app--implementation-->featureimpl
|
||||
app--implementation-->libraryimpl
|
||||
appnav--implementation-->featureapi
|
||||
appnav--implementation-->libraryarch
|
||||
featureimpl--api-->featureapi
|
||||
featureimpl--implementation-->matrixapi
|
||||
featureimpl--implementation-->libraryapi
|
||||
featureimpl--implementation-->libraryarch
|
||||
matriximpl--implementation-->matrixapi
|
||||
matrixapi--api-->RustSdk
|
||||
matriximpl--api-->RustSdk
|
||||
featureapi--implementation-->libraryarch
|
||||
libraryimpl--api-->libraryapi
|
||||
```
|
||||
|
||||
### Application
|
||||
|
||||
|
||||
@@ -34,7 +34,7 @@ dependencies {
|
||||
// api(projects.libraries.rustsdk)
|
||||
implementation(libs.matrix.sdk)
|
||||
implementation(projects.libraries.di)
|
||||
implementation(projects.libraries.matrix.api)
|
||||
api(projects.libraries.matrix.api)
|
||||
implementation(libs.dagger)
|
||||
implementation(projects.libraries.core)
|
||||
implementation("net.java.dev.jna:jna:5.13.0@aar")
|
||||
|
||||
@@ -32,7 +32,7 @@ dependencies {
|
||||
implementation(libs.dagger)
|
||||
implementation(projects.libraries.core)
|
||||
implementation(projects.libraries.encryptedDb)
|
||||
implementation(projects.libraries.sessionStorage.api)
|
||||
api(projects.libraries.sessionStorage.api)
|
||||
implementation(libs.sqldelight.driver.android)
|
||||
implementation(libs.sqlcipher)
|
||||
implementation(libs.sqlite)
|
||||
|
||||
@@ -51,14 +51,16 @@ fun DependencyHandlerScope.composeDependencies(libs: LibrariesForLibs) {
|
||||
implementation("org.jetbrains.kotlinx:kotlinx-collections-immutable:0.3.5")
|
||||
}
|
||||
|
||||
fun DependencyHandlerScope.allLibraries() {
|
||||
fun DependencyHandlerScope.allLibrariesImpl() {
|
||||
implementation(project(":libraries:designsystem"))
|
||||
implementation(project(":libraries:matrix:api"))
|
||||
implementation(project(":libraries:matrix:impl"))
|
||||
implementation(project(":libraries:matrixui"))
|
||||
implementation(project(":libraries:core"))
|
||||
implementation(project(":libraries:architecture"))
|
||||
implementation(project(":libraries:dateformatter:api"))
|
||||
implementation(project(":libraries:dateformatter:impl"))
|
||||
implementation(project(":libraries:di"))
|
||||
implementation(project(":libraries:session-storage:impl"))
|
||||
|
||||
}
|
||||
|
||||
fun DependencyHandlerScope.allFeaturesApi() {
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
*/
|
||||
|
||||
import extension.allFeaturesImpl
|
||||
import extension.allLibraries
|
||||
import extension.allLibrariesImpl
|
||||
|
||||
// TODO: Remove once https://youtrack.jetbrains.com/issue/KTIJ-19369 is fixed
|
||||
@Suppress("DSL_SCOPE_VIOLATION")
|
||||
@@ -39,6 +39,6 @@ dependencies {
|
||||
implementation(libs.showkase)
|
||||
ksp(libs.showkase.processor)
|
||||
|
||||
allLibraries()
|
||||
allLibrariesImpl()
|
||||
allFeaturesImpl()
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user