From ad6a2e95958c0cd6d3ff69d8bfb7e768fd6ba0e5 Mon Sep 17 00:00:00 2001 From: Benoit Marty Date: Thu, 16 Mar 2023 10:09:18 +0100 Subject: [PATCH 1/2] allLibraries renamed to allLibrariesImpl and only reference implementation of the libraries. --- app/build.gradle.kts | 7 ++----- libraries/matrix/impl/build.gradle.kts | 2 +- libraries/session-storage/impl/build.gradle.kts | 2 +- .../src/main/kotlin/extension/DependencyHandleScope.kt | 8 +++++--- tests/uitests/build.gradle.kts | 4 ++-- 5 files changed, 11 insertions(+), 12 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index e1bddd561b..595e470dd6 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -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) diff --git a/libraries/matrix/impl/build.gradle.kts b/libraries/matrix/impl/build.gradle.kts index 4c0e4c6402..0600226ed9 100644 --- a/libraries/matrix/impl/build.gradle.kts +++ b/libraries/matrix/impl/build.gradle.kts @@ -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") diff --git a/libraries/session-storage/impl/build.gradle.kts b/libraries/session-storage/impl/build.gradle.kts index b1952b6cc5..08dc581018 100644 --- a/libraries/session-storage/impl/build.gradle.kts +++ b/libraries/session-storage/impl/build.gradle.kts @@ -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) diff --git a/plugins/src/main/kotlin/extension/DependencyHandleScope.kt b/plugins/src/main/kotlin/extension/DependencyHandleScope.kt index 3d166f5926..9800914a26 100644 --- a/plugins/src/main/kotlin/extension/DependencyHandleScope.kt +++ b/plugins/src/main/kotlin/extension/DependencyHandleScope.kt @@ -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() { diff --git a/tests/uitests/build.gradle.kts b/tests/uitests/build.gradle.kts index 86431f2c1c..b7abf23940 100644 --- a/tests/uitests/build.gradle.kts +++ b/tests/uitests/build.gradle.kts @@ -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() } From f97a213b09191689e47123ae66512aeb3665f9f5 Mon Sep 17 00:00:00 2001 From: Benoit Marty Date: Thu, 16 Mar 2023 09:55:41 +0100 Subject: [PATCH 2/2] Update the graph in the doc. --- docs/_developer_onboarding.md | 42 ++++++++++++++++++++++++++++++++--- 1 file changed, 39 insertions(+), 3 deletions(-) diff --git a/docs/_developer_onboarding.md b/docs/_developer_onboarding.md index 6c7abde571..a526e0de33 100644 --- a/docs/_developer_onboarding.md +++ b/docs/_developer_onboarding.md @@ -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: - - + + +```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