feat: split Dart SDK into platform-specific packages #1318
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
This PR splits the monolithic Dart SDK into 3 platform-specific packages to address pub.dev's 100MB size limit restriction that was preventing package publication.
Problem
The current single Dart SDK package bundles native libraries for all platforms (Android, iOS, Linux, macOS, Windows), resulting in a package size of 105MB+ which exceeds pub.dev's 100MB limit. This prevents the package from being published to pub.dev.
Solution
Split the SDK into 3 platform-specific packages:
flipt_client(v1.1.0): Desktop/server platforms (Linux, macOS, Windows) ~48MBflipt_client_android(v0.1.0): Android-specific package ~12MBflipt_client_ios(v0.1.0): iOS-specific package ~40MBChanges
Package Structure
flipt-client-dart-androidandflipt-client-dart-iosBase Package Updates
flipt_clientpackageBuild System Updates
package/ffi/sdks/dart.goto build 3 separate packagesRelease System Updates
DartAndroidSDKandDartiOSSDKclasses to release scriptsDocumentation
Benefits
✅ All packages stay under pub.dev's 100MB limit
✅ Reduced download size for users (only get libraries for their platform)
✅ Maintains same API across all packages
✅ Allows independent versioning and releases per platform
✅ No breaking changes for desktop/server users
Testing
flutter pub getMigration
flipt_clientflipt_client_androidflipt_client_iosFixes #1139