Releases: harness/ff-ruby-server-sdk
Releases · harness/ff-ruby-server-sdk
1.4.6
What's Changed
- feat: [FFM-12281]: thread safety fixes by @conormurray95 in #54
- feat: [FFM-12277]: add initialised method by @conormurray95 in #53
Full Changelog: 1.4.5...1.4.6
1.4.5
What's Changed
- FFM-12192 Following from 1.4.4: Resolves an issue where Segmentation faults can occur on Ruby 3.4 and above by @erdirowlands in #52
Full Changelog: 1.4.4...1.4.5
1.4.4
What's Changed
-
FFM-12192 Following from 1.4.3, we are still investigating an edge case in the SDK, where segmentation faults can occur when the SDK aggregates and sends metrics at the end of an interval:
- Replaces
concurrent-ruby/ConcurrentMap
with our own thread safe hash implementation. - Fixed race condition if the optional
timeout_ms
argument is provided towait_for_initialization
and the SDK times out and initializes at the same time which could cause undefined behaviour for the lifetime of the SDK.
- Replaces
-
FFM-12192 Also fixes some behaviour around default variations being returned:
- Default variations are returned immediately:
- if the SDK is not initialized or still initializing. This avoids potentially incomplete evaluations caused by partial cache data.
- if a flag cannot be found and logs a warning.
- If a requested variation does not match the flag type, the SDK now returns the default variation and logs a warning.
- Default variations are returned immediately:
Full Changelog: 1.4.3...1.4.4
by @erdirowlands in #51
1.4.3
What's Changed
- FFM-12192 Following from 1.4.2, we are still investigating an edge case in the SDK, where very large projects can generate invalid metric events shortly after the SDK has initialised. This patch includes possible fixes for this issue. by @erdirowlands in #50
Full Changelog: 1.4.2...1.4.3
1.4.2
What's Changed
- FFM-12192 Following from 1.4.1, we are still investigating an edge case in the SDK, where very large projects can generate invalid metric events shortly after the SDK has initialised. This patch includes possible fixes for this issue. by @erdirowlands in #48
Full Changelog: 1.4.1...1.4.2
1.4.1
What's Changed
- FFM-12192 Skips processing invalid metrics if they are detected. We are currently investigating an edge case in the SDK, where very large projects can generate invalid metric events shortly after the SDK has initialised. This patch release ensures these invalid metrics events are skipped, and a warning is logged if the SDK encounters them. The impact is flag evaluation metrics will not include any events that have been skipped. by @erdirowlands in #47
Full Changelog: 1.4.0...1.4.1
1.4.0
What's Changed
Enhancements
- FFM-12088 Adds an optional timeout parameter for
wait_for_initialization
, see docs for usage by @erdirowlands in #44
Bug Fixes
The SDK now retries on HTTP code 0
which can be returned by the underlying typhoeus
library for uncategorised errors by @erdirowlands in #44
Full Changelog: 1.3.2...1.4.0
1.3.2
What's Changed
- FFM-11995 No longer ships
rake
minitest
andstandard
as dependencies. by @fizzy-drinks and @erdirowlands in #43
New Contributors
- @fizzy-drinks made their first contribution in #43
Full Changelog: 1.3.1...1.3.2
1.3.1
What's Changed
- FFM-11657 Sort group AND/OR rules and Flag rules when caching group instead of during an evaluation call, which could result in latency if a group or flag is large by @erdirowlands in #41
Full Changelog: 1.3.0...1.3.1
1.3.0
What's Changed
- [FFM-11241] - Target v2: Adding SDK support for AND/OR rules. Note: feature not GA yet by @andybharness in #37
- [FFM-11365] - Add rules-v2 query parameter to optimise the rules that the FF backend sends for
AND/OR
rules. Note: feature not GA yet by @andybharness in #39
Bug Fixes:
- [FFM-11211] Metrics fixes:
- If the metrics buffer size fills, it no longer flushes and sends all metrics to the FF service, which could affect evaluation performance. Instead, it logs a warning that the buffer is full and does not process anymore metrics for that interval.
- Optimises the payloads sent by the metrics service. Previously, there would be an individual payload entry based on
flag + variation served + target
. Now, the entry is based onflag + variation
. This drastically reduces payload size for similar evaluations served for targets. The SDK continues to register targets correctly as before. - Fixes an issue where targets used in evaluations across metrics intervals would still be included in payloads. Now, only unique targets are included in payloads.
Full Changelog: 1.2.1...1.3.0