Skip to content

Bump Ditto SDK to 4.14.4-rc.3 across all quickstart apps#274

Closed
Kristopher Johnson (kristopherjohnson) wants to merge 1 commit intomainfrom
kj/bump-sdk-4.14.4-rc.3
Closed

Bump Ditto SDK to 4.14.4-rc.3 across all quickstart apps#274
Kristopher Johnson (kristopherjohnson) wants to merge 1 commit intomainfrom
kj/bump-sdk-4.14.4-rc.3

Conversation

@kristopherjohnson
Copy link
Copy Markdown
Collaborator

@kristopherjohnson Kristopher Johnson (kristopherjohnson) commented Apr 28, 2026

⚠️ DO NOT MERGE

This PR pins the Ditto SDK to a release candidate (4.14.4-rc.3) and exists solely so we can build and smoke-test the RC in our quickstart apps. It must not be merged into main.

Summary

Bumps the Ditto SDK from 4.14.34.14.4-rc.3 across every quickstart app currently pinned to a 4.x version, with regenerated lockfiles.

Apps updated: android-java, android-kotlin, cpp-tui, dotnet-maui, dotnet-tui, dotnet-winforms, flutter_app, javascript-tui, javascript-web, react-native, react-native-expo, rust-tui, swift.

Excluded (5.x, preview, or no committed SDK pin): kotlin-multiplatform, java-server, java-spring, go-tui, edge-server, android-cpp.

Pinning approach

All flexible version constraints were tightened to exact pins so the smoke-test result is unambiguous about which RC build was tested:

  • rust-tui/Cargo.toml: =4.14.4-rc.3
  • flutter_app/pubspec.yaml: no caret
  • javascript-tui/package.json, javascript-web/package.json: no caret
  • swift/Tasks.xcodeproj: kind = exactVersion (was upToNextMajorVersion)

react-native and react-native-expo already used exact pins.

Local verification

App Status
rust-tui cargo build
javascript-tui npm run build
javascript-web npm run build
dotnet-tui dotnet build
cpp-tui make build in ubuntu:24.04 Docker container (the C++ SDK is Linux-only — macOS and Windows are not published)
android-java ./gradlew :app:dependencies resolves live.ditto:ditto:4.14.4-rc.3
android-kotlin ✅ same
swift xcodebuild clean build for iOS Simulator
flutter_app flutter build apk --debug
react-native ✅ Metro bundle
react-native-expo yarn install resolves rc.3 (Expo project; full bundle deferred to CI)
dotnet-maui dotnet build for net9.0-ios, net9.0-maccatalyst, and net9.0-android
dotnet-winforms skipped (Windows-only target)

Note: Earlier RC 4.14.4-rc.1 had a live.ditto.AppLifecycleListener$Companion duplicate-class issue that broke the dotnet-maui Android target. rc.3 resolves that.

Linear

Closes SDKS-3229
Closes SDKS-3230
Closes SDKS-3231

Test plan

  • CI green across every per-app workflow
    • All per-app build jobs are green (Android Java/Kotlin, .NET MAUI/TUI/WinForms, C++ TUI, Flutter all platforms, JS TUI, RN, RN Expo, Rust TUI, Swift)
    • Pre-existing failures unrelated to the SDK bump: Rust TUI / Lint, JavaScript Web / Build, .NET TUI/WinForms / Integration Test, C++ TUI / Integration Test, BrowserStack jobs across most platforms
  • Smoke test C++ quickstart (cpp-tui) against the RC — SDKS-3231
    • Full CRUD round-trip in ubuntu:24.04 Docker (the C++ SDK is Linux-only): added a task via one container, queried it back from a fresh container — sync confirmed end-to-end against the cloud Big Peer.
  • Smoke test Flutter quickstart against the RC — SDKS-3230
    • Native macOS desktop build + integration test: 60+ s of SDK init, cloud auth, and replication completed.
    • iPhone XR (USB) running release build, sync working.
    • Samsung Galaxy S20 FE: debug ✅, profile ✅, release blocked by SDKS-3594 (R8 strips classes the bundled libs need; rustls panics on launch + silent TLS-handshake failure once that's fixed). Workaround verified locally — release build syncs end-to-end with the iOS quickstart with the proguard rules from SDKS-3594. Not committed here; fix belongs in ditto_live plugin.
  • Smoke test React Native quickstart against the RC — SDKS-3229
    • Native iOS build with rc.3: Build Succeeded, 0 errors, app installed on iPhone 16 Simulator.
    • Metro bundle ✅; release builds installed and launched on real devices (see below).
    • Cars app referenced in SDKS-3229 lives outside this repo — out of scope for this PR.
  • Manually test Flutter app on Android and iOS devices
  • Manually test React Native app on Android and iOS devices
    • Samsung Galaxy S20 FE: react-native run-android --mode release ✅ — clean launch, Ditto permission prompt as expected.
    • iPhone XR: required SDKS-3242's fmt-consteval Podfile snippet (Xcode 26.4 + bundled fmt 11.0.2 incompatibility). Quickstart was missing that snippet — opened fix(react-native): disable fmt consteval for Xcode 26.4 builds #275 to mirror it from the SDK monorepo's example app. With the snippet applied, react-native run-ios --device 'KJ iPhone XR' --mode Release builds, installs, and launches successfully.

Filed during smoke testing

  • SDKS-3594 — Flutter SDK: ditto_live plugin missing consumer-rules.pro breaks Android release builds. Two symptoms (hard SIGABRT in libdittoffi.so, and silent sync failure once that's worked around). Fix is to ship consumer keep rules in the plugin's Android subproject.
  • SDKS-3242 (already filed and "Done") — RN iOS builds fail on Xcode 26.4 due to fmt 11.0.2 consteval bug. The SDK monorepo's example Podfile got the workaround but the quickstart's Podfile did not. Quickstart fix in fix(react-native): disable fmt consteval for Xcode 26.4 builds #275.

Updates android-kotlin, android-java, cpp-tui, dotnet-tui, dotnet-maui,
dotnet-winforms, flutter_app, javascript-tui, javascript-web,
react-native, react-native-expo, rust-tui, and swift to Ditto SDK
4.14.4-rc.3 for release-candidate testing.

All flexible-version constraints are exact pins (=, no caret,
exactVersion) so the smoke-test result is unambiguous about which RC
build was tested:

- rust-tui Cargo.toml: =4.14.4-rc.3
- flutter_app pubspec.yaml: no caret
- javascript-tui/javascript-web package.json: no caret
- swift project.pbxproj: kind = exactVersion (was upToNextMajorVersion)

react-native and react-native-expo already used exact pins.

kotlin-multiplatform/, java-server/, java-spring/, go-tui/, edge-server/,
and android-cpp/ are unaffected (they pin to 5.x or have no committed
SDK reference).
@kristopherjohnson
Copy link
Copy Markdown
Collaborator Author

Closing this branch that was used for testing of 4.14.4-rc.3

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.

1 participant