Feature management Ruby SDK changelog

2 minute read

May 8, 2023: V5.1.1

  • Fixed static api number flags evaluation type to be container.numberFlag.value → int (not container.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 of RoxString 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 no use_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 and RoxString, we also added RoxInt and RoxDouble

    • DynamicApi was also updated with matching get_int and get_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