{"action":"created","issue":{"url":"https://api.github.com/repos/haskell/cabal/issues/3039","labels_url":"https://api.github.com/repos/haskell/cabal/issues/3039/labels{/name}","comments_url":"https://api.github.com/repos/haskell/cabal/issues/3039/comments","events_url":"https://api.github.com/repos/haskell/cabal/issues/3039/events","html_url":"https://github.com/haskell/cabal/pull/3039","id":126507166,"number":3039,"title":"Tests for #2731 (Ignore dependencies that are not Buildable)","user":{"login":"grayjay","id":4276753,"avatar_url":"https://avatars.githubusercontent.com/u/4276753?v=3","gravatar_id":"","url":"https://api.github.com/users/grayjay","html_url":"https://github.com/grayjay","followers_url":"https://api.github.com/users/grayjay/followers","following_url":"https://api.github.com/users/grayjay/following{/other_user}","gists_url":"https://api.github.com/users/grayjay/gists{/gist_id}","starred_url":"https://api.github.com/users/grayjay/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/grayjay/subscriptions","organizations_url":"https://api.github.com/users/grayjay/orgs","repos_url":"https://api.github.com/users/grayjay/repos","events_url":"https://api.github.com/users/grayjay/events{/privacy}","received_events_url":"https://api.github.com/users/grayjay/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":5,"created_at":"2016-01-13T20:35:21Z","updated_at":"2016-01-14T20:38:08Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/haskell/cabal/pulls/3039","html_url":"https://github.com/haskell/cabal/pull/3039","diff_url":"https://github.com/haskell/cabal/pull/3039.diff","patch_url":"https://github.com/haskell/cabal/pull/3039.patch"},"body":"I added a package test for the Cabal component and several unit tests for the solver component.  This PR also resolves a conflict between #2731 and #2732.  I had to make a few changes to the solver DSL:\r\n\r\n* Allow a flag to be used multiple times in a package.  Reusing a flag previously caused this error:\r\n\r\n        Exception: internal error: could not construct a valid install plan.\r\n        The proposed (invalid) plan contained the following problems:\r\n        Package B-1.0.0 has an invalid configuration, in particular:\r\n          missing an assignment for the flag: my-flag\r\n\r\n* Represent the Buildable field.  Now both sides of a conditional can be either not buildable, or buildable with a list of dependencies.\r\n* Allow a compiler to support zero languages or extensions.  I changed the signature of `DSL.exResolve` to distinguish between not checking languages/extensions and not allowing any languages/extensions.\r\n\r\nI thought of two other improvements, but I left them for separate issues or PRs.  I didn't see an easy way to check flag choices directly in the DSL.  I instead had to check the dependencies that the flags introduced.  I also noticed that the default flag value is false in the DSL and true in cabal-install/Cabal.  Some of these tests rely on the default, so it should probably be consistent."},"comment":{"url":"https://api.github.com/repos/haskell/cabal/issues/comments/171772664","html_url":"https://github.com/haskell/cabal/pull/3039#issuecomment-171772664","issue_url":"https://api.github.com/repos/haskell/cabal/issues/3039","id":171772664,"user":{"login":"ezyang","id":13564,"avatar_url":"https://avatars.githubusercontent.com/u/13564?v=3","gravatar_id":"","url":"https://api.github.com/users/ezyang","html_url":"https://github.com/ezyang","followers_url":"https://api.github.com/users/ezyang/followers","following_url":"https://api.github.com/users/ezyang/following{/other_user}","gists_url":"https://api.github.com/users/ezyang/gists{/gist_id}","starred_url":"https://api.github.com/users/ezyang/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ezyang/subscriptions","organizations_url":"https://api.github.com/users/ezyang/orgs","repos_url":"https://api.github.com/users/ezyang/repos","events_url":"https://api.github.com/users/ezyang/events{/privacy}","received_events_url":"https://api.github.com/users/ezyang/received_events","type":"User","site_admin":false},"created_at":"2016-01-14T20:38:08Z","updated_at":"2016-01-14T20:38:08Z","body":"https://docs.travis-ci.com/user/triggering-builds/ might be of help."}}