feat: rebrand to FlashCat for v1 (iOS + Android)#1
Open
Fiona2016 wants to merge 6 commits into
Open
Conversation
Fork datadog_flutter_plugin / datadog_webview_tracking to the FlashCat
platform. v1 scope = iOS + Android; RUM / Logs / Crash + WebView tracking
via the native path. Flutter-Web platform target dropped.
Native coordinates now point at the FlashCat forks:
- iOS pods Datadog* ~> 3 -> Flashcat* ~> 0.5 (DictionaryCoder kept)
- iOS SPM dd-sdk-ios 3.4 -> fc-sdk-ios 0.5.0 (git url + tag)
- Android com.datadoghq:*:3+ -> cloud.flashcat:*:0.4.1
Site model fully renamed DatadogSite -> FlashcatSite{cn,staging}
(default cn -> browser.flashcat.cloud), mirroring the native forks which
removed DatadogSite entirely. Dart enum + both native bridges + web_helpers
+ tests updated.
Android jnigen bridge regenerated against the fork: descriptors now
reference com/datadog/android/FlashcatSite; stale bindings pruned.
Compile-verified GREEN on both platforms (Runner.app + app-debug.apk).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Publish-facing rebrand of the two v1 packages: - datadog_flutter_plugin -> flashcat_flutter_plugin - datadog_webview_tracking -> flashcat_webview_tracking Renames the pub package name (and the lib entry file), rewrites all package:/relative imports across lib, test and example, updates the webview -> plugin dependency, melos scopes, README code snippets, and pubspec metadata (description, repository/homepage). Version reset to 0.1.0 for the first FlashCat release; CHANGELOG entries added. Internal Datadog/Kotlin/Swift namespaces are intentionally preserved (fork convention). The 8 out-of-scope packages are untouched. Logs: iOS podspec now links FlashcatLogs-NoOp (matches the SPM Package.swift). FlashCat ingest does not accept Logs yet, so the Logs API compiles but sends nothing; no FlashcatLogs pod needs publishing. Both packages analyze clean; `flutter pub publish --dry-run` passes (no structural errors). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The FlashCat fork's Gradle module metadata for cloud.flashcat: dd-sdk-android-core:0.4.1 misfiles com.squareup.okhttp3:okhttp under the test-fixtures variant instead of the main runtime variant, so it is not pulled transitively. Without it the app crashes on Datadog.initialize with `java.lang.ClassNotFoundException: okhttp3.Authenticator` (Configuration.kt:321). Caught by an on-device end-to-end run. Declare okhttp 4.9.0 (the version the fork's POM references) explicitly in the plugin. Proper fix is upstream: fc-sdk-android should publish okhttp as an api dependency of the core runtime variant; this can be removed then. Verified: after this change the Android example initializes and a RUM batch uploads successfully to the FlashCat staging intake. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Flutter resolves iOS plugins by name, so the podspec and Swift package must match the plugin name (flashcat_flutter_plugin / flashcat_webview_tracking). Left as datadog_*, `pod install` / SPM failed for consumers. Rename the podspec file + s.name, the SPM package dir + Package name + product + target + Sources dir, for both packages. The internal C bridge module (datadog_flutter_plugin_c) is kept (imported via #if canImport, not Flutter-facing). Package DIRECTORIES are intentionally kept as datadog_* — the directory name does not affect consumers (pub caches by package name) and keeping it minimal avoids a large no-op rename. Only the published package name changes. Verified on device (staging intake): Android RUM batch sent successfully; iOS RUM batch accepted (HTTP 202) via pure SPM in a fresh consumer app. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
77feb52 to
ded7c4d
Compare
Mirror the fc-sdk-ios README pattern: an 'About' section noting the fork from DataDog/dd-sdk-flutter and a 'Key Differences' list (endpoint, site, package name vs preserved datadog namespaces, native deps, v1 scope, not-yet-available features). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The monorepo root README is the GitHub landing page; it was still pure Datadog. Add the fork note (parity with fc-sdk-ios, whose attribution is visible because it is a single-package repo) and clarify the two packages FlashCat v1 actually publishes. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Rebrands this fork (
DataDog/dd-sdk-flutter) to the FlashCat platform for a v1 release, keeping the change minimal (in the spirit of the iOS/Android forks). Scope: iOS + Android, supporting RUM, Crash Reporting, and WebView tracking (native path). The Flutter Web target is dropped for v1.Baseline: v3.0.1 (deliberate)
Based on tag
datadog_flutter_plugin/v3.0.1, notdevelop(upstream v3.4.0).developcalls native APIs (Datadog.flush(), iOS 3.8+/Android 3.8+) that the FlashCat native forks (iOS 3.6 / Android 3.5) don't expose, so it would not compile against our SDKs. v3.0.1's native requirements are a subset of what the forks provide. This is whymainfor this fork tracks the v3.0.1 baseline.What changed (and what deliberately did NOT)
Published package name only —
datadog_flutter_plugin→flashcat_flutter_plugin,datadog_webview_tracking→flashcat_webview_tracking, version0.1.0.Kept datadog internally (minimal):
packages/datadog_flutter_plugin/etc. (directory name doesn't affect consumers — pub caches by package name).com.datadoghq.flutter, Swift/internal type and file names, the C bridge module, and method-channel names all staydatadog*.Native dependencies point at the FlashCat forks: iOS pods
Flashcat* ~> 0.5/ SPMfc-sdk-ios 0.5.0; Androidcloud.flashcat:*:0.4.1.Site model
DatadogSite→FlashcatSite { cn, staging }(defaultcn→browser.flashcat.cloud). This is functional, not cosmetic — the native forks removedDatadogSiteand the endpoints differ; the Dart enum must bridge to the nativeFlashcatSite.Logs = no-op for v1 (FlashCat ingest doesn't accept Logs yet): the iOS podspec links
FlashcatLogs-NoOp; the API compiles but sends nothing. No feature/public-API removal.iOS integration files are renamed to the plugin name (podspec + Swift package dir/name/product/target) — Flutter resolves iOS plugins by name, so this is required, not branding. (This accounts for the 15 renames in the diff.)
Fixes found during on-device verification
cloud.flashcat:dd-sdk-android-core:0.4.1's Gradle module metadata misfilesokhttpunder the test-fixtures variant →ClassNotFoundException: okhttp3.Authenticatorat init. Worked around by declaringokhttp:4.9.0in the plugin. Proper fix is upstream infc-sdk-android(publish okhttp as anapidep of the core runtime variant), after which the workaround can be removed.Verification
flutter pub publish --dry-run→ 0 warnings on both packages. End-to-end against the staging intake: Android (emulator) RUM batch sent successfully; iOS (simulator, pure SPM) RUM batch HTTP 202 accepted.Follow-ups (not blocking)
fc-sdk-android: fix okhttp module-metadata scope, then drop the plugin-side workaround.fc-sdk-ios:FlashcatLogs/FlashcatLogs-NoOpmissing from CocoaPods trunk (needed for the CocoaPods integration path).flashcat_*names.🤖 Generated with Claude Code