Merge pull request #203 from vector-im/feature/bma/cleanModules
Clean module dependencies
This commit is contained in:
commit
de687251be
6 changed files with 50 additions and 15 deletions
|
|
@ -18,7 +18,7 @@
|
||||||
|
|
||||||
import com.android.build.api.variant.FilterConfiguration.FilterType.ABI
|
import com.android.build.api.variant.FilterConfiguration.FilterType.ABI
|
||||||
import extension.allFeaturesImpl
|
import extension.allFeaturesImpl
|
||||||
import extension.allLibraries
|
import extension.allLibrariesImpl
|
||||||
|
|
||||||
// TODO: Remove once https://youtrack.jetbrains.com/issue/KTIJ-19369 is fixed
|
// TODO: Remove once https://youtrack.jetbrains.com/issue/KTIJ-19369 is fixed
|
||||||
@Suppress("DSL_SCOPE_VIOLATION")
|
@Suppress("DSL_SCOPE_VIOLATION")
|
||||||
|
|
@ -200,11 +200,8 @@ knit {
|
||||||
}
|
}
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
allLibraries()
|
allLibrariesImpl()
|
||||||
allFeaturesImpl()
|
allFeaturesImpl()
|
||||||
implementation(projects.libraries.matrix.impl)
|
|
||||||
implementation(projects.libraries.dateformatter.impl)
|
|
||||||
implementation(projects.libraries.sessionStorage.impl)
|
|
||||||
implementation(projects.tests.uitests)
|
implementation(projects.tests.uitests)
|
||||||
implementation(projects.anvilannotations)
|
implementation(projects.anvilannotations)
|
||||||
implementation(projects.appnav)
|
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.
|
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.
|
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). -->
|
<!-- Note: a full graph can be generated using `./tools/docs/generateModuleGraph.sh`. -->
|
||||||
<img src=./images/module_graph.png width=800 />
|
<!-- 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
|
### Application
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -34,7 +34,7 @@ dependencies {
|
||||||
// api(projects.libraries.rustsdk)
|
// api(projects.libraries.rustsdk)
|
||||||
implementation(libs.matrix.sdk)
|
implementation(libs.matrix.sdk)
|
||||||
implementation(projects.libraries.di)
|
implementation(projects.libraries.di)
|
||||||
implementation(projects.libraries.matrix.api)
|
api(projects.libraries.matrix.api)
|
||||||
implementation(libs.dagger)
|
implementation(libs.dagger)
|
||||||
implementation(projects.libraries.core)
|
implementation(projects.libraries.core)
|
||||||
implementation("net.java.dev.jna:jna:5.13.0@aar")
|
implementation("net.java.dev.jna:jna:5.13.0@aar")
|
||||||
|
|
|
||||||
|
|
@ -32,7 +32,7 @@ dependencies {
|
||||||
implementation(libs.dagger)
|
implementation(libs.dagger)
|
||||||
implementation(projects.libraries.core)
|
implementation(projects.libraries.core)
|
||||||
implementation(projects.libraries.encryptedDb)
|
implementation(projects.libraries.encryptedDb)
|
||||||
implementation(projects.libraries.sessionStorage.api)
|
api(projects.libraries.sessionStorage.api)
|
||||||
implementation(libs.sqldelight.driver.android)
|
implementation(libs.sqldelight.driver.android)
|
||||||
implementation(libs.sqlcipher)
|
implementation(libs.sqlcipher)
|
||||||
implementation(libs.sqlite)
|
implementation(libs.sqlite)
|
||||||
|
|
|
||||||
|
|
@ -51,14 +51,16 @@ fun DependencyHandlerScope.composeDependencies(libs: LibrariesForLibs) {
|
||||||
implementation("org.jetbrains.kotlinx:kotlinx-collections-immutable:0.3.5")
|
implementation("org.jetbrains.kotlinx:kotlinx-collections-immutable:0.3.5")
|
||||||
}
|
}
|
||||||
|
|
||||||
fun DependencyHandlerScope.allLibraries() {
|
fun DependencyHandlerScope.allLibrariesImpl() {
|
||||||
implementation(project(":libraries:designsystem"))
|
implementation(project(":libraries:designsystem"))
|
||||||
implementation(project(":libraries:matrix:api"))
|
implementation(project(":libraries:matrix:impl"))
|
||||||
implementation(project(":libraries:matrixui"))
|
implementation(project(":libraries:matrixui"))
|
||||||
implementation(project(":libraries:core"))
|
implementation(project(":libraries:core"))
|
||||||
implementation(project(":libraries:architecture"))
|
implementation(project(":libraries:architecture"))
|
||||||
implementation(project(":libraries:dateformatter:api"))
|
implementation(project(":libraries:dateformatter:impl"))
|
||||||
implementation(project(":libraries:di"))
|
implementation(project(":libraries:di"))
|
||||||
|
implementation(project(":libraries:session-storage:impl"))
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fun DependencyHandlerScope.allFeaturesApi() {
|
fun DependencyHandlerScope.allFeaturesApi() {
|
||||||
|
|
|
||||||
|
|
@ -15,7 +15,7 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import extension.allFeaturesImpl
|
import extension.allFeaturesImpl
|
||||||
import extension.allLibraries
|
import extension.allLibrariesImpl
|
||||||
|
|
||||||
// TODO: Remove once https://youtrack.jetbrains.com/issue/KTIJ-19369 is fixed
|
// TODO: Remove once https://youtrack.jetbrains.com/issue/KTIJ-19369 is fixed
|
||||||
@Suppress("DSL_SCOPE_VIOLATION")
|
@Suppress("DSL_SCOPE_VIOLATION")
|
||||||
|
|
@ -39,6 +39,6 @@ dependencies {
|
||||||
implementation(libs.showkase)
|
implementation(libs.showkase)
|
||||||
ksp(libs.showkase.processor)
|
ksp(libs.showkase.processor)
|
||||||
|
|
||||||
allLibraries()
|
allLibrariesImpl()
|
||||||
allFeaturesImpl()
|
allFeaturesImpl()
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue