Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package python-azure-appconfiguration-provider for openSUSE:Factory checked in at 2025-03-12 15:24:40 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-azure-appconfiguration-provider (Old) and /work/SRC/openSUSE:Factory/.python-azure-appconfiguration-provider.new.19136 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-azure-appconfiguration-provider" Wed Mar 12 15:24:40 2025 rev:6 rq:1252377 version:2.0.1 Changes: -------- --- /work/SRC/openSUSE:Factory/python-azure-appconfiguration-provider/python-azure-appconfiguration-provider.changes 2025-01-09 15:11:39.818818891 +0100 +++ /work/SRC/openSUSE:Factory/.python-azure-appconfiguration-provider.new.19136/python-azure-appconfiguration-provider.changes 2025-03-12 15:25:13.813176648 +0100 @@ -1,0 +2,9 @@ +Tue Mar 11 10:54:21 UTC 2025 - John Paul Adrian Glaubitz <adrian.glaub...@suse.com> + +- New upstream release + + Version 2.0.1 + + For detailed information about changes see the + CHANGELOG.md file provided with this package +- Update Requires from setup.py + +------------------------------------------------------------------- Old: ---- azure_appconfiguration_provider-2.0.0.tar.gz New: ---- azure_appconfiguration_provider-2.0.1.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-azure-appconfiguration-provider.spec ++++++ --- /var/tmp/diff_new_pack.KVxjqh/_old 2025-03-12 15:25:14.245194741 +0100 +++ /var/tmp/diff_new_pack.KVxjqh/_new 2025-03-12 15:25:14.245194741 +0100 @@ -18,7 +18,7 @@ %{?sle15_python_module_pythons} Name: python-azure-appconfiguration-provider -Version: 2.0.0 +Version: 2.0.1 Release: 0 Summary: Microsoft App Configuration Provider Library for Python License: MIT @@ -33,8 +33,8 @@ BuildRequires: python-rpm-macros Requires: python-azure-nspkg >= 3.0.0 Requires: python-dnspython >= 2.6.1 -Requires: (python-azure-appconfiguration >= 1.4.0 with python-azure-appconfiguration < 2.0.0) -Requires: (python-azure-core >= 1.28.0 with python-azure-core < 2.0.0) +Requires: (python-azure-appconfiguration >= 1.6.1 with python-azure-appconfiguration < 2.0.0) +Requires: (python-azure-core >= 1.30.0 with python-azure-core < 2.0.0) Requires: (python-azure-keyvault-secrets >= 4.3.0 with python-azure-keyvault-secrets < 5.0.0) Conflicts: python-azure-sdk <= 2.0.0 %if 0%{?sle_version} >= 150400 ++++++ azure_appconfiguration_provider-2.0.0.tar.gz -> azure_appconfiguration_provider-2.0.1.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/azure_appconfiguration_provider-2.0.0/CHANGELOG.md new/azure_appconfiguration_provider-2.0.1/CHANGELOG.md --- old/azure_appconfiguration_provider-2.0.0/CHANGELOG.md 2025-01-06 19:39:27.000000000 +0100 +++ new/azure_appconfiguration_provider-2.0.1/CHANGELOG.md 2025-03-08 00:29:25.000000000 +0100 @@ -1,5 +1,18 @@ # Release History +## 2.0.1 (2025-03-07) + +### Bugs Fixed + +* Updates the failure to load from a config store from a debug level log to a warning level log. +* Fixes an issue where the stack trace from the azure sdk wasn't being logged on startup. +* Fixes a bug where feature flags could be loaded as configurations. + +### Other Changes + +* Bumped minimum dependency on `azure-core` to `>=1.30.0` +* Bumped minimum dependency on `azure-appconfiguration` to `>=1.6.1` + ## 2.0.0 (2025-01-06) ### Features Added diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/azure_appconfiguration_provider-2.0.0/PKG-INFO new/azure_appconfiguration_provider-2.0.1/PKG-INFO --- old/azure_appconfiguration_provider-2.0.0/PKG-INFO 2025-01-06 19:41:16.171072700 +0100 +++ new/azure_appconfiguration_provider-2.0.1/PKG-INFO 2025-03-08 00:32:08.824190000 +0100 @@ -1,13 +1,13 @@ Metadata-Version: 2.1 Name: azure-appconfiguration-provider -Version: 2.0.0 +Version: 2.0.1 Summary: Microsoft App Configuration Provider Library for Python Home-page: https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/appconfiguration/azure-appconfiguration-provider Author: Microsoft Corporation Author-email: azpysdkh...@microsoft.com License: MIT License Keywords: azure,azure sdk -Classifier: Development Status :: 4 - Beta +Classifier: Development Status :: 5 - Production/Stable Classifier: Programming Language :: Python Classifier: Programming Language :: Python :: 3 :: Only Classifier: Programming Language :: Python :: 3 @@ -20,8 +20,8 @@ Requires-Python: >=3.6 Description-Content-Type: text/markdown License-File: LICENSE -Requires-Dist: azure-core>=1.28.0 -Requires-Dist: azure-appconfiguration>=1.6.0 +Requires-Dist: azure-core>=1.30.0 +Requires-Dist: azure-appconfiguration>=1.6.1 Requires-Dist: azure-keyvault-secrets>=4.3.0 Requires-Dist: dnspython>=2.6.1 @@ -273,6 +273,19 @@ # Release History +## 2.0.1 (2025-03-07) + +### Bugs Fixed + +* Updates the failure to load from a config store from a debug level log to a warning level log. +* Fixes an issue where the stack trace from the azure sdk wasn't being logged on startup. +* Fixes a bug where feature flags could be loaded as configurations. + +### Other Changes + +* Bumped minimum dependency on `azure-core` to `>=1.30.0` +* Bumped minimum dependency on `azure-appconfiguration` to `>=1.6.1` + ## 2.0.0 (2025-01-06) ### Features Added diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/azure_appconfiguration_provider-2.0.0/azure/appconfiguration/provider/_azureappconfigurationprovider.py new/azure_appconfiguration_provider-2.0.1/azure/appconfiguration/provider/_azureappconfigurationprovider.py --- old/azure_appconfiguration_provider-2.0.0/azure/appconfiguration/provider/_azureappconfigurationprovider.py 2025-01-06 19:39:27.000000000 +0100 +++ new/azure_appconfiguration_provider-2.0.1/azure/appconfiguration/provider/_azureappconfigurationprovider.py 2025-03-08 00:29:25.000000000 +0100 @@ -18,6 +18,7 @@ TYPE_CHECKING, ) from azure.appconfiguration import ( # type:ignore # pylint:disable=no-name-in-module + ConfigurationSetting, FeatureFlagConfigurationSetting, SecretReferenceConfigurationSetting, ) @@ -359,15 +360,7 @@ need_refresh, self._refresh_on, configuration_settings = client.refresh_configuration_settings( self._selects, self._refresh_on, headers=headers, **kwargs ) - configuration_settings_processed = {} - for config in configuration_settings: - key = self._process_key_name(config) - value = self._process_key_value(config) - configuration_settings_processed[key] = value - if self._feature_flag_enabled: - configuration_settings_processed[FEATURE_MANAGEMENT_KEY] = self._dict[ - FEATURE_MANAGEMENT_KEY - ] + configuration_settings_processed = self._process_configurations(configuration_settings) if need_refresh: self._dict = configuration_settings_processed if self._feature_flag_refresh_enabled: @@ -389,7 +382,7 @@ break except AzureError as e: exception = e - logger.debug("Failed to refresh configurations from endpoint %s", client.endpoint) + logger.warning("Failed to refresh configurations from endpoint %s", client.endpoint) self._replica_client_manager.backoff(client) is_failover_request = True if not success: @@ -409,6 +402,11 @@ is_failover_request = False replica_count = self._replica_client_manager.get_client_count() - 1 + error_message = """ + Failed to load configuration settings. No Azure App Configuration stores successfully loaded from. + """ + exception: Exception = RuntimeError(error_message) + while client := self._replica_client_manager.get_next_active_client(): headers = update_correlation_context_header( kwargs.pop("headers", {}), @@ -424,12 +422,7 @@ configuration_settings, sentinel_keys = client.load_configuration_settings( self._selects, self._refresh_on, headers=headers, **kwargs ) - configuration_settings_processed = {} - for config in configuration_settings: - key = self._process_key_name(config) - value = self._process_key_value(config) - configuration_settings_processed[key] = value - + configuration_settings_processed = self._process_configurations(configuration_settings) if self._feature_flag_enabled: feature_flags, feature_flag_sentinel_keys, used_filters = client.load_feature_flags( self._feature_flag_selectors, self._feature_flag_refresh_enabled, headers=headers, **kwargs @@ -461,13 +454,25 @@ self._refresh_on = sentinel_keys self._dict = configuration_settings_processed return - except AzureError: - logger.debug("Failed to refresh configurations from endpoint %s", client.endpoint) + except AzureError as e: + exception = e + logger.warning("Failed to load configurations from endpoint %s.\n %s", client.endpoint, e.message) self._replica_client_manager.backoff(client) is_failover_request = True - raise RuntimeError( - "Failed to load configuration settings. No Azure App Configuration stores successfully loaded from." - ) + raise exception + + def _process_configurations(self, configuration_settings: List[ConfigurationSetting]) -> Dict[str, Any]: + configuration_settings_processed = {} + for config in configuration_settings: + if isinstance(config, FeatureFlagConfigurationSetting): + # Feature flags are not processed like other settings + continue + key = self._process_key_name(config) + value = self._process_key_value(config) + configuration_settings_processed[key] = value + if self._feature_flag_enabled and FEATURE_MANAGEMENT_KEY in self._dict: + configuration_settings_processed[FEATURE_MANAGEMENT_KEY] = self._dict[FEATURE_MANAGEMENT_KEY] + return configuration_settings_processed def _process_key_value(self, config): if isinstance(config, SecretReferenceConfigurationSetting): diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/azure_appconfiguration_provider-2.0.0/azure/appconfiguration/provider/_version.py new/azure_appconfiguration_provider-2.0.1/azure/appconfiguration/provider/_version.py --- old/azure_appconfiguration_provider-2.0.0/azure/appconfiguration/provider/_version.py 2025-01-06 19:39:27.000000000 +0100 +++ new/azure_appconfiguration_provider-2.0.1/azure/appconfiguration/provider/_version.py 2025-03-08 00:29:25.000000000 +0100 @@ -4,4 +4,4 @@ # license information. # ------------------------------------------------------------------------- -VERSION = "2.0.0" +VERSION = "2.0.1" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/azure_appconfiguration_provider-2.0.0/azure/appconfiguration/provider/aio/_azureappconfigurationproviderasync.py new/azure_appconfiguration_provider-2.0.1/azure/appconfiguration/provider/aio/_azureappconfigurationproviderasync.py --- old/azure_appconfiguration_provider-2.0.0/azure/appconfiguration/provider/aio/_azureappconfigurationproviderasync.py 2025-01-06 19:39:27.000000000 +0100 +++ new/azure_appconfiguration_provider-2.0.1/azure/appconfiguration/provider/aio/_azureappconfigurationproviderasync.py 2025-03-08 00:29:25.000000000 +0100 @@ -20,6 +20,7 @@ Union, ) from azure.appconfiguration import ( # type:ignore # pylint:disable=no-name-in-module + ConfigurationSetting, FeatureFlagConfigurationSetting, SecretReferenceConfigurationSetting, ) @@ -376,15 +377,7 @@ self._selects, self._refresh_on, headers=headers, **kwargs ) ) - configuration_settings_processed = {} - for config in configuration_settings: - key = self._process_key_name(config) - value = await self._process_key_value(config) - configuration_settings_processed[key] = value - if self._feature_flag_enabled: - configuration_settings_processed[FEATURE_MANAGEMENT_KEY] = self._dict[ - FEATURE_MANAGEMENT_KEY - ] + configuration_settings_processed = await self._process_configurations(configuration_settings) if need_refresh: self._dict = configuration_settings_processed if self._feature_flag_refresh_enabled: @@ -406,13 +399,13 @@ break except AzureError as e: exception = e - logger.debug("Failed to refresh configurations from endpoint %s", client.endpoint) + logger.warning("Failed to refresh configurations from endpoint %s", client.endpoint) self._replica_client_manager.backoff(client) is_failover_request = True if not success: self._refresh_timer.backoff() if self._on_refresh_error: - self._on_refresh_error(exception) + await self._on_refresh_error(exception) return raise exception if self._on_refresh_success: @@ -426,6 +419,11 @@ is_failover_request = False replica_count = self._replica_client_manager.get_client_count() - 1 + error_message = """ + Failed to load configuration settings. No Azure App Configuration stores successfully loaded from. + """ + exception: Exception = RuntimeError(error_message) + while client := self._replica_client_manager.get_next_active_client(): headers = update_correlation_context_header( kwargs.pop("headers", {}), @@ -441,12 +439,7 @@ configuration_settings, sentinel_keys = await client.load_configuration_settings( self._selects, self._refresh_on, headers=headers, **kwargs ) - configuration_settings_processed = {} - for config in configuration_settings: - key = self._process_key_name(config) - value = await self._process_key_value(config) - configuration_settings_processed[key] = value - + configuration_settings_processed = await self._process_configurations(configuration_settings) if self._feature_flag_enabled: feature_flags, feature_flag_sentinel_keys, used_filters = await client.load_feature_flags( self._feature_flag_selectors, self._feature_flag_refresh_enabled, headers=headers, **kwargs @@ -480,13 +473,25 @@ self._refresh_on = sentinel_keys self._dict = configuration_settings_processed return - except AzureError: - logger.debug("Failed to refresh configurations from endpoint %s", client.endpoint) + except AzureError as e: + exception = e + logger.warning("Failed to load configurations from endpoint %s.\n %s", client.endpoint, e.message) self._replica_client_manager.backoff(client) is_failover_request = True - raise RuntimeError( - "Failed to load configuration settings. No Azure App Configuration stores successfully loaded from." - ) + raise exception + + async def _process_configurations(self, configuration_settings: List[ConfigurationSetting]) -> Dict[str, Any]: + configuration_settings_processed = {} + for config in configuration_settings: + if isinstance(config, FeatureFlagConfigurationSetting): + # Feature flags are not processed like other settings + continue + key = self._process_key_name(config) + value = await self._process_key_value(config) + configuration_settings_processed[key] = value + if self._feature_flag_enabled and FEATURE_MANAGEMENT_KEY in self._dict: + configuration_settings_processed[FEATURE_MANAGEMENT_KEY] = self._dict[FEATURE_MANAGEMENT_KEY] + return configuration_settings_processed async def _process_key_value(self, config): if isinstance(config, SecretReferenceConfigurationSetting): diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/azure_appconfiguration_provider-2.0.0/azure_appconfiguration_provider.egg-info/PKG-INFO new/azure_appconfiguration_provider-2.0.1/azure_appconfiguration_provider.egg-info/PKG-INFO --- old/azure_appconfiguration_provider-2.0.0/azure_appconfiguration_provider.egg-info/PKG-INFO 2025-01-06 19:41:16.000000000 +0100 +++ new/azure_appconfiguration_provider-2.0.1/azure_appconfiguration_provider.egg-info/PKG-INFO 2025-03-08 00:32:08.000000000 +0100 @@ -1,13 +1,13 @@ Metadata-Version: 2.1 Name: azure-appconfiguration-provider -Version: 2.0.0 +Version: 2.0.1 Summary: Microsoft App Configuration Provider Library for Python Home-page: https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/appconfiguration/azure-appconfiguration-provider Author: Microsoft Corporation Author-email: azpysdkh...@microsoft.com License: MIT License Keywords: azure,azure sdk -Classifier: Development Status :: 4 - Beta +Classifier: Development Status :: 5 - Production/Stable Classifier: Programming Language :: Python Classifier: Programming Language :: Python :: 3 :: Only Classifier: Programming Language :: Python :: 3 @@ -20,8 +20,8 @@ Requires-Python: >=3.6 Description-Content-Type: text/markdown License-File: LICENSE -Requires-Dist: azure-core>=1.28.0 -Requires-Dist: azure-appconfiguration>=1.6.0 +Requires-Dist: azure-core>=1.30.0 +Requires-Dist: azure-appconfiguration>=1.6.1 Requires-Dist: azure-keyvault-secrets>=4.3.0 Requires-Dist: dnspython>=2.6.1 @@ -273,6 +273,19 @@ # Release History +## 2.0.1 (2025-03-07) + +### Bugs Fixed + +* Updates the failure to load from a config store from a debug level log to a warning level log. +* Fixes an issue where the stack trace from the azure sdk wasn't being logged on startup. +* Fixes a bug where feature flags could be loaded as configurations. + +### Other Changes + +* Bumped minimum dependency on `azure-core` to `>=1.30.0` +* Bumped minimum dependency on `azure-appconfiguration` to `>=1.6.1` + ## 2.0.0 (2025-01-06) ### Features Added diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/azure_appconfiguration_provider-2.0.0/azure_appconfiguration_provider.egg-info/requires.txt new/azure_appconfiguration_provider-2.0.1/azure_appconfiguration_provider.egg-info/requires.txt --- old/azure_appconfiguration_provider-2.0.0/azure_appconfiguration_provider.egg-info/requires.txt 2025-01-06 19:41:16.000000000 +0100 +++ new/azure_appconfiguration_provider-2.0.1/azure_appconfiguration_provider.egg-info/requires.txt 2025-03-08 00:32:08.000000000 +0100 @@ -1,4 +1,4 @@ -azure-core>=1.28.0 -azure-appconfiguration>=1.6.0 +azure-core>=1.30.0 +azure-appconfiguration>=1.6.1 azure-keyvault-secrets>=4.3.0 dnspython>=2.6.1 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/azure_appconfiguration_provider-2.0.0/samples/README.md new/azure_appconfiguration_provider-2.0.1/samples/README.md --- old/azure_appconfiguration_provider-2.0.0/samples/README.md 2025-01-06 19:39:27.000000000 +0100 +++ new/azure_appconfiguration_provider-2.0.1/samples/README.md 2025-03-08 00:29:25.000000000 +0100 @@ -60,5 +60,5 @@ <!-- LINKS --> [azure_sub]: https://azure.microsoft.com/free/ -[azure_cli]: https://docs.microsoft.com/cli/azure +[azure_cli]: https://learn.microsoft.com/cli/azure [configuration_store]: https://azure.microsoft.com/services/app-configuration/ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/azure_appconfiguration_provider-2.0.0/setup.py new/azure_appconfiguration_provider-2.0.1/setup.py --- old/azure_appconfiguration_provider-2.0.0/setup.py 2025-01-06 19:39:27.000000000 +0100 +++ new/azure_appconfiguration_provider-2.0.1/setup.py 2025-03-08 00:29:25.000000000 +0100 @@ -57,7 +57,7 @@ url="https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/appconfiguration/azure-appconfiguration-provider", keywords="azure, azure sdk", classifiers=[ - "Development Status :: 4 - Beta", + "Development Status :: 5 - Production/Stable", "Programming Language :: Python", "Programming Language :: Python :: 3 :: Only", "Programming Language :: Python :: 3", @@ -72,8 +72,8 @@ packages=find_packages(exclude=exclude_packages), python_requires=">=3.6", install_requires=[ - "azure-core>=1.28.0", - "azure-appconfiguration>=1.6.0", + "azure-core>=1.30.0", + "azure-appconfiguration>=1.6.1", "azure-keyvault-secrets>=4.3.0", "dnspython>=2.6.1", ], diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/azure_appconfiguration_provider-2.0.0/tests/test_async_provider.py new/azure_appconfiguration_provider-2.0.1/tests/test_async_provider.py --- old/azure_appconfiguration_provider-2.0.0/tests/test_async_provider.py 2025-01-06 19:39:27.000000000 +0100 +++ new/azure_appconfiguration_provider-2.0.1/tests/test_async_provider.py 2025-03-08 00:29:25.000000000 +0100 @@ -22,6 +22,7 @@ ) as client: assert client["message"] == "hi" assert client["my_json"]["key"] == "value" + assert ".appconfig.featureflag/Alpha" not in client assert FEATURE_MANAGEMENT_KEY in client assert has_feature_flag(client, "Alpha") diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/azure_appconfiguration_provider-2.0.0/tests/test_async_provider_aad.py new/azure_appconfiguration_provider-2.0.1/tests/test_async_provider_aad.py --- old/azure_appconfiguration_provider-2.0.0/tests/test_async_provider_aad.py 2025-01-06 19:39:27.000000000 +0100 +++ new/azure_appconfiguration_provider-2.0.1/tests/test_async_provider_aad.py 2025-03-08 00:29:25.000000000 +0100 @@ -22,6 +22,7 @@ ) as client: assert client.get("message") == "hi" assert client["my_json"]["key"] == "value" + assert ".appconfig.featureflag/Alpha" not in client assert FEATURE_MANAGEMENT_KEY in client assert has_feature_flag(client, "Alpha") diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/azure_appconfiguration_provider-2.0.0/tests/test_provider.py new/azure_appconfiguration_provider-2.0.1/tests/test_provider.py --- old/azure_appconfiguration_provider-2.0.0/tests/test_provider.py 2025-01-06 19:39:27.000000000 +0100 +++ new/azure_appconfiguration_provider-2.0.1/tests/test_provider.py 2025-03-08 00:29:25.000000000 +0100 @@ -30,6 +30,7 @@ ) assert client["message"] == "hi" assert client["my_json"]["key"] == "value" + assert ".appconfig.featureflag/Alpha" not in client assert FEATURE_MANAGEMENT_KEY in client assert has_feature_flag(client, "Alpha") diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/azure_appconfiguration_provider-2.0.0/tests/test_provider_aad.py new/azure_appconfiguration_provider-2.0.1/tests/test_provider_aad.py --- old/azure_appconfiguration_provider-2.0.0/tests/test_provider_aad.py 2025-01-06 19:39:27.000000000 +0100 +++ new/azure_appconfiguration_provider-2.0.1/tests/test_provider_aad.py 2025-03-08 00:29:25.000000000 +0100 @@ -22,6 +22,7 @@ ) assert client["message"] == "hi" assert client["my_json"]["key"] == "value" + assert ".appconfig.featureflag/Alpha" not in client assert FEATURE_MANAGEMENT_KEY in client assert has_feature_flag(client, "Alpha")