Skip to content

chore: bump native dependencies to version 2.2(SDKS-5515) - #82

Open
tsdamas wants to merge 1 commit into
mainfrom
SDKS-5515
Open

tsdamas wants to merge 1 commit into
mainfrom
SDKS-5515

Conversation

@tsdamas

@tsdamas tsdamas commented Oct 21, 2026

Copy link
Copy Markdown
Contributor

Summary

Bumps the native Ping SDK dependencies across all packages to 2.2.0 on both platforms and resolves the two API changes the bump surfaced. All Android com.pingidentity.sdks:* artifacts move from 2.1.0 to 2.2.0 (rn-journey normalizes off the 2.2.0-beta2 pin), all iOS Ping* pods move from 2.1.0 to 2.2.0, and the temporary develop-commit pin in both iOS Podfiles is removed. With every pin converged on one version, the native SDK version consistency gate is active again.

Requires native SDK 2.2.0: Android com.pingidentity.sdks:* 2.2.0 (2026-09-25) and iOS Ping* pods 2.2.0 (2026-10-19). Includes the backchannel API (Journey.start(backchannelUri:), SDKS-5156) that the Podfile develop pins were waiting on.

Changes

  • Native bumps: Android 2.1.0 → 2.2.0 in all 15 package build.gradle files plus the sample app's direct protect pin (2.0.1 → 2.2.0); iOS 2.1.0 → 2.2.0 in all 15 RNPing*.podspec files. rn-push's PingLogger normalizes from a ~> range to an exact pin so the version gate sees one consistent set.
  • iOS Podfiles: removes the temporary ping_ios_develop pin block from PingSampleApp and PingTestRunner (its removal condition, the iOS release containing SDKS-5156, is satisfied by 2.2.0); restores the three PingExternalIdP* provider pods in the sample app at 2.2.0; drops the dead RecaptchaInterop/GoogleUtilities block from the test runner; regenerates both Podfile.lock files against trunk at 2.2.0.
  • Android bridge (rn-fido): Android SDK 2.2.0 removed FidoClientConfig.useFido2Client (undeclared breaking change). The bridge now applies the override as FidoAuthenticateCustomizer.useFido2ApiClient per call, so it reaches standalone authenticate, authenticateForJourney, and authenticateForDaVinci (SDKS-5515).
  • Android bridge (rn-oath): reworks saveCredential to fetch-then-patch. Android SDK 2.2.0 added require(secret.isNotBlank()) to OathCredential's init, which rejected the empty-secret credential the bridge built from the JS payload before fetching the stored record. The decode now reads only id, displayIssuer, and displayAccountName; everything else comes from the stored credential.
  • TypeScript: FidoAndroidConfig.useFido2Client renamed to useFido2ApiClient; TSDoc and rn-fido README updated to describe the authentication-only scope.
  • Tests: new Robolectric tests verify the customizer reaches the native Journey callback and DaVinci collector; oath tests updated for the reworked decode; integration expectations renamed to useFido2ApiClient.
  • Tooling: re-enables the lefthook native-sdk-versions pre-commit check (disabled in SDKS-5380 while pins were divergent); removes the SDKS-5296 workaround notes from the browser/oidc Gradle files, verified fixed in 2.2.0 upstream; drops two duplicate FileTimestamp entries from the test runner privacy manifest.
  • Changesets: @ping-identity/rn-fido minor, @ping-identity/rn-oath patch.

Platform notes

  • useFido2ApiClient is authentication-only: 2.2.0 register() always uses Credential Manager and has no API selection. With no override set, native auto-detection applies (Play Services when GMS is present), which matches 2.1.0 behavior for apps that never set the flag.
  • The rename is Android-only: iOS never consumed the flag.
  • Apps still sending android: { useFido2Client: true } will silently stop applying the override on Android; the key must be renamed.
  • Journey 2.2.0-beta2 and 2.2.0 final are functionally identical (sources differ only in BuildConfig), so the beta-to-final normalization is not a behavior change.
  • The lefthook gate now fails any commit with mixed native pins across packages; keep all build.gradle and podspec pins in lockstep.

Verification

  • check-native-sdk-versions.mjs: all 30 files pinned to 2.2.0
  • Formatting completed
  • Lint executed
  • Packages built
  • Type checking completed
  • JavaScript unit tests executed (17/17 packages; rn-fido 33, rn-oath 58)
  • PingTestRunner integration tests executed (417 tests, 19 suites)
  • Android native tests executed (640 tests, 16 modules, 0 failures, JDK 21)
  • iOS native tests executed (719 tests, 16 RNPing*-Unit-Tests schemes, 0 failures, iPhone 16 / iOS 18.6, pods at 2.2.0)
  • Sample-app smoke test

@coderabbitai

coderabbitai Bot commented Oct 21, 2026

Copy link
Copy Markdown
Contributor

Important

  • 🔍 Trigger review

This repository does not receive automatic reviews because it has fewer than 10 stars.

⚙️ Run configuration
  • Configuration used: defaults
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 397e9713-f674-4665-aea6-a673174696a0
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

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.

@codecov

codecov Bot commented Oct 21, 2026 •

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 0% with 9 lines in your changes missing coverage. Please review.
✅ Project coverage is 71.48%. Comparing base (16ab140) to head (65cf443).

Files with missing lines Patch % Lines
...n/java/com/pingidentity/rnoath/RNPingOathCommon.kt 0.00% 9 Missing ⚠️
Additional details and impacted files
@@             Coverage Diff              @@
##               main      #82      +/-   ##
============================================
- Coverage     71.89%   71.48%   -0.42%     
  Complexity      252      252              
============================================
  Files           168      208      +40     
  Lines         23200    25051    +1851     
  Branches        826     1156     +330     
============================================
+ Hits          16680    17907    +1227     
- Misses         6437     6974     +537     
- Partials         83      170      +87     
Flag Coverage Δ
android 16.62% <0.00%> (+0.14%) ⬆️
ios 81.21% <ø> (ø)
javascript 70.52% <ø> (-17.42%) ⬇️
Components Coverage Δ
Bridge glue 52.04% <ø> (+0.15%) ⬆️
Pure logic 81.09% <ø> (ø)
Files with missing lines Coverage Δ
packages/fido/src/NativeRNPingFido.ts 95.83% <ø> (ø)
packages/fido/src/types/fido.types.ts 100.00% <ø> (ø)
packages/oath/ios/RNPingOathCommon.swift 50.58% <ø> (ø)
...n/java/com/pingidentity/rnoath/RNPingOathCommon.kt 0.00% <0.00%> (ø)

... and 38 files with indirect coverage changes


Continue to review full report in Codecov by Harness.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 16ab140...65cf443. Read the comment docs.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@github-actions

Copy link
Copy Markdown
Contributor
PR Preview Action v1.8.1

QR code for preview link

🚀 View preview at
https://ForgeRock.github.io/ping-react-native-sdk/docs-preview/pr-82/

Built to branch gh-pages at 2026-10-21 18:47 UTC.
Preview will be ready when the GitHub Pages deployment is complete.

This branch has not been deployed

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

Labels

None yet

Development

Successfully merging this pull request may close these issues.

1 participant