10.1.0 (Aug 7, 2024)
- Added support for Kerberos authentication in Spnego and Proxy Kerberos server instances.

10.0.1 (Jun 28, 2024)
- Fixed failure to load lib issue in SDK startup for Python versions higher than or equal to 3.10

10.0.0 (Jun 27, 2024)
- Added support for asyncio library
- BREAKING CHANGE: Minimum supported Python version is 3.7.16

9.7.0 (May 15, 2024)
- Added support for targeting rules based on semantic versions (https://semver.org/).
- Added the logic to handle correctly when the SDK receives an unsupported Matcher type.

9.6.2 (Apr 5, 2024)
- Fixed an issue when pushing unique keys tracker data to redis if no keys exist, i.e. get_treatment flavors are not called.

9.6.1 (Feb 15, 2024)
- Added redisUsername configuration parameter for Redis connection to set the username for accessing redis when not using the default `root` username

9.6.0 (Nov 3, 2023)
- Added support for Flag Sets on the SDK, which enables grouping feature flags and interacting with the group rather than individually (more details in our documentation):
  - Added new variations of the get treatment methods to support evaluating flags in given flag set/s.
    - get_treatments_by_flag_set and get_treatments_by_flag_sets
    - get_treatments_with_config_by_flag_set and get_treatments_with_config_by_flag_sets
- Added a new optional Split Filter configuration option. This allows the SDK and Split services to only synchronize the flags in the specified flag sets, avoiding unused or unwanted flags from being synced on the SDK instance, bringing all the benefits from a reduced payload.
   - Note: Only applicable when the SDK is in charge of the rollout data synchronization. When not applicable, the SDK will log a warning on init.
- Updated the following SDK manager methods to expose flag sets on flag views.
- Removed raising an exception when Telemetry post config data fails, SDK will only log the error.

9.5.1 (Sep 5, 2023)
- Exclude tests from when building the package
- Fixed exception when fetching telemetry stats if no SSE Feature flags update events are stored

9.5.0 (Jul 18, 2023)
- Improved streaming architecture implementation to apply feature flag updates from the notification received which is now enhanced, improving efficiency and reliability of the whole update system.

9.4.2 (May 15, 2023)
- Updated terminology on the SDKs codebase to be more aligned with current standard without causing a breaking change. The core change is the term split for feature flag on things like logs and code documentation comments.
- Added detailed debug logging for redis adapter.
- Fixed setting defaultTreatment to 'control' if it is missing in localhost JSON file.

9.4.1 (Apr 18, 2023)
- Fixed storing incorrect Telemetry method latency data

9.4.0 (Mar 1, 2023)
- Added support to use JSON files in localhost mode.
- Updated default periodic telemetry post time to one hour.
- Fixed unhandeled exception in push.manager.py class when SDK is connected to split proxy

9.3.0 (Jan 30, 2023)
- Updated SDK telemetry storage, metrics and updater to be more effective and send less often.
- Removed deprecated threading.Thread.setDaemon() method.

9.2.2 (Dec 13, 2022)
- Fixed RedisSenderAdapter instantiation to store mtk keys.

9.2.1 (Dec 2, 2022)
- Changed redis record type for impressions counts from list using rpush to hashed key using hincrby.
- Apply Timeout Exception when incorrect SDK API Key is used.
- Changed potential initial fetching segment Warning to Debug in logging.

9.2.0 (Oct 14, 2022)
- Added a new impressions mode for the SDK called NONE , to be used in factory when there is no desire to capture impressions on an SDK factory to feed Split's analytics engine. Running NONE mode, the SDK will only capture unique keys evaluated for a particular feature flag instead of full blown impressions

9.1.3 (July 25, 2022)
- Fixed synching missed segment(s) after receiving split update

9.1.2 (April 6, 2022)
- Updated pyyaml dependency for vulnerability CVE-2020-14343.

9.1.1 (March 9, 2022)
- Updated default auth service url to https://auth.split.io/api/v2/auth.
- Deprecated old telemetry.

9.1.0 (Jul 15, 2021)
- Added Cache-Control header for on-demand requests to sdk-server.
- Updated the synchronization flow to be more reliable in the event of an edge case generating delay in cache purge propagation, keeping the SDK cache properly synced.

9.0.0 (May 3, 2021)
 - BREAKING CHANGE: Removed splitSdkMachineIp and splitSdkMachineName configs.
 - BREAKING CHANGE: Deprecated `redisCharset` config.
 - BREAKING CHANGE: Deprecated uWSGI local cache.
 - BREAKING CHANGE: Deprecated Python2 support.
    - Removed six, future and futures libs for compatibility between Python2 and Python3.
    - Updated strings encoding to utf-8 by default for Redis.
 - Added SDK Metadata headers to streaming client.

8.4.1 (Apr 16, 2021)
 - Bumped mmh3cffi dependency which now requires c99 flag to build.

8.4.0 (Jan 6, 2021)
 - Added RecordStats for supporting pipelined recording in redis when treatment call is made.
 - Added hooks support for preforked servers.

8.3.1 (Nov 20, 2020)
 - Fixed error handling when split server fails, so that it doesn't bring streaming down.
 - Added SDK Metadata headers to split & segments API clients

8.3.0 (Nov 4, 2020)
 - Added local impressions deduping. Defaulting to optimized
 - Added support for the new Split streaming architecture. When enabled (default), the SDK will not poll for updates but instead receive notifications every time there's a change in your environments, allowing to process those much quicker. If disabled or in the event of an issue, the SDK will fallback to the known polling mechanism to provide a seamless experience.
 - Updated logging structure so that it's built in terms of a hierarchy with the root at 'splitio'
 - Fixed timing issue which caused factory.ready to return False if called immediately after .block_until_ready()

8.2.1 (Aug 25, 2020)
 - Updated mmh3cffi to version 0.1.5 which fixes xcode12 issue

8.2.0 (Mar 27, 2020)
 - Added support for enabling in-memory cache via config options

8.1.7 (Jan 23, 2020)
 - Removed enum34 dependency for python versions > 3.4

8.1.6 (Oct 31, 2019)
 - Fixed input validation performance issue.

8.1.5 (Oct 15, 2019)
 - Added logic to fetch multiple splits at once on get_treatments/get_treatments_with_config.
 - Added flag `IPAddressesEnabled` into config to enable/disable sending machineName and machineIp when data is posted in headers.

8.1.3 (Oct 4, 2019)
 - Fixed race condition related to segment fetching and SDK_READY event

8.1.2 (Jul 19, 2019)
 - Validated TLS support for redis connections
 - Fixed traffic type count issue

8.1.1 (14 Jun, 2019)
 - Fixed python3 compatibility issue in uwsgi caching mode.

8.1.0 (3 Jun, 2019)
 - Added properties to track method.
 - Input Validation: added validation for traffic types, split names and multiple factory instantiation.

8.0.0 (Apr 24, 2019)
 - Full SDK Refactor/rewrite.
 - New block until ready behaviour.
 - Support for async destroy.
 - Dynamic configs.
 - Impressions not flushing on destroy bugfix.
 - Removed unnecessary dependencies.
 - Test suite rewritten.

7.0.1 (Mar 8, 2019)
 - Updated Splits refreshing rate.
 - Replaced exception log level to error level.
 - Improved validation for sdkkey.

7.0.0 (Feb 21, 2019)
 - BREAKING CHANGE: Stored Impressions in Queue.
 - Fixed bug related to Machine Name and Machine IP.
 - Updated Input Validation.
 - New hash implementation supporting more platforms.

6.2.2 (Dec 17, 2018)
 - Fixed issue on selecting db for Sentinel.

6.2.1 (Dec 6, 2018)
 - Fixed traffic allocation issue on 1%.
 - Allowed hypens in 'localhost mode' file values.

6.2.0 (Oct 5, 2018)
 - Added get_treatments method.

6.1.0 (Sep 25, 2018)
 - Add custom impression listener feature.
 - Input Sanitization for track, get_treatment and split.

6.0.0 (Aug 29, 2018)
 - Add support for redis sentinel
 - UWSGI performance boost (breaking change)
 - Add support for more c++ compilers in windows for mumur hash extension

5.5.0 (Feb 28, 2018)
 - Add support for .track

5.4.3 (Jan 7, 2018)
 - Move impressions listener to it's own thread
 - Fix bug in localhost client
 - Removed unmaintained dependency causing issues with newer mac os updates

5.4.2 (Dec 22, 2017)
 - Update labels

5.4.1 (Dec 11, 2017)
 - Handle destroyed client in manager

5.4.0 (Sep 6, 2017)
 - Add Client-Destroy support
 - Add Impression listener support for in-memory and uwsgi modes

5.3.0 (Aug 1, 2017)
 - Add off-grid support for localhost broker (auto refresh splits from file)

5.2.2 (Aug 1, 2017)
 - Adding hotfix to set traffic allocation to 100 by default

5.2.1 (Jul 28, 2017)
 - Adding hotfix to keep alive fetcher threads if proxy/backend connection goes temporarily down.

5.2.0 (Jul 26, 2017)
 - Adding Adding regex & boolean matcher

5.1.0 (Jul 19, 2017)
 - Adding dependency matcher
 - Refactoring clients into brokers

5.0.0 (Jun 13, 2017)
 - BREAKING BACKWARD COMPATIBILITY
 - Adding support for Split Synchronizer service

4.1.1 (May 25, 2017)
 - Python 3 fixed incompatible comparison between None an integer

4.1.0 (May 16, 2017)
 - Adding support for String and Set Matchers

4.0.2 (May 8, 2017)
 - Adding support for Traffic Allocation

4.0.1 (April 19, 2017)
 - Hotfix Hashing enumerator to default value LEGACY

4.0.0 (April 17, 2017)
 - Added support for murmur3 hashing native and cpp version for performance

2.2.1 (Mar 1, 2017)
 - Ignore invalid Split fetched from Redis cache

2.2.0 (Feb 17, 2017)
 - Added uwsgi cache support
 - Fixed HTTP status code exceptions

2.1.0 (Jan 19, 2017)
 - Added enabled labels
 - Added impressions by sdk and version including bucketing key

2.0.5 (Dec 2, 2016)
 - Added SDK Factory Method with Manager API and Sdk Client
 - Added Bucketing key support
