splitclient-rb 8.3.0.pre.rc3 → 8.3.1.pre.rc1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4acd00f4a4ec4e1452cfee7f49d45e8798f1ae2dc80a91f066dfe6a4e72723f5
4
- data.tar.gz: 7a7f71af4c5c55318f2c410ffd128214c5c228e9f088d8d2c3b85f82e13958ac
3
+ metadata.gz: b8ba8827db5ea34a7316f03b35dd4aacd063e674dd8ae76644f050d5f43aa6da
4
+ data.tar.gz: e268b61a09262882923953d9e48d3b1bfed9a7c8e7ffb55e07bcfa44a42ad751
5
5
  SHA512:
6
- metadata.gz: 1d570a2e9118bc69dc97a05ea6e0a4da27f4394fcc82a404a704da5e210e031168d8232816e3be7dbe818428f242da915e5ed0b318941c4ee63695fcb04cc296
7
- data.tar.gz: 755249e17b03b75d32149be030ebf8646482ed57377772b259228bcda2c2d68da4c9a2ac093a1e6787711ccb163c50c4c065ab063b2325f9bf84734f670ffa09
6
+ metadata.gz: f0a65e67b1147da8cbbf4b38361dcb7361a2f9d3b65b16b0c29af7b0aa81f7c6b9d11787d9ac329d070fed36d9fa9c7891d666a60336b96e1974a3b9cd757a9c
7
+ data.tar.gz: beb3a9d7fb6f8f91f2a5312de4f487e4ad2500b1f8f6accef9f20ae65c73ccf5145ec019583f041ca0bed71ea66de1c6606c081fe16345abf78ef81823054e20
data/CHANGES.txt CHANGED
@@ -1,5 +1,17 @@
1
1
  CHANGES
2
2
 
3
+ Next release (TBD)
4
+ - Fixed ruby process hanging due to failed thread.join command, when calling destroy and a http request still active.
5
+
6
+ 8.3.0 (Dec 11, 2023)
7
+ - 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):
8
+ - Added new variations of the get treatment methods to support evaluating flags in given flag set/s.
9
+ - get_treatments_by_flag_set and get_treatments_by_flag_sets
10
+ - get_treatments_with_config_by_flag_set and get_treatments_with_config_by_flag_sets
11
+ - 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.
12
+ - 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.
13
+ - Added `default_treatment` and `sets` property to the `split_view` object returned by the `split` and `splits` methods of the SDK manager.
14
+
3
15
  8.2.0 (Jul 18, 2023)
4
16
  - 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.
5
17
 
@@ -60,10 +72,10 @@ CHANGES
60
72
 
61
73
  7.2.1 (Oct 23, 2020)
62
74
  - Updated redis dependency to >= 4.2.2.
63
- - Updated ably error handling.
75
+ - Updated ably error handling.
64
76
 
65
77
  7.2.0 (Sep 25, 2020)
66
- - Added impressions dedupe logic to avoid sending duplicated impressions:
78
+ - Added impressions dedupe logic to avoid sending duplicated impressions:
67
79
  - Added `OPTIMIZED` and `DEBUG` modes in order to enabling/disabling how impressions are going to be sent into Split servers,
68
80
  - `OPTIMIZED`: will send unique impressions in a timeframe in order to reduce how many times impressions are posted to Split.
69
81
  - `DEBUG`: will send every impression generated to Split.
data/LICENSE CHANGED
@@ -1,4 +1,4 @@
1
- Copyright © 2023 Split Software, Inc.
1
+ Copyright © 2024 Split Software, Inc.
2
2
 
3
3
  Licensed under the Apache License, Version 2.0 (the "License");
4
4
  you may not use this file except in compliance with the License.
@@ -171,8 +171,6 @@ module SplitIoClient
171
171
  end
172
172
 
173
173
  def remove_feature_flag(split)
174
- tt_name = split[:trafficTypeName]
175
-
176
174
  decrease_tt_name_count(split[:trafficTypeName])
177
175
  remove_from_flag_sets(split)
178
176
  @adapter.delete(namespace_key(".split.#{split[:name]}"))
@@ -344,7 +344,7 @@ module SplitIoClient
344
344
  { bucketing_key: bucketing_key, matching_key: matching_key }, feature_flag, attributes
345
345
  )
346
346
  else
347
- @config.logger.error("#{calling_method}: the SDK is not ready, the operation cannot be executed")
347
+ @config.logger.error("#{calling_method}: the SDK is not ready, results may be incorrect for feature flag #{feature_flag_name}. Make sure to wait for SDK readiness before using this method.")
348
348
  control_treatment.merge({ label: Engine::Models::Label::NOT_READY })
349
349
  end
350
350
 
@@ -402,10 +402,10 @@ module SplitIoClient
402
402
  @telemetry_evaluation_producer.record_latency(Telemetry::Domain::Constants::TREATMENTS_BY_FLAG_SET, bucket)
403
403
  when GET_TREATMENTS_BY_FLAG_SETS
404
404
  @telemetry_evaluation_producer.record_latency(Telemetry::Domain::Constants::TREATMENTS_BY_FLAG_SETS, bucket)
405
- when GET_TREATMENT_WITH_CONFIG
406
- @telemetry_evaluation_producer.record_latency(Telemetry::Domain::Constants::TREATMENT_WITH_CONFIG, bucket)
407
- when GET_TREATMENTS_WITH_CONFIG
408
- @telemetry_evaluation_producer.record_latency(Telemetry::Domain::Constants::TREATMENTS_WITH_CONFIG, bucket)
405
+ when GET_TREATMENTS_WITH_CONFIG_BY_FLAG_SET
406
+ @telemetry_evaluation_producer.record_latency(Telemetry::Domain::Constants::TREATMENTS_WITH_CONFIG_BY_FLAG_SET, bucket)
407
+ when GET_TREATMENTS_WITH_CONFIG_BY_FLAG_SETS
408
+ @telemetry_evaluation_producer.record_latency(Telemetry::Domain::Constants::TREATMENTS_WITH_CONFIG_BY_FLAG_SETS, bucket)
409
409
  when TRACK
410
410
  @telemetry_evaluation_producer.record_latency(Telemetry::Domain::Constants::TRACK, bucket)
411
411
  end
@@ -1,7 +1,7 @@
1
1
  module SplitIoClient
2
2
  class SplitIoError < StandardError; end
3
3
 
4
- class SDKShutdownException < SplitIoError; end
4
+ class SDKShutdownException < Exception; end
5
5
 
6
6
  class SDKBlockerTimeoutExpiredException < SplitIoError; end
7
7
 
@@ -106,7 +106,8 @@ module SplitIoClient
106
106
  treatments: treatments,
107
107
  change_number: split[:changeNumber],
108
108
  configs: split[:configurations] || {},
109
- sets: split[:sets] || []
109
+ sets: split[:sets] || [],
110
+ default_treatment: split[:defaultTreatment]
110
111
  }
111
112
  end
112
113
 
@@ -43,7 +43,8 @@ module SplitIoClient
43
43
  private
44
44
 
45
45
  def parse_event_data(data, type)
46
- event_data = JSON.parse(data.sub('data: ', ''))
46
+ data_value = data.sub('data:', '')
47
+ event_data = JSON.parse(data_value.strip)
47
48
  client_id = event_data['clientId']&.strip
48
49
  channel = event_data['channel']&.strip
49
50
  parsed_data = JSON.parse(event_data['data']) unless type == 'error'
@@ -66,7 +66,9 @@ module SplitIoClient
66
66
  return false unless !notification.data['d'].nil? && @feature_flags_repository.get_change_number == notification.data['pcn']
67
67
 
68
68
  new_split = return_split_from_json(notification)
69
- SplitIoClient::Helpers::RepositoryHelper.update_feature_flag_repository(@feature_flags_repository, [new_split], notification.data['changeNumber'], @config)
69
+ SplitIoClient::Helpers::RepositoryHelper.update_feature_flag_repository(@feature_flags_repository,
70
+ [new_split],
71
+ notification.data['changeNumber'], @config)
70
72
  fetch_segments_if_not_exists(new_split)
71
73
 
72
74
  @telemetry_runtime_producer.record_updates_from_sse(Telemetry::Domain::Constants::SPLITS)
@@ -1,3 +1,3 @@
1
1
  module SplitIoClient
2
- VERSION = '8.3.0.pre.rc3'
2
+ VERSION = '8.3.1.pre.rc1'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: splitclient-rb
3
3
  version: !ruby/object:Gem::Version
4
- version: 8.3.0.pre.rc3
4
+ version: 8.3.1.pre.rc1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Split Software
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-12-04 00:00:00.000000000 Z
11
+ date: 2024-03-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: allocation_stats
@@ -587,7 +587,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
587
587
  - !ruby/object:Gem::Version
588
588
  version: 1.3.1
589
589
  requirements: []
590
- rubygems_version: 3.2.3
590
+ rubygems_version: 3.0.9
591
591
  signing_key:
592
592
  specification_version: 4
593
593
  summary: Ruby client for split SDK.