-
-
Notifications
You must be signed in to change notification settings - Fork 372
docs: Add documentation regarding HybridSDK target removal #7024
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -569,3 +569,29 @@ This is a wild idea, but we have to double check if using `canImport(SwiftLog)` | |
| Needs a POC to confirm this is possible | ||
|
|
||
| </details> | ||
|
|
||
| ## Remove HybridSDK target | ||
|
|
||
| Date: December 10, 2025 | ||
| Contributors: @itaybre, @philprime, @philipphofmann | ||
|
|
||
| Until v9.1.0, we maintained a separate variant of the SDK with additional public headers and APIs intended for downstream SDKs (React Native, Flutter, .NET, and our SwiftUI variant). This meant any change that affected our distribution system required maintaining at least one extra variant of the SDK, which increased the team's workload significantly: | ||
|
|
||
| - Extra linting jobs | ||
| - Additional integration tests | ||
| - More complex header management (Public, HybridPublic, modulemap) | ||
| - Additional SDK variants if we want to migrate CocoaPods to XCFrameworks | ||
|
|
||
| However, there is nothing stopping users from using these APIs. They could simply change their dependency to the HybridSDK variant and access any of the "internal" APIs, so the separation provided no real protection. | ||
|
|
||
| Given these drawbacks with no tangible benefits, we decided to remove the HybridSDK submodule and subspec, merging all APIs into the regular target. Moving forward, we will treat Hybrid SDKs as first-class citizens by: | ||
|
|
||
| - Exposing required APIs in a documented manner | ||
| - Avoiding breaking changes to these APIs in minor versions | ||
| - Using naming conventions or namespaces (TBD) to clearly distinguish internal APIs from user-facing ones, discouraging direct usage by end users | ||
|
|
||
| Steps: | ||
|
|
||
| 1. Consolidate Headers into the main target and remove `HybridSDK` subspec | ||
| 2. Update downstream SDKs | ||
| 3. Align on an API naming convention (ask other maintainers for input regarding what they need) | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Hmm, I don't have a strong preference - as long as we can call it from hybrids I don't think it matters much to us. perhaps I'd go for whatever the team feels more natural for cocoa
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I would not even mention it in the
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Yeah, I would try to avoid using
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. We've been using InternalSentrySdk for Android as well might make sense to align here
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Indeed, seems like a good oportunity to align |
||
Uh oh!
There was an error while loading. Please reload this page.