Skip to content

Commit c297110

Browse files
chore(main): release 4.20.0 (#319)
🤖 I have created a release *beep* *boop* --- ## [4.20.0](4.19.0...4.20.0) (2026-06-29) ### Features * Add experimental support for data-saving mode (FDv2). ([#314](#314)) ([c2f9216](c2f9216)) * Update launchdarkly_common_client to version 1.14.0 ([#320](#320)) ([2144c78](2144c78)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). <!-- CURSOR_SUMMARY --> --- > [!NOTE] > **Medium Risk** > Publishes a minor SDK release that documents an experimental FDv2 flag-data path and bumps the shared common client; opt-in only, but connection-mode behavior affects how flag data is fetched when enabled. > > **Overview** > Cuts **4.20.0** of `launchdarkly_flutter_client_sdk` via Release Please: package version, `sdkVersion` in `ld_client.dart`, `.release-please-manifest.json`, and example app dependencies move from **4.19.0** to **4.20.0**. > > The new **CHANGELOG** entry for 4.20.0 describes what ships in this release: **Early Access FDv2** (data-saving mode) by setting `dataSystem: DataSystemConfig()` on `LDConfig`, with lifecycle-driven connection behavior and runtime control via `setConnectionMode` / `initialConnectionMode`, while apps without `dataSystem` stay on FDv1. It also notes the **`launchdarkly_common_client` 1.14.0** dependency alignment reflected in `pubspec.yaml`. > > <sup>Reviewed by [Cursor Bugbot](https://cursor.com/bugbot) for commit e14d43c. Bugbot is set up for automated code reviews on this repo. Configure [here](https://www.cursor.com/dashboard/bugbot).</sup> <!-- /CURSOR_SUMMARY --> --------- Co-authored-by: Ryan Lamb <4955475+kinyoklion@users.noreply.github.com>
1 parent b2a9c12 commit c297110

6 files changed

Lines changed: 54 additions & 5 deletions

File tree

.release-please-manifest.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
{"packages/common":"1.8.1","packages/common_client":"1.14.0","packages/event_source_client":"3.0.0","packages/flutter_client_sdk":"4.19.0"}
1+
{"packages/common":"1.8.1","packages/common_client":"1.14.0","packages/event_source_client":"3.0.0","packages/flutter_client_sdk":"4.20.0"}

packages/flutter_client_sdk/CHANGELOG.md

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,55 @@
22

33
All notable changes to the LaunchDarkly Flutter client-side SDK will be documented in this file. This project adheres to [Semantic Versioning](https://semver.org).
44

5+
## [4.20.0](https://github.com/launchdarkly/flutter-client-sdk/compare/4.19.0...4.20.0) (2026-06-29)
6+
7+
8+
### Features
9+
10+
* Add experimental support for data-saving mode (FDv2). ([#314](https://github.com/launchdarkly/flutter-client-sdk/issues/314)) ([c2f9216](https://github.com/launchdarkly/flutter-client-sdk/commit/c2f9216b3e7dc30f1b0f00c18b680aa32d41a91d))
11+
* Update launchdarkly_common_client to version 1.14.0 ([#320](https://github.com/launchdarkly/flutter-client-sdk/issues/320)) ([2144c78](https://github.com/launchdarkly/flutter-client-sdk/commit/2144c785f5050cbabd421478219f4b5cd7a935a1))
12+
* Add Early Access support for the FDv2 data system (data saving mode).
13+
14+
The Flutter SDK now supports the **FDv2 data system** in Early Access. Opt in by providing a `DataSystemConfig` when you build your `LDConfig`:
15+
16+
```dart
17+
final config = LDConfig(
18+
'<your-mobile-key>',
19+
AutoEnvAttributes.enabled,
20+
// Providing a data system configuration (even an empty one) opts the
21+
// SDK into the FDv2 data acquisition protocol.
22+
dataSystem: const DataSystemConfig(),
23+
);
24+
```
25+
26+
Applications that do not provide a `dataSystem` continue to use the existing (FDv1) data sources, so default behavior is unchanged.
27+
28+
By default the SDK streams in the foreground (with polling fallback) and switches to a reduced-rate background mode when the app is backgrounded, following the application lifecycle and network availability automatically. You can turn that automatic switching off through `ApplicationEvents`.
29+
30+
Control the connection mode at runtime with `setConnectionMode`, which takes a `ConnectionModeId` (`streaming`, `polling`, `background`, or `offline`). Setting a mode is a sticky override that suppresses automatic switching; pass no argument to clear it and resume automatic resolution:
31+
32+
```dart
33+
// Force a specific mode (sticky; suppresses automatic switching).
34+
client.setConnectionMode(ConnectionModeId.polling);
35+
36+
// Clear the override and resume automatic mode resolution.
37+
client.setConnectionMode();
38+
```
39+
40+
To start in a specific mode, set `DataSystemConfig.initialConnectionMode` — equivalent to calling `setConnectionMode` with that mode immediately after the client is created:
41+
42+
```dart
43+
final config = LDConfig(
44+
'<your-mobile-key>',
45+
AutoEnvAttributes.enabled,
46+
dataSystem: const DataSystemConfig(
47+
initialConnectionMode: ConnectionModeId.polling,
48+
),
49+
);
50+
```
51+
52+
> This feature is not stable, and not subject to any backwards compatibility guarantees or semantic versioning. It is in early access. If you want access to this feature, please join the EAP. See https://launchdarkly.com/docs/sdk/features/data-saving-mode.
53+
554
## [4.19.0](https://github.com/launchdarkly/flutter-client-sdk/compare/4.18.1...4.19.0) (2026-06-10)
655

756

packages/flutter_client_sdk/example/pubspec.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ dependencies:
3333
# This defaults to a published package. Using `flutter pub get` will get the package from pub.dev
3434
# If you run `melos bs` in the root of the repository, then it will be linked to the local version
3535
# instead.
36-
launchdarkly_flutter_client_sdk: 4.19.0 # x-release-please-version
36+
launchdarkly_flutter_client_sdk: 4.20.0 # x-release-please-version
3737

3838
# The following adds the Cupertino Icons font to your application.
3939
# Use with the CupertinoIcons class for iOS style icons.

packages/flutter_client_sdk/example_fdv2/pubspec.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ dependencies:
1313
# This defaults to a published package. Using `flutter pub get` will get the
1414
# package from pub.dev. If you run `melos bs` in the root of the repository,
1515
# then it will be linked to the local version instead.
16-
launchdarkly_flutter_client_sdk: 4.19.0 # x-release-please-version
16+
launchdarkly_flutter_client_sdk: 4.20.0 # x-release-please-version
1717
cupertino_icons: ^1.0.6
1818

1919
dev_dependencies:

packages/flutter_client_sdk/lib/src/ld_client.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import 'platform_env_reporter.dart';
99
import 'plugin.dart';
1010

1111
const sdkName = 'FlutterClientSdk';
12-
const sdkVersion = '4.19.0'; // x-release-please-version
12+
const sdkVersion = '4.20.0'; // x-release-please-version
1313

1414
/// The main interface for the LaunchDarkly Flutter SDK.
1515
///

packages/flutter_client_sdk/pubspec.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
name: launchdarkly_flutter_client_sdk
22
description: Official Flutter client-side SDK for LaunchDarkly. Get started using LaunchDarkly today!
3-
version: 4.19.0
3+
version: 4.20.0
44
homepage: https://github.com/launchdarkly/flutter-client-sdk
55
repository: https://github.com/launchdarkly/flutter-client-sdk/tree/main/packages/flutter_client_sdk
66

0 commit comments

Comments
 (0)