-
Notifications
You must be signed in to change notification settings - Fork 7
/
CHANGES.txt
311 lines (238 loc) · 13.7 KB
/
CHANGES.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
5.0.1 (Nov 22, 2024)
- Optimized persistence of impressions deduplication cache.
5.0.0 (Nov 1, 2024)
- Added support for targeting rules based on large segments.
- BREAKING: Dropped support for Split Proxy below version 5.9.0. The SDK now requires Split Proxy 5.9.0 or above.
4.2.2 (Sep 25, 2024)
- Fixed issue in updating archived feature flags when using encryption.
4.2.1 (Sep 10, 2024)
- Removed usage of Math.toIntExact to avoid issues with certain build configurations.
4.2.0 (Jun 28, 2024)
- Added certificate pinning functionality. This feature allows you to pin a certificate to the SDK, ensuring that the SDK only communicates with servers that present this certificate. Read more in our documentation.
4.1.1 (Jun 6, 2024)
- Fixed concurrency issue when building URLs.
4.1.0 (Apr 30, 2024)
- Added support for targeting rules based on semantic versions (https://semver.org/).
- Added special impression label "targeting rule type unsupported by sdk" when the matcher type is not supported by the SDK, which returns 'control' treatment.
- Added memory improvements to impressions deduplication logic.
4.0.1 (Mar 27, 2024)
- Updated impressions deduplication to apply across sessions.
4.0.0 (Jan 4, 2024)
- BREAKING: Updated minSdk version to 19.
- BREAKING: Changed proxyAuthenticator configuration type from okhttp3.Authenticator to SplitAuthenticator.
- BREAKING: build methods in SplitFactoryBuilder now throw a unified checked exception: SplitInstantiationException.
- Removed OkHttp.
- Updated Room to 2.4.3
- Updated Gson to 2.10.1
- Updated Snake YAML to 2.2
- Updated Play Services Base to 18.2.0
- Updated Guava to 32.1.3-android and now it's only used in test & androidTest configurations.
3.5.0 (Nov 16, 2023)
- Added `prefix` configuration parameter, which allows to use a prefix when naming the SDK storage. Use this when using multiple `SplitFactory` instances with the same SDK key.
3.4.0 (Oct 31, 2023)
- Added support for Flag Sets on the SDK, which enables grouping feature flags and interacting with the group rather than individually (more details in our documentation):
- Added new variations of the get treatment methods to support evaluating flags in given flag set/s.
- getTreatmentsByFlagSet and getTreatmentsByFlagSets
- getTreatmentWithConfigByFlagSets and getTreatmentsWithConfigByFlagSets
- Added a new optional Split Filter configuration option. This allows the SDK and Split services to only synchronize the flags in the specified flag sets, avoiding unused or unwanted flags from being synced on the SDK instance, bringing all the benefits from a reduced payload.
- Updated the following SDK manager method to expose flag sets on flag views:
- Added `defaultTreatment` property to the `SplitView` object returned by the `split` and `splits` methods of the SDK manager.
3.3.0 (Jul 18, 2023)
- Improved streaming architecture implementation to apply feature flag updates from the notification received which is now enhanced, improving efficiency and reliability of the whole update system.
- Added logic to do a full check of feature flags immediately when the app comes back to foreground, limited to once per minute.
3.2.2 (Jun 7, 2023)
- Refactored cipher creation to avoid NPE scenarios.
3.2.1 (May 15, 2023)
- Updated terminology on the SDKs codebase to be more aligned with current standard without causing a breaking change.
The core change is the term split for feature flag on things like logs and Javadoc comments.
3.2.0 (Apr 25, 2023)
- Added the ability to encrypt the local cache of rollout plans via encryptionEnabled config.
3.1.0 (Mar 1, 2023)
- Changed default connection timeout to 10 seconds.
- Updated Lifecycle library to 2.5.1.
- Added additional ProGuard rules.
- Downgrade Gson to 2.9.1 due to issues in older API versions.
3.0.0 (Jan 17, 2023)
- BREAKING CHANGE: Minimum compileSdk is 31
- BREAKING CHANGE: Removed deprecated method SplitFactory.isReady()
- BREAKING CHANGE: in SplitClientConfig methods:
- Removed SplitClientConfig.numThreadsForSegmentFetch()
- Removed SplitClientConfig.metricsRefreshRate()
- Removed SplitClientConfig.debugEnabled()
- Removed SplitClientConfig.waitBeforeShutdown()
- Removed SplitClientConfig.authRetryBackoffBase()
- Removed SplitClientConfig.streamingReconnectBackoffBase()
- Removed SplitClientConfig.uniqueKeysRefreshRate()
- Removed SplitClientConfig.set_impressionsChunkSize(long _impressionsChunkSize)
- Removed SplitClientConfig.Builder metricsRefreshRate(int seconds)
- Removed SplitClientConfig.Builder enableDebug()
- Removed SplitClientConfig.Builder waitBeforeShutdown(int waitTime)
- Removed SplitClientConfig.Builder authRetryBackoffBase(int authRetryBackoffBase)
- Removed SplitClientConfig.Builder streamingReconnectBackoffBase(int streamingReconnectBackoffBase)
- Renamed SplitClientConfig.sychronizeInBackground to SplitClientConfig.synchronizeInBackground()
- Renamed SplitClientConfig.sychronizeInBackgroundPeriod to SplitClientConfig.synchronizeInBackgroundPeriod()
- Updated WorkManager to 2.7.1
- Updated Gson to 2.10
- Updated Guava to 31.1-android
- Added user consent feature to allow delaying or disabling the data tracking from SDK until user consent is explicitly granted or declined. Read more in our docs.
2.13.1 (Nov 7, 2022)
- Added improvements in proxy.
- Added retry logic for impressions and events.
- Added syncEnabled configuration parameter.
2.13.0 (Oct 4, 2022)
- Added a new impressions mode for the SDK called NONE, to be used in factory when there is no desire to capture impressions on an SDK factory to feed Split's analytics engine. Running NONE mode, the SDK will only capture unique keys evaluated for a particular feature flag instead of full blown impressions.
- Fixed issue when scheduling new tasks.
- Fixed issue in feature flag background synchronization when using feature flag filter.
2.12.2 (Sep 15, 2022)
- Fixed issue in telemetry for latencies.
2.12.1 (Sep 9, 2022)
- Fixed issue in lifecycle manager component.
- Fixed issue in storages when using different API keys.
2.12.0 (Jul 20, 2022)
- Added logLevel configuration. This allows for more granularity when choosing what will be logged.
- Deprecated enableDebug configuration.
2.11.0 (Jun 24, 2022)
- Added a new config option to control the tasks that listen or poll for updates on feature flags and segments, via the new config syncEnabled . Running online Split will always pull the most recent updates upon initialization, this only affects updates fetching on a running instance. Useful when a consistent session experience is a must or to save resources when updates are not being used.
2.10.3 (Jun 10, 2022)
- Fixed issue that prevented feature flag list from being updated after modifying sync config.
2.10.2 (May 9, 2022)
- Added support for resumed streaming event.
- SplitClient instances are tracked by key.
- Improved logging and error handling when encountering incorrect format in feature flags file for localhost mode.
2.10.1 (Apr 25, 2022)
- Updated the synchronization flow to be more reliable in the event of an edge case generating delay in cache purge propagation, keeping the SDK cache properly synced.
- Fixed issue that converted certain values in event properties to scientific notation.
2.10.0 (Apr 6, 2022)
- Added support for multiple clients: Factories can now create multiple clients with different keys while reusing the common tasks, data and behavior. Read more in our Android SDK docs.
2.9.1 (Feb 24, 2022)
- Updated feature flag initialization workflow to reduce latencies.
- Removed sizeInBytes property in Events.
2.9.0 (Jan 24, 2022)
- Updated SDK telemetry storage, metrics and updater to be more effective and send less often.
- Updated deprecated dependencies (Guava & Gson).
- Added exception handling for SplitClient and SplitManager methods.
2.8.1: (Nov 24, 2021)
- Added support for a user key containing white spaces.
2.8.0: (Nov 19, 2021)
- Added Attribute binding feature to allow to optionally keep user attributes loaded within the SDK, along with the user ID, for easier usage when requesting flag.
- Updated localhost mode by converting yaml and properties config to feature flag rollout rules.
2.7.4: (Oct 28, 2021)
- Added support for a user key containing a slash character.
2.7.3: (Oct 4, 2021)
- Updated streaming logic to implement the newest versions of our Streaming services, including:
- Integration with the V2 of the Auth service, connecting to the new channels and applying the received connection delay.
- Implemented handling of the notification types for MySegmentsV2 (keyList, bounded and unbounded)
- New control notification for environment scoped streaming reset.
- Improved initialization performance by removing hashing in initial database name generation.
2.7.2: (Jun 14, 2021)
- Added impressions dedupe logic to avoid sending duplicated impressions:
- Added `OPTIMIZED` and `DEBUG` modes in order to enable/disable how impressions are going to be sent into Split servers:
- `OPTIMIZED`: will send unique impressions in a timeframe in order to reduce how many times impressions are posted to Split.
- `DEBUG`: will send every impression generated to Split.
- Fixed issue when closing streaming connection
2.7.1: (May 14, 2021)
- Added telemetry headers to SSE connection
2.7.0: (Abr 21, 2021)
- Added SDK Update event to notify when feature flags or segments have changed
2.6.10: (Mar 26, 2021)
- Fixed issue when using two factories with api keys from different environments
2.6.9: (Feb 10, 2021)
- Updated legacy storage data migration logic to be more efficient and run only if enabled
- Updated storage cache processing to improve performance
- Fixed encoding issue with unsafe chars in user key
2.6.8: (Jan 08, 2021)
- Added clean up database task to removed old cache entries
2.6.7: (Nov 17, 2020)
- Fixed issue when adding and removing lifecycle observer in LifecycleManager
- Updated streaming error handling logic
- Fixed backoff algorithm issue
2.6.6: (Ago 03, 2020)
- Added `syncConfig.addFilter()` method to SDK configuration to pass a list of filters for the feature flags that will be downloaded. Read more in our docs.
2.6.5: (Jul 23, 2020)
- Improved logic to refresh streaming token
2.6.4: (Jul 13, 2020)
- Fixed issue while observing background sync state when instantiating SDK in a background thread
2.6.3: (Jul 01, 2020)
- Fixed issue on initial cache loading
- Fixed issue when updating many impressions and events non sent due to bad connection.
2.6.2: (Jun 17, 2020)
- Added proxy support with base authentication
- Fixed read and connection timeout issues
- Added experimental SSL settings for development
- Added support for TLSv1.2 in Android 4.x
- Added proguard rules to fix issues with streaming dtos
- Fixed Interruption handling on workers
2.6.1: (Jun 2, 2020)
- Added expiration policy to feature flag cache
- Replaced HttpUrlConnection by OkHttp
- Fixed some issues on streaming while host app in background
- Fixed issue when retrying sending impressions and events
2.6.0: (Apr 30, 2020)
- Added support for the new streaming architecture. When enabled, the SDK will not poll for updates but instead receive notifications every time there's a change in your environments, allowing to process those much quicker. If disabled (default) or in the event of an issue, the SDK will fallback to the known polling mechanism to provide a seamless experience.
2.5.0: (Mar 13, 2020)
- Replaced disk files by Room to handle cache data
- Improved sync architecture
- Improved thread management
- Fixed isReady flag
- Removed some unused tags in manifest
2.4.5: (Oct 8, 2019)
- Fixed concurrency issue when parsing events from disk
2.4.4: (Sep 26, 2019)
- Fixed issue when load events from disk
2.4.3: (Sep 20, 2019)
- Updated SDK readiness from cache
- Updated thread pausing on background
2.4.2: (Sep 5, 2019)
- Updated file cache to use JSONL format
- Bugfixing - minor issue when saving tracks and impressions on disk
2.4.1: (Jul 26, 2019)
- Replaced http client by HttpURLConnection
- Updated file cache to split in chunks when saving to disk
2.4.0: (Jun 28, 2019)
- Added validation for multiple factory instantiation
- Added validation for Traffic types
- Added validation for Split while evaluating
- Updated code to retrieve Split SDK version
2.3.2: (Jun 24, 2019)
- Bugfixing - issue with sdk ready event when no internet connection
- Added integration tests
2.3.1: (Jun 14, 2019)
- Bugfixing - concurrence issue when writing feature flag to disk
- Added missing UTF-8 support to some json parsing
2.3.0: (May 24, 2019)
- Added track event properties
2.2.1: (May 9, 2019)
- Bugfixing - issue when device in airplane mode
2.2.0: (May 1, 2019)
- Added Dynamic Configs feature
2.0.1: (Mar 14, 2019)
- Updated file cache to use different folders for api key to store cached data
2.0.0: (Feb 11, 2019)
- Added several validations for passed parameters
1.2.3: (Jan 21, 2019)
- Storing feature flags, segments, impressions and tracks on disk only when app goes to background or close
- Bugfixing - issue when traffic allocation equals to zero
1.2.2: (Oct 1, 2018)
- Fixed issue fetching feature flag changes
1.2.1: (Sep 27, 2018)
- Added proguard rules file
1.2.0: (Sep 24, 2018)
- Added Split Manager feature
1.1.0: (Aug 28, 2018)
- Added get treatments feature
1.0.2: (Aug 15, 2018)
- Added impression listener
1.0.1: (Jul 19, 2018)
- Bugfixing - more defensive checks for possible corrupt caches
1.0.0: (Jun 29, 2018)
- Added .Track feature
0.9.4: (May 24, 2018)
- Bugfixing - event SDK_READY not reachable when segments were not linked to a feature flag definition
0.9.3: (Apr 16, 2018)
- Added Events listener. Available events: SDK_READY, SDK_READY_TIMEOUT
0.9.2: (Mar 19, 2018)
- Added first load from cache
0.9.1: (Feb 20, 2018)
- Added clear log messages
0.9.0: (Feb 19, 2018)
- Initial Release