Open jsoberg opened 5 months ago
Hello @jsoberg,
Sorry for the late response. This would be great if you are still interested in working on this! We already have a shared module, but from what I understand your proposal for 2 would be something different from that and just regarding code sharing for the build scripts, right?
Hey @phillipthelen! That's right, the shared build-logic
module would just be to share build configurations between modules (e.g. multiple modules setup Android similarly, and this could be a plugin in that build-logic
). Version catalogs are just moving external dependencies to a central location (gradle/libs.versions.toml
) that can be accessed in a typesafe/IDE-friendly way - ensures you're using similar versions in each module, and makes it easier to track updates
Hey all! I have a few improvement suggestions that I wouldn't mind opening some PRs for surrounding the Gradle build logic setup for the project:
Move to using version catalogs (Gradle docs and Android docs) for dependencies. This provides a central file for defining dependencies/versions, making them accessible in a type-safe manner (through
libs.X
).Create a new module for storing shared build logic (example). I noticed some duplicate code in build files (one example being adding build config fields in wearOS and Habitica) which would be a good first step into moving to a shared function that any build script in the project could use. In the future, this could be used to create convention plugins and other shared build logic/setup between modules as desired.
Let me know if you think these additions would be worthwhile for the project and I'll start working on PRs for them.