Skip to content

Conversation

@amanna13
Copy link
Contributor

@amanna13 amanna13 commented Jan 12, 2026

Fixes - Jira-#598

chore(build-logic): complete version catalogue and build logic setup

buid.mp4
image
  • Add missing dependencies to version catalogue

  • Finalize build logic configuration

  • Run the static analysis check ./gradlew check or ci-prepush.sh to make sure you didn't break anything

  • If you have multiple commits please combine them into one commit by squashing them.

@coderabbitai
Copy link

coderabbitai bot commented Jan 12, 2026

Important

Review skipped

Too many files!

This PR contains 179 files, which is 79 over the limit of 100.

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

  • 🔍 Trigger a full review

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@amanna13 amanna13 force-pushed the chore/sync-version-catalogue-buildlogic branch 2 times, most recently from 0f2fe17 to b70a147 Compare January 16, 2026 14:03
@amanna13 amanna13 marked this pull request as ready for review January 16, 2026 14:06
@amanna13 amanna13 marked this pull request as draft January 16, 2026 14:16
- Add missing dependencies to version catalogue
- Finalize build logic configuration
@amanna13 amanna13 force-pushed the chore/sync-version-catalogue-buildlogic branch from b70a147 to 6c41344 Compare January 16, 2026 14:24
@amanna13 amanna13 marked this pull request as ready for review January 16, 2026 14:43
}
register("androidFirebase") {
id = "mifos.android.application.firebase"
id = "org.convention.android.application.firebase"
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why are we changing this

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have followed how the KMP template sync was done in mifos-mobile and mobile-wallet. Those have this changes
Please have a look into this similar PRs
https://github.com/openMF/mifos-mobile/pull/2967/files
https://github.com/openMF/mobile-wallet/pull/1894/files

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@amanna13 using 2 different types of id will only create confusion, if you are replacing mifos with org.convention you should do it in the whole project or keep it as it is.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I guess that's a gradual replacement. This pr is intended to fix the build for the core-base which got merged recently.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@itsPronay I believe only project specific ones use mifos as a prefix and others use org.convention, which are common to all projects and can be used as it is from kmp-project-template.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@biplab1 I see, I got confused earlier

Copy link
Contributor

@biplab1 biplab1 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good to me. This can be merged.

@biplab1
Copy link
Contributor

biplab1 commented Jan 22, 2026

@amanna13 Have you checked the build on your PR branch? Is the app building fine? Please upload a screen recording in the PR description.

@amanna13
Copy link
Contributor Author

@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 apply("org.convention.android.application.firebase") inside build-logic > convention > AndroidApplicationConventionPlugin to temporarily fix it.

The actual issue is in cmp-android/google-services.json, there’s no matching Firebase client entry for DemoDebug

@biplab1
Copy link
Contributor

biplab1 commented Jan 23, 2026

@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 apply("org.convention.android.application.firebase") inside build-logic > convention > AndroidApplicationConventionPlugin to temporarily fix it.

The actual issue is in cmp-android/google-services.json, there’s no matching Firebase client entry for DemoDebug

@amanna13 I think we can handle this issue in a separate ticket. Please create a ticket to update google-services.json and handle this convention plugin error which results in a package name different from that listed in the google-services.json.

@amanna13
Copy link
Contributor Author

@biplab1 So it's commented out for now. so should i request for a merge ?!

@niyajali
Copy link
Collaborator

@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 apply("org.convention.android.application.firebase") inside build-logic > convention > AndroidApplicationConventionPlugin to temporarily fix it.

The actual issue is in cmp-android/google-services.json, there’s no matching Firebase client entry for DemoDebug

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

    {
      "client_info": {
        "mobilesdk_app_id": "1:728434912738:android:53d0930e402622611a1dbb",
        "android_client_info": {
          "package_name": "com.mifos.mifosxdroid.demo.debug"
        }
      },
      "oauth_client": [
        {
          "client_id": "728434912738-4sc51o624viccn8oi14f2mi77tljrdns.apps.googleusercontent.com",
          "client_type": 3
        }
      ],
      "api_key": [
        {
          "current_key": "AIzaSyCUz3P8uUExMFcPHa1Ga3DBKhjK5zxNn70"
        }
      ],
      "services": {
        "appinvite_service": {
          "other_platform_oauth_client": [
            {
              "client_id": "728434912738-4sc51o624viccn8oi14f2mi77tljrdns.apps.googleusercontent.com",
              "client_type": 3
            }
          ]
        }
      }
    },
    {
      "client_info": {
        "mobilesdk_app_id": "1:728434912738:android:53d0930e402622611a1dbb",
        "android_client_info": {
          "package_name": "com.mifos.mifosxdroid.debug"
        }
      },
      "oauth_client": [
        {
          "client_id": "728434912738-4sc51o624viccn8oi14f2mi77tljrdns.apps.googleusercontent.com",
          "client_type": 3
        }
      ],
      "api_key": [
        {
          "current_key": "AIzaSyCUz3P8uUExMFcPHa1Ga3DBKhjK5zxNn70"
        }
      ],
      "services": {
        "appinvite_service": {
          "other_platform_oauth_client": [
            {
              "client_id": "728434912738-4sc51o624viccn8oi14f2mi77tljrdns.apps.googleusercontent.com",
              "client_type": 3
            }
          ]
        }
      }
    },

@niyajali
Copy link
Collaborator

And there are some recent changes in the template project, take a look into that and do the required changes accordingly

// enabled if a Firebase backend is available and configured in
// google-services.json.
configure<CrashlyticsExtension> {
mappingFileUploadEnabled = false
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This should be true, since Crashlytics is configured for all projects.

Suggested change
mappingFileUploadEnabled = false
mappingFileUploadEnabled = true

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This isn't required for debug builds, improving build and compile times. For production release builds, it will be overridden through the AndroidManifest configuration

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Regarding the Google Services client: we have 2 product flavors and 2 build types configured across all projects, creating 4 Android build variants, plus iOS and web apps. We haven't registered the debug builds in Firebase because there's a limit of 20 apps per free account. Registering unnecessary debug variants would consume our quota and prevent us from adding new apps when needed...

Copy link
Contributor

@biplab1 biplab1 Jan 25, 2026

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Then those need to be updated to improve the build and compile time for debug builds

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Regarding the Google Services client: we have 2 product flavors and 2 build types configured across all projects, creating 4 Android build variants, plus iOS and web apps. We haven't registered the debug builds in Firebase because there's a limit of 20 apps per free account. Registering unnecessary debug variants would consume our quota and prevent us from adding new apps when needed...

@niyajali Can we not exclude the debug build variant from the relevant Gradle task instead of supplying placeholder values in google-services.json?

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we're overcomplicating this. Why not just copy the existing client definition and change the package name? That's a 1-2 minute task that won't break anything. Updating internal Gradle configurations is risky, I've published multiple apps and know how unpredictable Gradle can be. Most issues only show up in release builds. So it's better to stick with the mentioned approach and sometimes we need the debug variants to test the functionality by using the created client Id..

@amanna13
Copy link
Contributor Author

Hey @niyajali, I tried with what you suggested with the google-services and it did work.

  • I'm keeping Crashlytics true, its currently set on true for mifos-mobile but it was false in android-client

And there are some recent changes in the template project, take a look into that and do the required changes accordingly

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.
Dependency updates and all can be addressed once this is merged in a seperate PR, because a lot of dependencies like "room" was upgraded which introduced stricter type validation, which is currently failing I checked.

@amanna13 amanna13 requested review from biplab1 and niyajali January 26, 2026 10:24
@biplab1
Copy link
Contributor

biplab1 commented Jan 26, 2026

@amanna13 I am curious - since you might have built using both the settings:
image

Does the compile and build times for debug variant build gets affected? Can you verify this:

Then those need to be updated to improve the build and compile time for debug builds

@amanna13
Copy link
Contributor Author

amanna13 commented Jan 26, 2026

Does the compile and build times for debug variant build gets affected?

@biplab1 I verified the Debug build performance by running in the same environment. With mappingFileUpload enabled, the Debug build took ~5m 30s, compared to ~3m 52s when disabled, somewhat close to 30% improvement

@biplab1
Copy link
Contributor

biplab1 commented Jan 27, 2026

Does the compile and build times for debug variant build gets affected?

@biplab1 I verified the Debug build performance by running in the same environment. With mappingFileUpload enabled, the Debug build took ~5m 30s, compared to ~3m 52s when disabled, somewhat close to 30% improvement

@amanna13 I am assuming you did a clean build before testing each of the settings.

Please keep the mappingFileUpload disabled for now in this project, other projects which have it enabled will also be disabled as recommended by @niyajali .

Can you also address this as pointed out by @niyajali:

And there are some recent changes in the template project, take a look into that and do the required changes accordingly

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.

@amanna13
Copy link
Contributor Author

amanna13 commented Jan 27, 2026

I am assuming you did a clean build before testing each of the settings.

Yes I did clean build. Okay sure I will disable that.

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.

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.

@biplab1
Copy link
Contributor

biplab1 commented Jan 27, 2026

@amanna13 If you face any problems, feel free to start a Slack thread tagging @niyajali and me to expedite the work on this PR.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants