Skip to content

Commit e8754f5

Browse files
Merge pull request #183 from splitio/development
Release v1.2.1
2 parents 61f58fb + 97d0e42 commit e8754f5

File tree

54 files changed

+689
-114
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

54 files changed

+689
-114
lines changed
Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
name: Update License Year
1+
name: Update Notice Year
22

33
on:
44
schedule:
@@ -23,23 +23,23 @@ jobs:
2323
- name: Set Previous Year
2424
run: "echo PREVIOUS=$(($CURRENT-1)) >> $GITHUB_ENV"
2525

26-
- name: Update LICENSE
26+
- name: Update NOTICE
2727
uses: jacobtomlinson/gha-find-replace@v3
2828
with:
2929
find: ${{ env.PREVIOUS }}
3030
replace: ${{ env.CURRENT }}
31-
include: "**/LICENSE"
31+
include: "NOTICE"
3232
regex: false
3333

3434
- name: Commit files
3535
run: |
3636
git config user.name 'github-actions[bot]'
3737
git config user.email 'github-actions[bot]@users.noreply.github.com'
38-
git commit -m "Updated License Year" -a
38+
git commit -m "Updated Notice Year" -a
3939
4040
- name: Create Pull Request
4141
uses: peter-evans/create-pull-request@v5
4242
with:
4343
token: ${{ secrets.GITHUB_TOKEN }}
44-
title: Update License Year
45-
branch: update-license
44+
title: Update Notice Year
45+
branch: update-notice

CONTRIBUTORS-GUIDE.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,10 @@ Run unit tests in Android & iOS packages with `flutter test`.
2626

2727
Run unit tests in Web package with `flutter test --platform chrome`.
2828

29+
### Linting and other useful checks
30+
31+
Run the static code analyzer (`flutter analyze`) to fix any errors, warnings, lints, or formatting issues.
32+
2933
# Contact
3034

3135
If you have any other questions or need to contact us directly in a private manner send us a note at sdks@split.io

NOTICE

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
Harness Feature Management Flutter SDK Copyright 2024-2026 Harness Inc.
2+
3+
This product includes software developed at Harness Inc. (https://harness.io/).
4+
5+
This product includes software originally developed by Split Software, Inc. (https://www.split.io/). Copyright 2022-2024 Split Software, Inc.

splitio/CHANGELOG.md

Lines changed: 18 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,26 @@
1+
# 1.2.1 (Jan 28, 2026)
2+
* Bug fix: corrected asset path for loading the Browser SDK.
3+
4+
# 1.2.1-rc.1 (Jan 28, 2026)
5+
6+
# 1.2.0 (Jan 28, 2026)
7+
* Added new configuration for Fallback Treatments, which allows setting a treatment value and optional config to be returned in place of "control", either globally or by flag. Read more in our docs.
8+
* Updated Android SDK to `5.4.2`, iOS SDK to `3.6.0`, and Browser SDK to `1.6.1`
9+
10+
# 1.2.0-rc.1 (Jan 28, 2026)
11+
112
# 1.1.0 (Jan 16, 2026)
2-
- Added Web support via the `splitio_web` package, the Web implementation of `splitio` based on the Split Browser SDK v1.6.0.
13+
* Added Web support via the `splitio_web` package, the Web implementation of `splitio` based on the Split Browser SDK `1.6.0`.
314

415
# 1.1.0-rc.1 (Jan 15, 2026)
516

617
# 1.0.0 (Aug 14, 2025)
7-
- Updated Android SDK to `5.3.1` & iOS SDK to `3.3.2`
8-
- Added support for rule-based segments. These segments determine membership at runtime by evaluating their configured rules against the user attributes provided to the SDK.
9-
- Added support for feature flag prerequisites. This allows customers to define dependency conditions between flags, which are evaluated before any allowlists or targeting rules.
10-
- Added two new configuration options to control the behavior of the persisted rollout plan cache. Use `rolloutCacheConfiguration` in the config.
11-
- Added a new optional argument to the client `getTreatment` methods to allow passing additional evaluation options, such as a map of properties to append to the generated impressions sent to Split backend. Read more in our docs.
12-
- Added support for the new impressions tracking toggle available on feature flags, both respecting the setting and including the new field being returned on SplitView type objects. Read more in our docs.
18+
* Updated Android SDK to `5.3.1` & iOS SDK to `3.3.2`
19+
* Added support for rule-based segments. These segments determine membership at runtime by evaluating their configured rules against the user attributes provided to the SDK.
20+
* Added support for feature flag prerequisites. This allows customers to define dependency conditions between flags, which are evaluated before any allowlists or targeting rules.
21+
* Added two new configuration options to control the behavior of the persisted rollout plan cache. Use `rolloutCacheConfiguration` in the config.
22+
* Added a new optional argument to the client `getTreatment` methods to allow passing additional evaluation options, such as a map of properties to append to the generated impressions sent to Split backend. Read more in our docs.
23+
* Added support for the new impressions tracking toggle available on feature flags, both respecting the setting and including the new field being returned on SplitView type objects. Read more in our docs.
1324

1425
# 1.0.0-rc.1 (Aug 14, 2025)
1526

splitio/analysis_options.yaml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,3 +2,7 @@ include: package:flutter_lints/flutter.yaml
22

33
# Additional information about this file can be found at
44
# https://dart.dev/guides/language/analysis-options
5+
6+
linter:
7+
rules:
8+
- public_member_api_docs

splitio/example/ios/Podfile.lock

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
PODS:
22
- Flutter (1.0.0)
3-
- Split (3.3.2)
4-
- splitio_ios (0.8.0):
3+
- Split (3.6.0)
4+
- splitio_ios (0.9.0):
55
- Flutter
6-
- Split (~> 3.3.2)
6+
- Split (~> 3.6.0)
77

88
DEPENDENCIES:
99
- Flutter (from `Flutter`)
@@ -20,9 +20,9 @@ EXTERNAL SOURCES:
2020
:path: ".symlinks/plugins/splitio_ios/ios"
2121

2222
SPEC CHECKSUMS:
23-
Flutter: e0871f40cf51350855a761d2e70bf5af5b9b5de7
24-
Split: 0d4962a6c15180e1857c1a3753e1ae9c91a6150b
25-
splitio_ios: 438ad21d0dfe467670f8b9508773b77b16a71d6b
23+
Flutter: cabc95a1d2626b1b06e7179b784ebcf0c0cde467
24+
Split: 1e2176aacd6421029bea41413401389d86e3d50a
25+
splitio_ios: ad4f484a6c478bf7285e417ea8252371f66b54ff
2626

2727
PODFILE CHECKSUM: 4e8f8b2be68aeea4c0d5beb6ff1e79fface1d048
2828

splitio/example/lib/main.dart

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
// ignore_for_file: avoid_print
2+
13
import 'package:flutter/material.dart';
24
import 'package:splitio/splitio.dart';
35

splitio/example/pubspec.lock

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -171,39 +171,39 @@ packages:
171171
path: ".."
172172
relative: true
173173
source: path
174-
version: "1.1.0"
174+
version: "1.2.1"
175175
splitio_android:
176176
dependency: transitive
177177
description:
178178
name: splitio_android
179-
sha256: "344bf82de6694cffb8dd80a96ee734e31bb838d2b4693fb046e0fc98e31512ca"
179+
sha256: "7c0e5ad4ccdf4990120a7a6a2f067d274c107ab9830fd20b1d54bf3f0392ac02"
180180
url: "https://pub.dev"
181181
source: hosted
182-
version: "1.0.0"
182+
version: "1.1.0"
183183
splitio_ios:
184184
dependency: transitive
185185
description:
186186
name: splitio_ios
187-
sha256: "1c078bc49bf7b30df6ca50accb6a9eecf592ec607e20e77b1c6ecdabc7a44dc9"
187+
sha256: c15cd7dfd195df107ae07c030fd742dcabb0610c769466d6d7e3890d22a91bc2
188188
url: "https://pub.dev"
189189
source: hosted
190-
version: "1.0.0"
190+
version: "1.1.0"
191191
splitio_platform_interface:
192192
dependency: transitive
193193
description:
194194
name: splitio_platform_interface
195-
sha256: "8bcb1cab9f5fffb7b79cfeeaf6c80d82f8ede55c8d6ca7578ec78653f3f9e499"
195+
sha256: faa022814c7b2fc7b5f68b80b088e1638e06783419075176d1adadcf787897db
196196
url: "https://pub.dev"
197197
source: hosted
198-
version: "2.0.0"
198+
version: "2.1.0"
199199
splitio_web:
200200
dependency: transitive
201201
description:
202202
name: splitio_web
203-
sha256: "29dc1a55d80c026afb0f0bad378c81e44ee1e9da5faaf9e931f35b5dfd3ff5f3"
203+
sha256: "656cf71d4ec900cf1ad1b9eae20bbabe797de5c99f49584672161de9fe133afb"
204204
url: "https://pub.dev"
205205
source: hosted
206-
version: "1.0.0"
206+
version: "1.1.1"
207207
stack_trace:
208208
dependency: transitive
209209
description:

splitio/lib/split_client.dart

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import 'package:splitio_platform_interface/splitio_platform_interface.dart';
22

3+
/// Abstract class representing a Split client.
34
abstract class SplitClient {
45
/// Performs an evaluation for the [featureFlagName] feature flag.
56
///
@@ -187,11 +188,13 @@ abstract class SplitClient {
187188
Future<SplitClient> whenTimeout();
188189
}
189190

191+
/// Default implementation of the Split client.
190192
class DefaultSplitClient implements SplitClient {
191193
final SplitioPlatform _platform;
192194
final String _matchingKey;
193195
final String? _bucketingKey;
194196

197+
/// Creates a new instance of the Split client.
195198
DefaultSplitClient(this._platform, this._matchingKey, this._bucketingKey);
196199

197200
@override

splitio/lib/splitio.dart

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,13 @@ export 'package:splitio_platform_interface/split_view.dart';
1212
export 'package:splitio_platform_interface/split_certificate_pinning_configuration.dart';
1313
export 'package:splitio_platform_interface/split_evaluation_options.dart';
1414
export 'package:splitio_platform_interface/split_rollout_cache_configuration.dart';
15+
export 'package:splitio_platform_interface/split_fallback_treatment.dart';
16+
export 'package:splitio_platform_interface/split_fallback_treatments_configuration.dart';
1517

18+
/// Callback function type for client readiness events.
1619
typedef ClientReadinessCallback = void Function(SplitClient splitClient);
1720

21+
/// Main class for interacting with the Split Flutter SDK.
1822
class Splitio {
1923
final String _sdkKey;
2024

@@ -77,7 +81,11 @@ class Splitio {
7781
ClientReadinessCallback? onReadyFromCache,
7882
ClientReadinessCallback? onUpdated,
7983
ClientReadinessCallback? onTimeout}) {
80-
String? key = matchingKey ?? _defaultMatchingKey;
84+
String key = matchingKey ?? _defaultMatchingKey;
85+
if (matchingKey == null && bucketingKey == null) {
86+
bucketingKey = _defaultBucketingKey;
87+
}
88+
8189
_platform.getClient(matchingKey: key, bucketingKey: bucketingKey);
8290

8391
var client = DefaultSplitClient(_platform, key, bucketingKey);
@@ -108,12 +116,14 @@ class Splitio {
108116
return client;
109117
}
110118

119+
/// Gets the list of all feature flag names.
111120
Future<List<String>> splitNames() async {
112121
List<String> splitNames = await _platform.splitNames();
113122

114123
return splitNames;
115124
}
116125

126+
/// Gets the list of all feature flag views.
117127
Future<List<SplitView>> splits() async {
118128
return _platform.splits();
119129
}
@@ -124,14 +134,22 @@ class Splitio {
124134
return _platform.impressionsStream();
125135
}
126136

137+
/// Gets a specific feature flag view.
138+
///
139+
/// Returns null if the provided feature flag name is not found.
127140
Future<SplitView?> split(String splitName) async {
128141
return _platform.split(splitName: splitName);
129142
}
130143

144+
/// Gets the user consent status.
131145
Future<UserConsent> getUserConsent() async {
132146
return _platform.getUserConsent();
133147
}
134148

149+
/// Sets the user consent status.
150+
///
151+
/// [enabled] is a boolean that enables (`UserConsent.granted`)
152+
/// or disables (`UserConsent.declined`) data collection.
135153
Future<void> setUserConsent(bool enabled) async {
136154
return _platform.setUserConsent(enabled);
137155
}

0 commit comments

Comments
 (0)