{"action":"created","issue":{"url":"https://api.github.com/repos/pypa/pip/issues/2616","labels_url":"https://api.github.com/repos/pypa/pip/issues/2616/labels{/name}","comments_url":"https://api.github.com/repos/pypa/pip/issues/2616/comments","events_url":"https://api.github.com/repos/pypa/pip/issues/2616/events","html_url":"https://github.com/pypa/pip/pull/2616","id":65119545,"number":2616,"title":"Issue #2478: Topological installation order","user":{"login":"rbtcollins","id":499678,"avatar_url":"https://avatars.githubusercontent.com/u/499678?v=3","gravatar_id":"","url":"https://api.github.com/users/rbtcollins","html_url":"https://github.com/rbtcollins","followers_url":"https://api.github.com/users/rbtcollins/followers","following_url":"https://api.github.com/users/rbtcollins/following{/other_user}","gists_url":"https://api.github.com/users/rbtcollins/gists{/gist_id}","starred_url":"https://api.github.com/users/rbtcollins/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rbtcollins/subscriptions","organizations_url":"https://api.github.com/users/rbtcollins/orgs","repos_url":"https://api.github.com/users/rbtcollins/repos","events_url":"https://api.github.com/users/rbtcollins/events{/privacy}","received_events_url":"https://api.github.com/users/rbtcollins/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":2,"created_at":"2015-03-30T02:18:26Z","updated_at":"2015-03-30T22:07:00Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/pypa/pip/pulls/2616","html_url":"https://github.com/pypa/pip/pull/2616","diff_url":"https://github.com/pypa/pip/pull/2616.diff","patch_url":"https://github.com/pypa/pip/pull/2616.patch"},"body":"This fulfils the request in Issue 2478 - install dependencies in topological order.\r\n\r\nThe finished order is:\r\n - anything install_require'd before the requiring thing\r\n - as given for user supplied requirements where compatible with the install-requiring constraint\r\n\r\nExamples:\r\n pip install foo bar, where foo depends on bar will install bar, then foo.\r\n pip install foo bar, where foo depends on baz will install baz, foo, bar."},"comment":{"url":"https://api.github.com/repos/pypa/pip/issues/comments/87849902","html_url":"https://github.com/pypa/pip/pull/2616#issuecomment-87849902","issue_url":"https://api.github.com/repos/pypa/pip/issues/2616","id":87849902,"user":{"login":"rbtcollins","id":499678,"avatar_url":"https://avatars.githubusercontent.com/u/499678?v=3","gravatar_id":"","url":"https://api.github.com/users/rbtcollins","html_url":"https://github.com/rbtcollins","followers_url":"https://api.github.com/users/rbtcollins/followers","following_url":"https://api.github.com/users/rbtcollins/following{/other_user}","gists_url":"https://api.github.com/users/rbtcollins/gists{/gist_id}","starred_url":"https://api.github.com/users/rbtcollins/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rbtcollins/subscriptions","organizations_url":"https://api.github.com/users/rbtcollins/orgs","repos_url":"https://api.github.com/users/rbtcollins/repos","events_url":"https://api.github.com/users/rbtcollins/events{/privacy}","received_events_url":"https://api.github.com/users/rbtcollins/received_events","type":"User","site_admin":false},"created_at":"2015-03-30T22:07:00Z","updated_at":"2015-03-30T22:07:00Z","body":"@xavfernandez this has nothing to do with setup_requires. Topological sorting is an existing feature request predating my work on setup_requires, but which increases the reliability of building and installing things - because there are setup.py's where egg_info can be run, but install/bdist_wheel etc can fail if the dependencies have not been installed. Because we can't have nice things. This is why folk have had to tweak install orders in the past, because pip was installing in 'first-found' or 'last-found' order, neither of which solve this generally."}}