Releases: launchdarkly/ruby-server-sdk
Releases · launchdarkly/ruby-server-sdk
5.5.1
[5.5.1] - 2019-01-17
Fixed:
- Fixed several documentation comments that had the wrong parameter names. There are no other changes in this release; it's only to correct the documentation.
5.5.0
[5.5.0] - 2019-01-17
Added:
- It is now possible to use Consul or DynamoDB as a persistent feature store, similar to the existing Redis integration. See the
LaunchDarkly::Integrations::Consul
andLaunchDarkly::Integrations::DynamoDB
modules, and the reference guide Using a persistent feature store. - There is now a
LaunchDarkly::Integrations::Redis
module, which is the preferred method for creating a Redis feature store. - All of the database feature stores now support local caching not only for individual feature flag queries, but also for
all_flags_state
. - The
Config
propertydata_source
is the new name forupdate_processor
andupdate_processor_factory
.
Changed:
- The implementation of the SSE protocol for streaming has been moved into a separate gem,
ld-eventsource
. This has no effect on streaming functionality.
Fixed:
- Added or corrected a large number of documentation comments. All API classes and methods are now documented, and internal implementation details have been hidden from the documentation. You can view the latest documentation on RubyDoc.
- Fixed a problem in the Redis feature store that would only happen under unlikely circumstances: trying to evaluate a flag when the LaunchDarkly client had not yet been fully initialized and the store did not yet have data in it, and then trying again when the client was still not ready but the store did have data (presumably put there by another process). Previously, the second attempt would fail.
- In polling mode, the SDK did not correctly handle non-ASCII Unicode characters in feature flag data. (#90)
Deprecated:
RedisFeatureStore.new
. This implementation class may be changed or moved in the future; useLaunchDarkly::Integrations::Redis::new_feature_store
.Config.update_processor
andConfig.update_processor_factory
; useConfig.data_source
.
5.4.3
[5.4.3] - 2019-01-11
Changed:
- The SDK is now compatible with
net-http-persistent
3.x. (Thanks, CodingAnarchy!)
5.4.2
5.4.1
Note, version 5.4.0 was broken and has been removed.
[5.4.1] - 2018-11-05
Added:
- It is now possible to inject feature flags into the client from local JSON or YAML files, replacing the normal LaunchDarkly connection. This would typically be for testing purposes. See
file_data_source.rb
.
Fixed:
- When shutting down an
LDClient
, if in polling mode, the client was usingThread.raise
to make the polling thread stop sleeping.Thread.raise
can cause unpredictable behavior in a worker thread, so it is no longer used. - Fixed a
LoadError
infile_data_source.rb
, which was added in 5.4.0. (Thanks, kbarrette!)
5.3.0
[5.3.0] - 2018-10-24
Added:
- The
all_flags_state
method now accepts a new option,details_only_for_tracked_flags
, which reduces the size of the JSON representation of the flag state by omitting some metadata. Specifically, it omits any data that is normally used for generating detailed evaluation events if a flag does not have event tracking or debugging turned on.
Fixed:
- JSON data from
all_flags_state
is now slightly smaller even if you do not use the new option described above, because it omits the flag property for event tracking unless that property is true.
5.2.0
[5.2.0] - 2018-08-29
Added:
- The new
LDClient
methodvariation_detail
allows you to evaluate a feature flag (using the same parameters as you would forvariation
) and receive more information about how the value was calculated. This information is returned in anEvaluationDetail
object, which contains both the result value and a "reason" object which will tell you, for instance, if the user was individually targeted for the flag or was matched by one of the flag's rules, or if the flag returned the default value due to an error.
Fixed:
- Evaluating a prerequisite feature flag did not produce an analytics event if the prerequisite flag was off.
5.1.0
[5.1.0] - 2018-08-27
Added:
- The new
LDClient
methodall_flags_state()
should be used instead ofall_flags()
if you are passing flag data to the front end for use with the JavaScript SDK. It preserves some flag metadata that the front end requires in order to send analytics events correctly. Versions 2.5.0 and above of the JavaScript SDK are able to use this metadata, but the output ofall_flags_state()
will still work with older versions. - The
all_flags_state()
method also allows you to select only client-side-enabled flags to pass to the front end, by using the optionclient_side_only: true
.
Changed:
- Unexpected exceptions are now logged at
ERROR
level, and exception stacktraces atDEBUG
level. Previously, both were being logged atWARN
level.
Deprecated:
LDClient.all_flags()
5.0.1
[5.0.1] - 2018-07-02
Fixed:
Fixed a regression in version 5.0.0 that could prevent the client from reconnecting if the stream connection was dropped by the server.
5.0.0
[5.0.0] - 2018-06-26
Changed:
- The client no longer uses Celluloid for streaming I/O. Instead, it uses socketry.
- The client now treats most HTTP 4xx errors as unrecoverable: that is, after receiving such an error, it will not make any more HTTP requests for the lifetime of the client instance, in effect taking the client offline. This is because such errors indicate either a configuration problem (invalid SDK key) or a bug, which is not likely to resolve without a restart or an upgrade. This does not apply if the error is 400, 408, 429, or any 5xx error.
- During initialization, if the client receives any of the unrecoverable errors described above, the client constructor will return immediately; previously it would continue waiting until a timeout. The
initialized?
method will return false in this case.
Removed:
- The SDK no longer supports Ruby versions below 2.2.6, or JRuby below 9.1.16.