Skip to content

fix(deps): keep both libphonenumber artifacts on the same version - #1258

Merged
bmc08gt merged 1 commit into
code/cashfrom
claude/libphonenumber-parity
Aug 20, 2026
Merged

fix(deps): keep both libphonenumber artifacts on the same version#1258
bmc08gt merged 1 commit into
code/cashfrom
claude/libphonenumber-parity

Conversation

@bmc08gt

@bmc08gt bmc08gt commented Aug 20, 2026

Copy link
Copy Markdown
Collaborator

Follow-up to #1241 / #1242.

Those two were reviewed and merged as a pair precisely so the two libphonenumber artifacts would agree at 9.0.36. Between the review and the merge, #1242 hit a conflict and Dependabot rebased it onto a newer upstream release — so code/cash now has:

Catalog key Artifact Version
lib-phone-number-port io.michaelrocks:libphonenumber-android 9.0.36
lib-phone-number-google com.googlecode.libphonenumber:libphonenumber 9.0.37

Why the skew is worth fixing rather than ignoring

Both artifacts are on the runtime classpath and each bundles its own copy of the libphonenumber metadata. The class names don't collide (io.michaelrocks.libphonenumber.android.* vs com.google.i18n.phonenumbers.*), so nothing breaks at build time — but the two are consulted at different points in the same flow:

  • :shared:phone parses and formats with the port
  • :services:flipcash, :services:flipcash-compose, :services:opencode and :shared:onramp:coinbase validate with Google's

A metadata patch typically adjusts number ranges for a handful of countries. One patch of drift is enough for the client to format a number as valid and the services layer to reject it (or the reverse) — for some countries only, intermittently, with nothing in the stack trace pointing at a version mismatch.

9.0.36 is the latest published version of the port (checked against Maven Central), so it sets the ceiling. This pins -google back to match and documents the coupling in the catalog so the next bump doesn't silently re-skew.

Dependabot grouping

Also groups both artifacts into one Dependabot PR. To be clear about what this does and doesn't buy: it does not force matching versions — the port will keep lagging, and a grouped PR will still propose 9.0.37/9.0.36. What it does is put the skew in a single diff you can see and correct, instead of two PRs that can each be merged on their own and look fine in isolation. That's exactly how this one got through.

Verification

  • ./gradlew :apps:flipcash:app:assembleDebug — green (also confirms the other seven dependency bumps that just landed build together)
  • :apps:flipcash:shared:phone:testDebugUnitTest — green
  • :libs:encryption:hmac:testAndroidHostTest — green (KMP module; test is ambiguous here, testAndroidHostTest is the real task)

#1241 and #1242 were meant to land together at 9.0.36, but Dependabot rebased
#1242 onto a newer upstream release, so code/cash ended up with the Android
port at 9.0.36 and Google's artifact at 9.0.37.

That skew matters here: :shared:phone parses and formats with
io.michaelrocks:libphonenumber-android, while :services:flipcash,
:services:flipcash-compose, :services:opencode and :shared:onramp:coinbase
validate with com.googlecode.libphonenumber:libphonenumber. Each artifact
bundles its own copy of the libphonenumber metadata, so one patch of drift is
enough for the two to disagree on whether a given number is valid — a class of
bug that surfaces as an unexplained rejection for a handful of countries.

The port lags upstream (9.0.36 is its latest), so it sets the ceiling. Pins
-google back to 9.0.36 and documents the coupling in the catalog.

Also groups both artifacts in dependabot.yml so future bumps arrive as a single
PR. Grouping does not force matching versions — the port will still lag — but
it puts any skew in one diff instead of two independently mergeable PRs.

Verified with :apps:flipcash:app:assembleDebug plus the phone and encryption
unit tests.
@bmc08gt
bmc08gt requested a review from jeffyanta as a code owner August 20, 2026 12:45
@github-actions github-actions Bot added type: fix Bug fix area: build-system Gradle, convention plugins, build-logic and removed type: fix Bug fix labels Aug 20, 2026
@bmc08gt
bmc08gt merged commit a965f4f into code/cash Aug 20, 2026
3 checks passed
@bmc08gt
bmc08gt deleted the claude/libphonenumber-parity branch August 20, 2026 12:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area: build-system Gradle, convention plugins, build-logic

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant