All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
Note: These changes are not considered notable:
- build
- documentation
- dependencies
5.0.1 - 2024-03-27
- make user-agent headers more descriptive (#168)
- make client more resilient to non-conforming responses from
unleash-edge
(#162)- while the unleash server provides always valid responses, (at least some versions of) unleash-edge can provide an unexpected JSON response (null instead of empty array).
- fixed the handling of the response, so we do not throw exceptions in this situation.
5.0.0 - 2023-10-30
- change seed for variantutils to ensure fair distribution (#160)
- client specification is here
- A new seed is introduced to ensure a fair distribution for variants, addressing the issue of skewed variant distribution due to using the same hash string for both gradual rollout and variant allocation.
4.6.0 - 2023-10-16
- dependant toggles (#155)
- client specification is here
4.5.0 - 2023-07-05
- variants in strategies (#148)
- issue described here (#147)
- groupId override for variants
4.4.4 - 2023-07-05
- flexible rollout strategy without context (#146)
- The flexible rollout strategy should evaluate default and random stickiness even if context is not provided.
4.4.3 - 2023-06-14
- Add Context#to_h method (#136)
- Bootstrapped variants now work when client is disabled (#138)
- Variant metrics are now sent correctly to Unleash. Fixed a typo in the payload name. (#145)
- Automatically disable metrics/MetricsReporter when client is disabled (#139) (#140)
4.4.2 - 2023-01-05
- Add Client#disabled? method (#130)
4.4.1 - 2022-12-07
- exception no longer bubbles up in constraints when context is nil (#127)
- variants metrics did count toggles correctly (#126)
- prevent race condition when manipulating metrics data (#122)
- allow passing user_id as integer (#119)
4.4.0 - 2022-09-19
- Allow custom strategies (#96)
- Global segments (#114)
- Initializing client configuration from constructor (#117)
- Support int context in set comparison (#115)
4.3.0 - 2023-07-14
- dynamic http headers via Proc or Lambda (#107)
- Fixed ToggleFetcher#save! to close opened files on failure. (#97)
- Refactored ToggleFetcher#read! (#106)
4.2.1 - 2022-03-29
- correct logic for default values on feature toggles so toggle value respected when toggle exists and default is true (#93)
4.2.0 - 2022-03-18
- Advanced constraints operators (#92)
- Default to the client never giving up trying to reach the server even after repeated failures (#91)
4.1.0 - 2022-02-11
- feat: Implement custom bootstrapping on startup (#88)
- feat: add support for cidr in
RemoteAddress
strategy (#77)
- default values for
metrics_interval
to60s
andretry_limit
to5
(#78)
4.0.0 - 2021-12-16
- Support for projects query (requires unleash 4.x) (#38)
- Allow passing blocks to is_enabled? to determine default_result (#33)
- Implement custom stickiness (#69)
- Allow using custom_http_headers from the CLI utility (#75)
- Allow context to correctly resolve camelCase property values (#74)
- Avoid unlikely situation of config changing under the read operation due to backup path file being incorrectly set (#63)
- change how we handle the server api url (avoid double slashes in urls used for API calls.)
- default values: refresh_interval => 10, metrics_interval=> 30 (#59)
- changed metrics reporting behavior (#66)
- only send metrics if there is data to send. (#58)
- in Client#get_variant() allow context and fallback_variant as nil (#51)