Skip to content

Conversation

@OrangeAndGreen
Copy link
Contributor

https://dimagi.atlassian.net/browse/CCCT-2032

Product Description

No user-facing changes

Technical Summary

Changed Firebase dependencies to use latest BoM (34.8.0)
Changed to using latest Kotlin version. The latest versions of the Firebase libraries were built using a newer version of Kotlin than we supported before.
Replaced an obsolete analytics constant (ITEM_LIST to ITEM_LIST_ID). The previous constant was deprecated before but is gone in the latest version.

Feature Flag

None

Safety Assurance

Safety story

Dev tested in debug mode.
Creating draft PR so I can test a fully-signed build (including FCM).

Automated test coverage

None

QA Plan

Basic regression testing to ensure nothing strange broke.

Changed to using latest Kotlin version.
Replaced an obsolete analytics constant (ITEM_LIST to ITEM_LIST_ID)
@coderabbitai
Copy link

coderabbitai bot commented Jan 22, 2026

📝 Walkthrough

Walkthrough

This pull request updates Firebase dependency management, upgrades the Kotlin compiler, and modifies an analytics event parameter. The Firebase dependencies in app/build.gradle are consolidated under the Firebase Bill of Materials (BOM) platform, removing explicit versions. The Kotlin version is upgraded from 1.8.20 to 2.1.0 in build.gradle. In FirebaseAnalyticsUtil.java, the analytics parameter key in the reportViewArchivedFormsList method changes from ITEM_LIST to ITEM_LIST_ID.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Possibly related PRs

Suggested labels

product/invisible, skip-integration-tests

Suggested reviewers

  • avazirna
  • shubham1g5
  • pm-dimagi
🚥 Pre-merge checks | ✅ 2 | ❌ 1
❌ Failed checks (1 warning)
Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (2 passed)
Check name Status Explanation
Title check ✅ Passed The title 'Firebase dependencies using BoM' accurately describes the primary change in the changeset—migrating Firebase dependencies to use the Firebase Bill of Materials approach.
Description check ✅ Passed The description includes most required sections: Product Description, Technical Summary, Feature Flag, and Safety Assurance (with Safety story, Automated test coverage, and QA Plan), though the QA Plan is minimal and some safety considerations are limited.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch ccct-2032/firebase_bom

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.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🤖 Fix all issues with AI agents
In `@app/build.gradle`:
- Around line 113-117: Update the Gradle plugin versions that are incompatible
with Firebase BOM 34.8.0: in your buildscript classpath or plugins block where
you declare com.google.gms:google-services,
com.google.firebase:firebase-crashlytics-gradle, and
com.google.firebase:perf-plugin (look for those exact artifactIds or the plugin
ids com.google.gms.google-services, com.google.firebase.crashlytics,
com.google.firebase.perf), bump them to at least Google Services 4.4.4+,
Crashlytics Gradle 3.0.6+, and Performance Monitoring 2.0.2+ respectively;
ensure you update the version strings in the classpath or plugins declaration
and then sync/build to confirm compatibility with firebase-bom:34.8.0.

Comment on lines +113 to +117
implementation platform('com.google.firebase:firebase-bom:34.8.0')
implementation 'com.google.firebase:firebase-analytics'
implementation 'com.google.firebase:firebase-messaging'
implementation 'com.google.firebase:firebase-perf'
implementation 'com.google.firebase:firebase-crashlytics'
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🔴 Critical

🧩 Analysis chain

🏁 Script executed:

# First, check the app/build.gradle file to see the full context around the lines mentioned
cat -n app/build.gradle | head -170

Repository: dimagi/commcare-android

Length of output: 9445


🏁 Script executed:

# Also check for root build.gradle to see plugin versions
find . -name "build.gradle" -type f | head -10

Repository: dimagi/commcare-android

Length of output: 140


🏁 Script executed:

# Look for root-level build.gradle or settings.gradle
cat -n build.gradle 2>/dev/null || echo "No root build.gradle found"

Repository: dimagi/commcare-android

Length of output: 1346


🌐 Web query:

Firebase Android BOM 34.8.0 compatibility requirements google-services crashlytics perf gradle plugin versions

💡 Result:

Short answer — for Firebase Android BoM 34.8.0 (released Jan 15, 2026) use these tool/plugin minimums:

  • Firebase BoM: com.google.firebase:firebase-bom:34.8.0. [1]
  • Android Gradle Plugin (AGP): 8.1.x (AGP 8.1+). [2][3]
  • Gradle CLI: Gradle 8.0+. [3]
  • Google Services Gradle plugin: com.google.gms:google-services version 4.4.4 (recommended; docs reference 4.4.1 minimum in some pages). Use 4.4.4+. [2][3][5]
  • Crashlytics Gradle plugin: com.google.firebase.crashlytics version 3.0.6 (add via plugins block). [3]
  • Performance Monitoring plugin: com.google.firebase:perf-plugin 2.0.2 (use perf-plugin 2.0.2+). [4]

Notes: the BoM removed KTX modules starting v34.0.0 — migrate if you rely on KTX. If you want, I can check specific AGP/Gradle compatibility for your project (build.gradle files). Sources: Firebase docs and release notes. [1][2][3][4][5]

Sources
[1] Firebase BoM 34.8.0 (Maven listing).
[2] Firebase Android setup / Add Firebase to your Android project (google-services 4.4.4).
[3] Crashlytics get-started (AGP 8.1+, Gradle 8.0+, crashlytics plugin 3.0.6).
[4] Firebase Android SDK release notes / perf-plugin 2.0.2.
[5] Firebase Crashlytics NDK / Gradle/Google services minimums.


Update Gradle plugins to support Firebase BOM 34.8.0.

The following plugins are incompatible with Firebase BOM 34.8.0 and must be updated:

  • Google Services: update from 4.3.14 to 4.4.4+
  • Crashlytics Gradle: update from 2.9.2 to 3.0.6+
  • Performance Monitoring: update from 1.4.2 to 2.0.2+

These plugin versions are below the documented minimums for BOM 34.8.0 and will likely cause build or runtime failures.

Also applies to: 166-166

🤖 Prompt for AI Agents
In `@app/build.gradle` around lines 113 - 117, Update the Gradle plugin versions
that are incompatible with Firebase BOM 34.8.0: in your buildscript classpath or
plugins block where you declare com.google.gms:google-services,
com.google.firebase:firebase-crashlytics-gradle, and
com.google.firebase:perf-plugin (look for those exact artifactIds or the plugin
ids com.google.gms.google-services, com.google.firebase.crashlytics,
com.google.firebase.perf), bump them to at least Google Services 4.4.4+,
Crashlytics Gradle 3.0.6+, and Performance Monitoring 2.0.2+ respectively;
ensure you update the version strings in the classpath or plugins declaration
and then sync/build to confirm compatibility with firebase-bom:34.8.0.

@OrangeAndGreen
Copy link
Contributor Author

@damagatchi retest this please

2 similar comments
@OrangeAndGreen
Copy link
Contributor Author

@damagatchi retest this please

@OrangeAndGreen
Copy link
Contributor Author

@damagatchi retest this please

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.

2 participants