generated from splitio/.net-core-client
-
Notifications
You must be signed in to change notification settings - Fork 4
/
CHANGES.txt
275 lines (206 loc) · 11.8 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
CHANGES
7.10.0 (Oct 16, 2024)
- Added support for Redis Cluster
7.9.0 (Apr 30, 2024)
- Added support for targeting rules based on semantic versions (https://semver.org/).
- Fixed async methods for LocalhostClient.
7.8.3 (Apr 17, 2024)
- Fixed Sync over Async implementation.
- Added the logic to handle correctly when the SDK receives an unsupported Matcher type.
- Fixed NotificationManagerKeeper to start with publishers in both regions by default.
7.8.2 (Mar 25, 2024)
- Fixed streaming notification parser.
7.8.1 (Feb 7, 2024)
- Updated StackExchange.Redis dependecy to 2.6.122 fixing vulnerabilities. Issue ref: https://github.com/splitio/dotnet-client/issues/211.
- Fixed initialization fail if machine name contains non-ASCII characters. Issue ref: https://github.com/splitio/dotnet-client/issues/185.
7.8.0 (Jan 4, 2024)
- Added support for .NET 8.
- Improved localhost implementation to support polling to check if the file was updated.
- Fixed fallback to polling when Auth service is not available, affecting versions 7.5 to 7.7
7.7.0 (Nov 24, 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 Flag Sets 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.
- Note: Only applicable when the SDK is in charge of the rollout data synchronization. When not applicable, the SDK will log a warning on init.
- Updated the following SDK manager methods 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.
7.6.0 (Sep 29, 2023)
- Added ISplitClientAsync implementation which uses task-based asynchronous pattern, highly recommend using it in redis mode, with new methods exposed:
- GetTreatmentAsync
- GetTreatmentsAsync
- GetTreatmentWithConfigAsync
- GetTreatmentsWithConfigAsync
- TrackAsync
- DestroyAsync
- Improved LocalhostClient to better handle updates OnFileChanged event.
- Added SplitLogger implementations for Console, TextWriter and MicrosoftExtensionsLogging.
7.5.2 (Sep 14, 2023)
- Fixed Destroy mechanism when called before the SDK finishes the startup logic.
- Updated TasksManager to be sure that tasks are finishing correctly.
- Improved log messages avoiding "The collection has been disposed. Object name: 'BlockingCollection'"
7.5.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.
7.4.3 (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 IntelliSense comments.
7.4.2 (Apr 26, 2023)
- Fixed localhost mode to order conditions and evaluate correctly.
7.4.1 (Apr 18, 2023)
- Fixed log level for Http Request statuses.
7.4.0 (Apr 13, 2023)
- Added support to use a proxy different from the system environments.
7.3.0 (Mar 13, 2023)
- Added retries with backoff when the sdk tries to connect to the Streaming service and it is not available.
- Added support for .NET 7.
- Added redis pool connections.
- Updated the way that the sdk write mtks in redis.
7.2.2 (Dec 12, 2022)
- Fixed unhealthy streaming connection when network conditions change.
- Added redis profiling.
- Updated StackExchange.Redis dependecy to 2.6.70.
7.2.1 (Oct 5, 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.
7.1.0 (Sep 19, 2022)
- Added support to receive a custom logger by configuration.
- Updated ImpressionManager logic to avoid count when the previous time calculated is 0 or null.
- Updated Newtonsoft.Json dependency to 13.0.1 fixing vulnerabilities.
7.0.1 (Jul 21, 2022)
- Updated to avoid forcing TLS1.2 when TLS1.3 is available when compiling in .NET Framework.
7.0.0 (May 26, 2022)
- BREAKING CHANGE: Deprecated support for .NET Framework 4.0 and .NET Core 1.x.
- Updated redis command for config telemetry, using hset instead of rpush now.
6.3.7 (Dec 16, 2021)
- Updated the logic that posts events and impressions data to have a maximum bulk size.
- Updated the readiness flow to be more consistent with the other sdks and improve the readiness time.
- Updated murmurhash dependency to use the signed version, murmurhash-signed >= 1.0.3.
6.3.6 (Sep 24, 2021)
- Fixed an issue in the calculation for the remaining block until ready time when syncing segment information, causing SDK Not Ready without waiting for the configured time.
6.3.4 (Aug 6, 2021)
- Fixed an issue in SplitClient.IsClientReady which sometimes threw NullReferenceException by properly handling the exception and logging.
6.3.3 (Aug 2, 2021)
- 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.
6.3.2 (Jul 21, 2021)
- Fixed memory and thread leak. Issue ref: https://github.com/splitio/dotnet-client/issues/40.
6.3.1 (Jun 14, 2021)
- Fixed buckets count in Telemetry.
- Added improvements for streaming functionality, including a header to force a local cache refresh when applicable.
- Added disposable Stopwatch for better memory management.
6.3.0 (Apr 26, 2021)
- Added SSL/TLS support for Redis Client.
- Added net461 target framework to avoid a vulnerability in StackExchange.Redis at least from this version forward. We will keep supporting net40 & net45 with the old one.
- Updated SDK telemetry storage, metrics and updater to be more effective and send less often.
6.2.3 (Dec 22, 2020)
- Fixed package strong name
6.2.1 (Nov 18, 2020)
- Fixed the first schedule for the SSE refresh token.
6.2.0 (Oct 13, 2020)
- Added impressions dedupe logic to avoid sending duplicated impressions:
- Added `OPTIMIZED` and `DEBUG` modes in order to enabling/disabling 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 async operation.
6.1.5 (Sep 3, 2020)
- Fixed Destroy client.
6.1.4 (Aug 14, 2020)
- Fixed SplitManager.Splits() when Redis db != 0 is used.
6.1.3 (Jul 6, 2020)
- Fixed Control notifications parser.
6.1.2 (Jun 15, 2020)
- Removed vulnerabilities.
- Updated StreamingEnabled default to true.
6.1.1 (May 22, 2020)
- Updated YamlDotNet dependency to 8.1.1.
6.1.0 (May 15, 2020)
- Added support for the new Split 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.
6.0.3 (Apr 16, 2020)
- Removed YamlDotNet.Signed obsolete dependency.
6.0.2 (Feb 10, 2020)
- Updated Newtonsoft.Json dependency to >= 10.0.3.
6.0.1 (Jan 20, 2020)
- Improved clients synchronization.
- Improved IListener implementation.
- Improved a few naming conventions.
- Improved RedisClient constructor. We connect to server async now.
6.0.0 (Nov 1, 2019)
- BREAKING CHANGE: Changed our logging framework implementation for .NET Core sdk. We use Microsoft.Extensions.Logging now.
- Improved the performance of the getTreatments() and getTreatmentsWithConfig() call, by minimizing the amount of calls to redis when fetching splits.
- Added IPAddressesEnabled to enable/disable sending MachineName and MachineIP headers when data is posted to Split Servers.
- Added support for NET core 3.0.
5.0.3 (Oct 10, 2019)
- Refactor Evaluator.
- Added Integration Tests.
5.0.2 (Oct 02, 2019)
- Avoid unnecessary dependencies for .Net Framework 4.5+
5.0.1 (Sep 16, 2019)
- Added HttpClientMock for improved Integration Tests.
- Merged NET and NET Core repositories to improved our productivity and code.
5.0.0 (Jul 22, 2019)
- BREAKING CHANGE: Moving block until ready out of the factory into the split client and manager client.
- Added validation for traffic type name when calling track.
- Added new label when the sdk is not ready.
- Added validation for split names on getTreatment and manager calls.
- Check for multiple factories instantiated.
4.1.3
- Added support for optional event properties via our client.track() method. Read more in our docs!
4.1.2
- Updated localhost mode. Now besides supporting the old text files with `.split` extension (to be deprecated soon), we support YAML (.yaml/.yml) files with more options. Read more in our docs!
4.1.1
- Bugfix: SDK return error when posting events successfully.
4.1.0
- Added Dynamic Configurations support through two new methods that mimick the regular ones, changing the type of what is returned.
- GetTreatmentWithConfig: Same as getTreatment, but instead of a string it returns a map with treatment and config as a stringified JSON.
- GetTreatmentWithConfig: Same as getTreatments, but instead of a map of string it returns a map of objects with treatment and config as a stringified JSON.
- Added configs to SplitViews returned by the manager module.
4.0.1
- Bug fix InvalidOperationException in ImpressionsLog(). "Collection was modified; enumeration operation may not execute".
4.0.0
- BREAKING CHANGE: Updated impressions cache for Redis storage to reduce the amount of Redis operations by using a single queue. Must use Synchronizer 2.x or above with this or newer SDK versions if you are using Redis mode.
- Improved Input validation to provide better and faster feedback in case of missuse.
- Updated FeaturesRefreshRate to be 5 seconds.
3.5.0
- Added Input validation
- Adding Block Until Ready for Redis client
- Fix authors and other package metadata
- Fix an issue when Traffic Allocation is set to 1 and the resulting bucket is also 1.
3.4.2
- Improve async handling
3.4.1
- Fix track() bug on localhost mode
3.4.0
- Add support for .track()
- Bug fix on date rule matchers
3.3.3
- Solved Issue 94: Invalid Api key causes high CPU usage
3.3.1
- Bug fix on RedisSplitManager.
3.3.0
- Changed Splitio package to support just Standalone mode, and added Splitio.Redis package for Consumer mode.
- Included Splitio.TestSupport framework, for unit testing.
3.2.1
- Updated Split Manager to return treatments from ROLLOUT condition.
3.2.0
- Support for Boolean and Regex matchers.
- Support for Dependency Matcher.
- Support for Client Destroy using In Memory mode.
3.1.2
- Changed logging approach by supporting Common.Logging integration. Client can configure its already existing logging system
by using Common.Logging adapter, to be used in Splitio SDK.
3.1.1
- Bug fixes.
3.1.0
- Support for new string and set matchers: ContainsAllOfSet, ContainsAnyOfSet, ContainsString, EndsWith, EqualToSet, PartOfSet and StartsWith.
3.0.1
- Bug fixes.
3.0.0
- New hashing algorithm for splitter: Murmur hash.
1.1.1
- Support for Impression Listener on configurations
1.1.0
- Support for Traffic Allocation
1.0.2
- NLog logger can be configured by user. If not configured, the SDK will use default log file in 'Logs\split-sdk.log'
1.0.1
- No changes for this update
1.0.0
- First release of Split.io SDK for Net Core