Releases: harness/ff-python-server-sdk
1.3.0
What's Changed
Bug fixes
-
Bump pip from 21.1 to 23.3 by @dependabot in #82
-
Bump requests from 2.25.1 to 2.31.0 by @dependabot in #61
-
[FFM-10040] - For percentage rollout, change Murmur3 hash calculation to be unsigned instead of signed. This ensures the Python SDK produces the same hash as other SDKs for use in percentage rollout calculation by @andybharness in #85
-
FFM-10063 by @erdirowlands in #86 :
- Fixed an issue where the SDK would try to fetch deleted resources from the server receiving SSE delete events, resulting in 404 errors. Now, deleted resources are only removed from the local cache.
- If flag/group requests fails after exceeding all retry attempts, the SDK now throws and catches an exception instead of returning None, which would previously resulted in an uncaught
AttributeError. - If the SDK fails to initialize, it now stores the error. Subsequent evaluation requests return the default variation along with the error/SDK code immediately.
- Fixed an issue where requesting a variation on the wrong flag type (e.g., requesting a boolean on a string) would not behave as expected. Now, an SDK error code is logged, and the default variation is returned in such cases.
- Fixed an issue where polling would not stop if streaming is enabled. Additionally, fixed an issue where the poller would stop and not make any more flag updates after encountering an exception during a request.
- Enhanced logging to correctly indicate when a stream disconnects and the system falls back to polling.
- Changed various verbose logs from info to debug.
Enhancements
- Flag/group requests now implement a retry mechanism, attempting up to 10 retries on retryable errors.
Breaking changes
- From 1.3.x, for the Percentage Rollout feature this SDK release updates the Murmur3 hash calculation to align it to the GoLang SDK (and other SDKs). This means you may see target identifiers being remapped to different buckets. This change is necessary to allow customers to see consistent bucketing across SDKs regardless of what language they use.
Full Changelog: 1.2.5...1.3.0
1.2.5
What's Changed
- FFM-9866 Only log Flag/Segment not found warning in valid scenarios @erdirowlands in #84
Full Changelog: 1.2.4...1.2.5
1.2.4
What's Changed
- FFM-9866 Set default log level to WARNING by @erdirowlands in #83
Full Changelog: 1.2.3...1.2.4
1.2.3
What's Changed
- FFM-9737 Fixes an issue where
SDKCODE1003was logged even whenwait_for_initialzationwas not called by @erdirowlands in #81
Full Changelog: 1.2.2...1.2.3
1.2.2
What's Changed
- FFM-8544 Fixes an issue where the SDK will crash when used with the relay proxy
Full Changelog: 1.2.1...1.2.2
1.2.1
What's Changed
FFM-8544:
* Low level streaming logs no longer get logged as errors.
Full Changelog: 1.2.0...1.2.1
1.2.0
What's Changed
- FFM-8300:
- The SDK now sends targets to the metrics service in batches of 1000. Up to 200 batches, or 200K unique targets, can be sent in the metrics window. This is not user configurable, and is controlled via the SDK.
- Does not allow
events_sync_intervalto be set below 60 seconds. If it is, the value will default to 60 seconds.
1.1.16
What's Changed
- FFM-8231 - Sets a maximum metrics Target limit of 50k for a single interval and increases the Metrics API timeout to 30 seconds.
Known issues
During a metrics interval, if you evaluate flags with more than 50k unique targets (uniqueness based on identifier, name and attributes), then only the first 50k targets will get sent in the request to the metrics API. This will mean that the targets that were not included in the request will not appear in the UI, but, when they are included in evaluations during subsequent metrics intervals they will be correctly registered in the UI.
1.1.15
What's Changed
-
FFM-7363 - Adds a list of codes which are logged for each lifecycle of the SDK:
- Initialization
- Authentication
- Polling
- Streaming
- Evaluation
- Metrics
- Close
- For the full list of codes see https://developer.harness.io/docs/feature-flags/ff-sdks/server-sdks/python-sdk-reference/#troubleshooting
-
FFM-7363 - Previously the SDK would crash if
client.close()was called if at any point before a stream event was sent to SDK. The SDK now closes all threads correctly.
Full Changelog: 1.1.14...1.1.15
1.1.14
What's Changed
- FFM-7177 - The SDK will now retry on failed Client authentication requests for specific HTTP errors. If Client authentication fails, the SDK will serve the default values you provide in
variationcalls. - FFM-7362 - Adds additional headers to requests to the Feature Flags service to aid debugging.
Full Changelog: 1.1.12...1.1.13