Skip to content

Figure out how to trim Dart SDK size #1139

@markphelps

Description

@markphelps

We are again running into the issue of the Dart SDK being too large to publish to pub.dev:

Message from server: Uncompressed package archive is too large (size > 104857600).

Here is the current layout:

Publishing flipt_client 1.1.0 to [https://pub.dev:](https://pub.dev/)
├── LICENSE (1 KB)
├── README.md (12 KB)
├── analysis_options.yaml (1 KB)
├── android
│   ├── build.gradle (<1 KB)
│   ├── settings.gradle (<1 KB)
│   └── src
│       └── main
│           ├── jniLibs
│           │   └── arm64-v8a
│           │       └── libfliptengine.so (12 MB)
│           └── kotlin
│               └── io
│                   └── flipt
│                       └── client
│                           └── none.kt (<1 KB)
├── build.yaml (<1 KB)
├── ffi
│   └── flipt_engine.h (2 KB)
├── ffigen.yaml (<1 KB)
├── ios
│   ├── Classes
│   │   ├── FliptClient.h (<1 KB)
│   │   └── FliptClient.m (<1 KB)
│   ├── FliptEngineFFI.xcframework
│   │   ├── Info.plist (1 KB)
│   │   ├── ios-arm64
│   │   │   ├── Headers
│   │   │   │   ├── flipt_engine.h (2 KB)
│   │   │   │   └── module.modulemap (<1 KB)
│   │   │   └── libfliptengine.a (20 MB)
│   │   └── ios-arm64-simulator
│   │       ├── Headers
│   │       │   ├── flipt_engine.h (2 KB)
│   │       │   └── module.modulemap (<1 KB)
│   │       └── libfliptengine.a (20 MB)
│   └── flipt_client.podspec (<1 KB)
├── lib
│   ├── flipt_client.dart (<1 KB)
│   └── src
│       ├── errors.dart (<1 KB)
│       ├── ffi
│       │   ├── bindings.dart (9 KB)
│       │   ├── loader.dart (2 KB)
│       │   ├── loader_flutter.dart (1 KB)
│       │   └── loader_io.dart (<1 KB)
│       ├── flipt_client.dart (4 KB)
│       ├── models.dart (15 KB)
│       ├── models.g.dart (9 KB)
│       └── plugin_registration.dart (<1 KB)
├── native
│   ├── darwin_aarch64
│   │   └── libfliptengine.dylib (9 MB)
│   ├── linux_aarch64
│   │   └── libfliptengine.so (15 MB)
│   ├── linux_x86_64
│   │   └── libfliptengine.so (15 MB)
│   └── windows_x86_64
│       └── fliptengine.dll (9 MB)
├── pubspec.yaml (1 KB)
└── test
    └── flipt_client_test.dart (5 KB)

Total compressed archive size: 39 MB.
Validating package...
Package validation found the following 2 potential issues:
* `dart analyze` found the following issue(s):
  Analyzing lib, pubspec.yaml...
  
  warning - lib/src/ffi/loader_io.dart:3:8 - Unused import: 'package:path/path.dart'. Try removing the import directive. - unused_import
  warning - lib/src/flipt_client.dart:2:8 - Unused import: 'dart:io'. Try removing the import directive. - unused_import
  warning - lib/src/flipt_client.dart:7:8 - Unused import: 'package:path/path.dart'. Try removing the import directive. - unused_import
  warning - lib/src/models.g.dart:29:9 - The declaration '_$OptionsFromJson' isn[...]t:242:22 - The declaration '_$BatchEvaluationResponseToJson' isn't referenced. Try removing the declaration of '_$BatchEvaluationResponseToJson'. - unused_element
     info - lib/src/errors.dart:11:3 - Parameter 'message' could be a super parameter. Trying converting 'message' to a super parameter. - use_super_parameters
     info - lib/src/errors.dart:16:3 - Parameter 'message' could be a super parameter. Trying converting 'message' to a super parameter. - use_super_parameters
  
  10 issues found.
  
Message from server: Uncompressed package archive is too large (size > 104857600).

This is because we are packing the shared libs for the following architectures:

  • android (libfliptengine.so (12 MB))
  • ios arm64 (libfliptengine.a (20 MB))
  • ios arm64 simulator (libfliptengine.a (20 MB))
  • darwin arm64 (libfliptengine.dylib (9 MB))
  • linux arm64 (libfliptengine.so (15 MB))
  • linux x86_64 (libfliptengine.so (15 MB))
  • windows x86_64 (fliptengine.dll (9 MB))

I had already previously cut darwin x86_64 but it seems thats not enough anymore.. I'm thinking of cutting the simulator but that will make developing against this lib on iOS difficult.

Another other suggestions? This is a blocker as we cant publish to pub.dev until fixed

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    Status

    No status

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions