Feature management Python SDK changelog

2 minute read

August 2, 2024: V6.0.0

  • Official Cloudbees platform support (No breaking changes)

April 10, 2024: V5.1.3

Fixed analytic sending

March 5, 2024: V5.1.2

Internal release alignment.

January 10, 2024: V5.1.1

Internal release alignment.

January 10, 2024: V5.1.0

Adding Python 3.12 support Updated dependencies, including Requests and Six packages.

September 22, 2023: V5.0.10

Fixed:

  • Using merged context when evaluating boolean flags.

August 12, 2022: V5.0.9

Fixes:

  • Number flags always take the value type default value '0' when configuration is turned on.

May 11, 2022: V5.0.8

Fixes:

  • Warnings generated when using SDK with Python version 3.10

March 1, 2022: V5.0.7

Fixes:

  • Security updates to dependencies.

January 27, 2022: V5.0.6

Fixes:

  • Exception and error details are no longer lost when an error occurs in custom property resolver.

  • Improvement to error reporting when user_unhandler_error_handler causes its own error.

2021-11-02: V5.0.5

Fix:

  • Using SIGINT when running a server and using ROX python no longer forces the server to stop.

2021-03-29: V5.0.0

Breaking changes:

  • Variant changed to RoxString

    • Variant('default_string', ['string_1', 'string_2']) ⇒ RoxString('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: RoxString(None) will raise an TypeError as default cannot be None (default value of RoxString should be a string and defaults to an empty string if no default is provided). Rox.dynamic_api.value(None, 'default_string', ['string_2', 'string_3']) will raise an TypeError because of None 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 (all Rox.set_custom_<…​>_property, RoxOptions.impression_handler, RoxOptions.configuration_fetched_handler, RoxOptions.dynamic_properties_rule) with try-except in order to be in the right context. In case there will be an uncaught error, it will reach the Rox.set_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 set_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

2019-10-10: V4.7.1

  • API version 1.8.0

  • Values are base64 - fixing " and () bug

  • Changes to API calls, using Cloudfront

  • Adding Kill switch to remotely shut down the SDK

  • Push notification implementation was changed to be threads based

2019-08-07: V4.5.0

  • Variants in Dynamic API is open for any value from the dashboard

  • internal bug fixes

2018-09-12: V4.0.1

  • Analytics Support

  • Dynamic API for flags

2018-08-22: V3.0.0

  • Initial release