chore(build-logic): add missing dependencies to version catalog & missing build logic files - #2572
Conversation
|
Important Review skippedToo many files! This PR contains 182 files, which is 32 over the limit of 150. You can disable this status message by setting the
✨ Finishing touches🧪 Generate unit tests (beta)
Tip 🧪 Unit Test Generation v2 is now available!We have significantly improved our unit test generation capabilities. To enable: Add this to your reviews:
finishing_touches:
unit_tests:
enabled: trueTry it out by using the Have feedback? Share your thoughts on our Discord thread! Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
0f2fe17 to
b70a147
Compare
- Add missing dependencies to version catalogue - Finalize build logic configuration
b70a147 to
6c41344
Compare
biplab1
left a comment
There was a problem hiding this comment.
Looks good to me. This can be merged.
|
@amanna13 Have you checked the build on your PR branch? Is the app building fine? Please upload a screen recording in the PR description. |
@biplab1 Yes it's building fine, attaching a screen recording soon. The ony issue was, there was a build failure for the demoDebug variant of the client app. You can see that in this PR I have commented out the The actual issue is in |
@amanna13 I think we can handle this issue in a separate ticket. Please create a ticket to update |
|
@biplab1 So it's commented out for now. so should i request for a merge ?! |
No, never do that instead copy the google services file from another project(https://github.com/openMF/kmp-project-template/blob/dev/cmp-android/google-services.json) and add these client info |
|
And there are some recent changes in the template project, take a look into that and do the required changes accordingly |
|
Hey @niyajali, I tried with what you suggested with the google-services and it did work.
Let's keep it what we are currently doing for now, because of this PR the core-base haven't merged yet and a lot of other PR's are waiting for that. |
|
@amanna13 I am curious - since you might have built using both the settings: Does the compile and build times for debug variant build gets affected? Can you verify this:
|
@biplab1 I verified the Debug build performance by running in the same environment. With |
@amanna13 I am assuming you did a clean build before testing each of the settings. Please keep the Can you also address this as pointed out by
For dependencies, I think we can update them to a version where the changes in the project are minimal and manageable at the current moment. |
Yes I did clean build. Okay sure I will disable that.
Yeah, that will work, it will take me one more day to do so. I was saying previously to merge this as it is, keeping in mind the priority of this task. |
|
@amanna13 If you face any problems, feel free to start a Slack thread tagging |
|
@biplab1 Done with all the updations. please have a look. |
biplab1
left a comment
There was a problem hiding this comment.
Looks good to me. This can be merged.
…ript) — no new files Per review feedback: the right place for this fix is the sync-dirs flow itself, not a separate workflow that runs after-the-fact. Removed the dedicated workflow + companion script from the previous commit; integrated the logic inline into both .github/workflows/sync-dirs.yaml and sync-dirs.sh. What changed vs the previous commit on this branch (ceb1a79): - DELETED .github/workflows/verify-libs-resolved.yml (-52 lines) - DELETED scripts/verify_libs_resolved.sh (-180 lines) + .github/workflows/sync-dirs.yaml — new step "Heal libs.versions.toml" between "Sync directories and files" and "Clean up temporary branch". Runs the same detection logic, but instead of just failing the gate, it AUTO-PULLS the missing alias entries (and any version.ref keys they depend on) directly from the upstream catalog accessible via $TEMP_BRANCH. The healed catalog is then committed as part of the same sync PR — no separate fix-up PR ever needed. + sync-dirs.sh — new heal_libs_versions_toml() function invoked between the sync loop and temp-branch cleanup. Same heal semantics for local CLI use. The downstream `git add` is widened to include gradle/libs.versions.toml when the heal touched it. Behavior: 1. Sync-dirs pulls build-logic from upstream (existing behavior, unchanged) 2. Heal step inspects every libs.<X> reference in the freshly-synced build-logic 3. For each ref whose alias is missing from consumer's gradle/libs.versions.toml, pull the matching line from upstream (TEMP_BRANCH) and insert it into the appropriate [versions] / [libraries] / [plugins] section 4. If an alias version.refs an undeclared version key, that version key is also pulled and inserted into [versions] BEFORE the alias 5. Healed entries land in the same sync PR — discovery + remediation in one atomic workflow run, instead of a "fails-now-fix-tomorrow" split Verified against field-officer's pre-fix state (catalog reverted to commit 408d9cba — the broken state from ~24h ago, before the manual #2691 catch-up): - Pre-heal: 5 missing aliases — kover-gradlePlugin, kover-convention, androidx-room-gradle-plugin, kmp-product-flavors-plugin, spotless-gradle - Post-heal: 7 entries inserted (5 aliases + 2 referenced versions kmpProductFlavors, kover). All build-logic libs.<X> refs resolve. Eliminates the failure mode that's been hand-fixed at least 3 times in 4 months on the field-officer fork (openMF/mifos-x-field-officer-app#2572, #2604, #2691).

Fixes - Jira-#598
chore(build-logic): complete version catalogue and build logic setup
Screen_recording_20260129_195045.mp4
Add missing dependencies to version catalogue
Finalize build logic configuration
Run the static analysis check
./gradlew checkorci-prepush.shto make sure you didn't break anythingIf you have multiple commits please combine them into one commit by squashing them.