{"action":"created","issue":{"url":"https://api.github.com/repos/Azure/msrestazure-for-python/issues/90","repository_url":"https://api.github.com/repos/Azure/msrestazure-for-python","labels_url":"https://api.github.com/repos/Azure/msrestazure-for-python/issues/90/labels{/name}","comments_url":"https://api.github.com/repos/Azure/msrestazure-for-python/issues/90/comments","events_url":"https://api.github.com/repos/Azure/msrestazure-for-python/issues/90/events","html_url":"https://github.com/Azure/msrestazure-for-python/issues/90","id":317346277,"number":90,"title":"Patch Update 0.4.28 is a breaking change","user":{"login":"jafreck","id":31780072,"avatar_url":"https://avatars1.githubusercontent.com/u/31780072?v=4","gravatar_id":"","url":"https://api.github.com/users/jafreck","html_url":"https://github.com/jafreck","followers_url":"https://api.github.com/users/jafreck/followers","following_url":"https://api.github.com/users/jafreck/following{/other_user}","gists_url":"https://api.github.com/users/jafreck/gists{/gist_id}","starred_url":"https://api.github.com/users/jafreck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jafreck/subscriptions","organizations_url":"https://api.github.com/users/jafreck/orgs","repos_url":"https://api.github.com/users/jafreck/repos","events_url":"https://api.github.com/users/jafreck/events{/privacy}","received_events_url":"https://api.github.com/users/jafreck/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":4,"created_at":"2018-04-24T18:36:08Z","updated_at":"2018-04-26T19:37:33Z","closed_at":null,"author_association":"MEMBER","body":"Yesterday, with the 0.4.28 update, a breaking change was introduced since keyring was removed as a dependency but is still required for some functionality. Upstream libraries that have correct semantic versioning have been broken as a result. Can this patch be reverted and replaced with a increase in the major version?\r\n\r\nOr, since [SecretStroage updated to fix the breaking issue ](https://pypi.org/project/SecretStorage/#history) can the keyring dependency be re-added?"},"comment":{"url":"https://api.github.com/repos/Azure/msrestazure-for-python/issues/comments/384764673","html_url":"https://github.com/Azure/msrestazure-for-python/issues/90#issuecomment-384764673","issue_url":"https://api.github.com/repos/Azure/msrestazure-for-python/issues/90","id":384764673,"user":{"login":"jafreck","id":31780072,"avatar_url":"https://avatars1.githubusercontent.com/u/31780072?v=4","gravatar_id":"","url":"https://api.github.com/users/jafreck","html_url":"https://github.com/jafreck","followers_url":"https://api.github.com/users/jafreck/followers","following_url":"https://api.github.com/users/jafreck/following{/other_user}","gists_url":"https://api.github.com/users/jafreck/gists{/gist_id}","starred_url":"https://api.github.com/users/jafreck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jafreck/subscriptions","organizations_url":"https://api.github.com/users/jafreck/orgs","repos_url":"https://api.github.com/users/jafreck/repos","events_url":"https://api.github.com/users/jafreck/events{/privacy}","received_events_url":"https://api.github.com/users/jafreck/received_events","type":"User","site_admin":false},"created_at":"2018-04-26T19:37:33Z","updated_at":"2018-04-26T19:37:33Z","author_association":"MEMBER","body":"I think I may not be properly explaining the issue.\r\n\r\nSo, msrestazure version 0.4.0 to 0.4.12 requires keyring. 0.4.13 to 0.4.27 has keyring as optional, and 0.4.28 removes keyring as a dependency. This is a breaking change within the same minor version (which should maintain backwards compatibility). This means that any upstream repository that has specified `msrestazure~=0.4.X` in accordance with [PEP 440](https://www.python.org/dev/peps/pep-0440/#compatible-release) has been broken if it relies on keyring being available. \r\n\r\nThe azure-batch package is an example of this. Version 4.0.0 specifies msrestazrue in setup.py with: [install_requires \"msrestazure~=0.4.11\"](https://github.com/Azure/azure-sdk-for-python/blob/fbc86e377617b7c20b7876f5cc8198c381d362ce/azure-batch/setup.py#L81). This means that the newest patch update 0.4.28 is pulled in as a dependency. [Since the batch client relies on keyring being installed](https://github.com/Azure/azure-sdk-for-python/blob/azure_3.0.0/azure-batch/azure/batch/batch_auth.py), this causes a `ModuleNotFoundError: no module  named 'keyring'` when you try to auth.\r\n\r\nTo repro:\r\n1. `pip install azure-batch==4.0.0`\r\n2. `python -c 'import azure.batch.batch_auth'`\r\n3. stacktrace:\r\n```\r\n>>> import azure.batch.batch_auth as batch_auth\r\nTraceback (most recent call last):\r\n  File \"<stdin>\", line 1, in <module>\r\n  File \"C:\\...\\lib\\site-packages\\azure\\batch\\batch_auth.py\", line 9, in <module>\r\n    import keyring\r\nModuleNotFoundError: No module named 'keyring'\r\n```"}}
{"actor":{"display_login":"jafreck"}}