May 8, 2023: V5.1.1
-
Fixed static api number flags evaluation type to be
container.numberFlag.value → int
(notcontainer.numberFlag.value → string
).
April 27, 2022: V5.1.0
-
Added analytics
January 4, 2022: V5.0.3
-
Fixed use_userspace_unhandled_error_handler
-
Removed wrong analytics implementation
2021-11-10: V5.0.2
-
Added Rox::Server::RoxServer.register_with_namespace to register containers with a namespace.
-
Bugfix: Resolved internal hash inconsistency used by network requests - minimizing network traffic.
2021-05-05: V5.0.0
Breaking changes:
-
Variant changed to RoxString
-
Rox::Server::Variant.new('default_string', ['string_1', 'string_2']) ⇒ Rox::Server::RoxString.new('default_string', ['string_1', 'string_2'])
-
-
Functions input validations
-
Some trivial parameters (mostly type) validations were added to
dynamic_api
and flags constructions. For example:Rox::Server::RoxString.new(nil)
will raise an ArgumentError as default cannot be nil (default value ofRoxString
should be a string and defaults to an empty string if no default is provided).Rox::Server::RoxServer.dynamic_api.value(nil, 'default_string', ['string_2', 'string_3'])
will raise an ArgumentError because of nil flag name (name should always be a string) Fixes and Additions:
-
-
Can use register without a namespace:
-
register(container)
will register the container under an empty string namespace (multiple register calls with the same namespaces are still not allowed!)
-
-
Added a User Space Error handling
-
It is recommended to wrap all handlers used in Rox platform with begin-rescue in order to be in the right context. In case there will be an uncaught error, it will reach the
Rox::Server::RoxServer.use_userspace_unhandled_error_handler
handler. You can use this handler for debugging, or for further error handling. An Error thrown within this handler will be written to log. If nouse_userspace_unhandled_error_handler
was set, errors will be written to the log.
-
-
Analytics / impressions
-
Starting with SDK 5, flags will always send impressions after setup (not only when targeting is enabled on the dashboard)
-
-
Impression handler parameters change
-
As experiments were removed, impressions handler signature was changed from (
reporting_value
,experiment
,context
) to (reporting_value
,context
).reporting_value
now also has a Targeting (boolean) property, indicating the flag was evaluated by using the dashboard configurations.
-
-
New Flag Types Int/Double
-
In addition to
RoxFlag
andRoxString
, we also addedRoxInt
andRoxDouble
-
DynamicApi
was also updated with matchingget_int
andget_double
methods
-
-
Added a graceful Rox.shutdown
-
In order to clean all background Tasks
-
multiple Rox.setup calls will be ignored if Rox wasn’t Shutdown in between
-
-
Fixing RegEx Match condition, and empty string values
2020-01-09: V 4.7.3
-
Bugfix: Fix a skipped state synchronization that could occur if Ruby execution was halted immediately after SDK initialization
2019-11-26: V 4.7.2
-
Improvement: local flag state is now synced upon initialization instead of waiting until the first local change
2019-11-19: V 4.7.1
-
Bugfix: local flag states somewhere would be rejected by the API server
2019-10-15: V 4.7.0
-
Server API version 1.8.0
-
Values are base64 - fixing
"
and()
bug -
Changes to API calls, using Cloudfront
2019-05-14: V 4.1.0
-
Added push updates support
-
Variants are open for any value from the dashboard
-
Dynamic API for flags
2018-10-07: V 4.0.0
Initial release