mobile-wallet/build-logic
Sk Niyaj Ali e4dea58bde
chore: Update dependencies and remove READ_CONTACTS permission
This commit updates various dependencies to their latest versions, including Compose, Koin, Ktor, and Firebase. It also removes the `READ_CONTACTS` permission from the Android manifest, as it is no longer needed.

Additionally, proguard configurations are updated to support the updated Ktor library and Ktorfit library.
2024-12-24 13:51:06 +05:30
..
convention chore: Update dependencies and remove READ_CONTACTS permission 2024-12-24 13:51:06 +05:30
gradle.properties feat: add build-logic and refactor plugin and add datastore module 2024-01-28 08:47:47 -05:00
README.md fix: typo 2024-01-28 08:47:47 -05:00
settings.gradle.kts Configured Git Hooks & Migrated to Convention Plugin (#1759) 2024-09-04 12:37:34 -04:00

Convention Plugins

The build-logic folder defines project-specific convention plugins, used to keep a single source of truth for common module configurations.

This approach is heavily based on https://developer.squareup.com/blog/herding-elephants/ and https://github.com/jjohannes/idiomatic-gradle.

By setting up convention plugins in build-logic, we can avoid duplicated build script setup, messy subproject configurations, without the pitfalls of the buildSrc directory.

build-logic is an included build, as configured in the root settings.gradle.kts.

Inside build-logic is a convention module, which defines a set of plugins that all normal modules can use to configure themselves.

build-logic also includes a set of Kotlin files used to share logic between plugins themselves, which is most useful for configuring Android components (libraries vs applications) with shared code.

These plugins are additive and composable, and try to only accomplish a single responsibility. Modules can then pick and choose the configurations they need. If there is one-off logic for a module without shared code, it's preferable to define that directly in the module's build.gradle, as opposed to creating a convention plugin with module-specific setup.

Current list of convention plugins: