[NOJIRA] [CHORE] Bump Android SDK to v3.13.1 - #1392
Conversation
|
✅ All CI checks and tests passed. 🎉 All green!🧪 All tests passed 🔗 Commit SHA: b995509 | Docs | View more details | Give us feedback! |
There was a problem hiding this comment.
Pull request overview
This PR updates the React Native Android bridge dependencies to use Datadog Android SDK v3.13.1 and adjusts the feature flags bridge serialization to accommodate the updated flags model.
Changes:
- Bump Datadog Android SDK module dependencies from 3.12.1 → 3.13.1 across core modules and benchmark tooling.
- Extend feature-flag snapshot serialization/deserialization to include the new
serialIdfield.
Reviewed changes
Copilot reviewed 6 out of 6 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| packages/react-native-webview/android/build.gradle | Bumps dd-sdk-android-webview dependency to 3.13.1. |
| packages/react-native-session-replay/android/build.gradle | Bumps dd-sdk-android-session-replay and dd-sdk-android-internal to 3.13.1. |
| packages/internal-testing-tools/android/build.gradle | Bumps dd-sdk-android-core dependency to 3.13.1. |
| packages/core/android/src/main/kotlin/com/datadog/reactnative/DdFlagsImplementation.kt | Adds serialId to the serialized flag map and restores it when rebuilding UnparsedFlag. |
| packages/core/android/build.gradle | Bumps all core Datadog Android SDK dependencies (RUM/Logs/Trace/WebView/NDK/Flags/Internal) to 3.13.1, including the RN < 0.76 conditional path. |
| benchmarks/android/app/build.gradle | Bumps benchmark/internal tooling dependencies to 3.13.1. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 8 out of 8 changed files in this pull request and generated 1 comment.
Suppressed comments (2)
Previously missed (2) — in code that hasn't changed since the last review.
packages/core/android/src/main/kotlin/com/datadog/reactnative/DdFlagsImplementation.kt:225
serialIdis aLong?, buttoWritableMap()convertsLongtoDouble(seeDdSdkBridgeExt.kt:135-137), which can lose precision for values > 2^53 when crossing the React Native bridge. To preserve the exact value for latertrackEvaluationcalls, serialize it as a string.
"serialId" to flag.serialId
packages/core/android/src/main/kotlin/com/datadog/reactnative/DdFlagsImplementation.kt:242
- If
serialIdis serialized as a string to avoid precision loss across the RN bridge, the deserialization should accept both numeric and string inputs for backward compatibility.
override val serialId: Long? = (map["serialId"] as? Number)?.toLong()
64520de to
2ffbf54
Compare
2ffbf54 to
11d3261
Compare
11d3261 to
9a6c9c5
Compare
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 8 out of 8 changed files in this pull request and generated 1 comment.
Suppressed comments (1)
packages/internal-testing-tools/android/src/test/kotlin/com/datadog/reactnative/internaltesting/DdInternalTestingImplementationTest.kt:140
MockFeatureScope.withWriteContextSynccurrently ignores the provided callback and always returnsfalse, which can make future tests behave as if a write context is unavailable even when the mock could provide one. Implement a minimal synchronous callback execution and returntrueto better match the expected contract of the API.
override fun withWriteContextSync(
withFeatureContexts: Set<String>,
callback: (datadogContext: DatadogContext, write: EventWriteScope) -> Unit
): Boolean {
return false
}
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 8 out of 8 changed files in this pull request and generated no new comments.
Suppressed comments (1)
packages/internal-testing-tools/android/src/test/kotlin/com/datadog/reactnative/internaltesting/DdInternalTestingImplementationTest.kt:139
MockFeatureScope.withWriteContextSynccurrently returnsfalseand does not invoke the callback. Together with the existing no-opwithWriteContext, this makes the test effectively skip the event-writing/assertion path (the callback never runs). Implement these methods to call the callback with a deterministicDatadogContextand a minimalEventWriteScope, and returntruewhen the sync callback is executed.
override fun withWriteContextSync(
withFeatureContexts: Set<String>,
callback: (datadogContext: DatadogContext, write: EventWriteScope) -> Unit
): Boolean {
return false
What does this PR do?
Bumps Datadog Android SDK version to v3.13.1, and fixes breaking changes.
Review checklist (to be filled by reviewers)