{"action":"created","issue":{"url":"https://api.github.com/repos/pypa/pip/issues/3016","repository_url":"https://api.github.com/repos/pypa/pip","labels_url":"https://api.github.com/repos/pypa/pip/issues/3016/labels{/name}","comments_url":"https://api.github.com/repos/pypa/pip/issues/3016/comments","events_url":"https://api.github.com/repos/pypa/pip/issues/3016/events","html_url":"https://github.com/pypa/pip/issues/3016","id":99834490,"number":3016,"title":"Idempotent \"pip uninstall\"","user":{"login":"ionelmc","id":129501,"avatar_url":"https://avatars3.githubusercontent.com/u/129501?v=4","gravatar_id":"","url":"https://api.github.com/users/ionelmc","html_url":"https://github.com/ionelmc","followers_url":"https://api.github.com/users/ionelmc/followers","following_url":"https://api.github.com/users/ionelmc/following{/other_user}","gists_url":"https://api.github.com/users/ionelmc/gists{/gist_id}","starred_url":"https://api.github.com/users/ionelmc/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ionelmc/subscriptions","organizations_url":"https://api.github.com/users/ionelmc/orgs","repos_url":"https://api.github.com/users/ionelmc/repos","events_url":"https://api.github.com/users/ionelmc/events{/privacy}","received_events_url":"https://api.github.com/users/ionelmc/received_events","type":"User","site_admin":false},"labels":[{"id":82424,"url":"https://api.github.com/repos/pypa/pip/labels/kind%20-%20enhancement","name":"kind - enhancement","color":"c5def5","default":false}],"state":"open","locked":false,"assignee":{"login":"pradyunsg","id":3275593,"avatar_url":"https://avatars1.githubusercontent.com/u/3275593?v=4","gravatar_id":"","url":"https://api.github.com/users/pradyunsg","html_url":"https://github.com/pradyunsg","followers_url":"https://api.github.com/users/pradyunsg/followers","following_url":"https://api.github.com/users/pradyunsg/following{/other_user}","gists_url":"https://api.github.com/users/pradyunsg/gists{/gist_id}","starred_url":"https://api.github.com/users/pradyunsg/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pradyunsg/subscriptions","organizations_url":"https://api.github.com/users/pradyunsg/orgs","repos_url":"https://api.github.com/users/pradyunsg/repos","events_url":"https://api.github.com/users/pradyunsg/events{/privacy}","received_events_url":"https://api.github.com/users/pradyunsg/received_events","type":"User","site_admin":false},"assignees":[{"login":"pradyunsg","id":3275593,"avatar_url":"https://avatars1.githubusercontent.com/u/3275593?v=4","gravatar_id":"","url":"https://api.github.com/users/pradyunsg","html_url":"https://github.com/pradyunsg","followers_url":"https://api.github.com/users/pradyunsg/followers","following_url":"https://api.github.com/users/pradyunsg/following{/other_user}","gists_url":"https://api.github.com/users/pradyunsg/gists{/gist_id}","starred_url":"https://api.github.com/users/pradyunsg/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pradyunsg/subscriptions","organizations_url":"https://api.github.com/users/pradyunsg/orgs","repos_url":"https://api.github.com/users/pradyunsg/repos","events_url":"https://api.github.com/users/pradyunsg/events{/privacy}","received_events_url":"https://api.github.com/users/pradyunsg/received_events","type":"User","site_admin":false}],"milestone":null,"comments":23,"created_at":"2015-08-08T21:30:17Z","updated_at":"2017-09-12T18:06:48Z","closed_at":null,"author_association":"CONTRIBUTOR","body":"If I run `pip uninstall a b` and `a` is installed but `b` is not the `pip uninstall` will error out and not uninstall `b` - as requested. I think this behavior is very surprising. Pip should maybe warn about packages that are already uninstalled? \n\nIOW, if the goal of uninstall is to remove a package, then if the package is already removed then it's a success. Why is it an error?\n"},"comment":{"url":"https://api.github.com/repos/pypa/pip/issues/comments/328935496","html_url":"https://github.com/pypa/pip/issues/3016#issuecomment-328935496","issue_url":"https://api.github.com/repos/pypa/pip/issues/3016","id":328935496,"user":{"login":"jedestep","id":1072527,"avatar_url":"https://avatars3.githubusercontent.com/u/1072527?v=4","gravatar_id":"","url":"https://api.github.com/users/jedestep","html_url":"https://github.com/jedestep","followers_url":"https://api.github.com/users/jedestep/followers","following_url":"https://api.github.com/users/jedestep/following{/other_user}","gists_url":"https://api.github.com/users/jedestep/gists{/gist_id}","starred_url":"https://api.github.com/users/jedestep/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jedestep/subscriptions","organizations_url":"https://api.github.com/users/jedestep/orgs","repos_url":"https://api.github.com/users/jedestep/repos","events_url":"https://api.github.com/users/jedestep/events{/privacy}","received_events_url":"https://api.github.com/users/jedestep/received_events","type":"User","site_admin":false},"created_at":"2017-09-12T18:06:48Z","updated_at":"2017-09-12T18:06:48Z","author_association":"NONE","body":"Obviously I can speak only for myself but from the perspective of my use cases I would say that dependencies left behind after `uninstall` constitutes an issue. My motivation for using this feature is to ensure that an environment that has `pip install -r requirements.txt` run on it frequently is always set up in exactly the same way, with no possibility of libraries shadowing each others' names, deprecated/broken libraries being left behind, or other issues resulting from library incompatibility. "}}
{"actor":{"display_login":"jedestep"}}