{"action":"created","issue":{"url":"https://api.github.com/repos/haskell/cabal/issues/1575","labels_url":"https://api.github.com/repos/haskell/cabal/issues/1575/labels{/name}","comments_url":"https://api.github.com/repos/haskell/cabal/issues/1575/comments","events_url":"https://api.github.com/repos/haskell/cabal/issues/1575/events","html_url":"https://github.com/haskell/cabal/issues/1575","id":22433284,"number":1575,"title":"Do dependency resolution on a per component basis","user":{"login":"tibbe","id":17277,"avatar_url":"https://avatars.githubusercontent.com/u/17277?v=3","gravatar_id":"","url":"https://api.github.com/users/tibbe","html_url":"https://github.com/tibbe","followers_url":"https://api.github.com/users/tibbe/followers","following_url":"https://api.github.com/users/tibbe/following{/other_user}","gists_url":"https://api.github.com/users/tibbe/gists{/gist_id}","starred_url":"https://api.github.com/users/tibbe/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tibbe/subscriptions","organizations_url":"https://api.github.com/users/tibbe/orgs","repos_url":"https://api.github.com/users/tibbe/repos","events_url":"https://api.github.com/users/tibbe/events{/privacy}","received_events_url":"https://api.github.com/users/tibbe/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":9,"created_at":"2013-11-11T08:19:43Z","updated_at":"2015-04-16T12:16:32Z","closed_at":null,"body":"I think we should create the install plan on a component (i.e. library, executable, test-suite, and benchmark) basis instead of creating one for the whole package.\r\n\r\nThere are two use cases I can think of:\r\n\r\n1. There's a growing number of packages (anything that's a dependency of either test-frame-work and its related packages or of criterion) that can't have test suite or benchmark sections, as that would create a dependency cycle.\r\n\r\n2. Users have requested being able to build executables (in a single package) that have conflicting dependencies.\r\n\r\nI suggest that we treat each component *as if* it was a \"package\" with name package-x.y.z.w:component-name, for the purpose of dependency resolution.\r\n\r\n@kosmikus could you estimate how hard this would be?"},"comment":{"url":"https://api.github.com/repos/haskell/cabal/issues/comments/93719675","html_url":"https://github.com/haskell/cabal/issues/1575#issuecomment-93719675","issue_url":"https://api.github.com/repos/haskell/cabal/issues/1575","id":93719675,"user":{"login":"23Skidoo","id":47439,"avatar_url":"https://avatars.githubusercontent.com/u/47439?v=3","gravatar_id":"","url":"https://api.github.com/users/23Skidoo","html_url":"https://github.com/23Skidoo","followers_url":"https://api.github.com/users/23Skidoo/followers","following_url":"https://api.github.com/users/23Skidoo/following{/other_user}","gists_url":"https://api.github.com/users/23Skidoo/gists{/gist_id}","starred_url":"https://api.github.com/users/23Skidoo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/23Skidoo/subscriptions","organizations_url":"https://api.github.com/users/23Skidoo/orgs","repos_url":"https://api.github.com/users/23Skidoo/repos","events_url":"https://api.github.com/users/23Skidoo/events{/privacy}","received_events_url":"https://api.github.com/users/23Skidoo/received_events","type":"User","site_admin":false},"created_at":"2015-04-16T12:16:32Z","updated_at":"2015-04-16T12:16:32Z","body":"Related: @edsko's work on independent goals (#2531, #2530, #2515, #2514, etc.) and [this comment](https://github.com/haskell/cabal/issues/2468#issuecomment-80688023) by @kosmikus."}}