{"action":"created","issue":{"url":"https://api.github.com/repos/commercialhaskell/stack/issues/259","labels_url":"https://api.github.com/repos/commercialhaskell/stack/issues/259/labels{/name}","comments_url":"https://api.github.com/repos/commercialhaskell/stack/issues/259/comments","events_url":"https://api.github.com/repos/commercialhaskell/stack/issues/259/events","html_url":"https://github.com/commercialhaskell/stack/issues/259","id":86971194,"number":259,"title":"Introduce an alternative to .cabal","user":{"login":"ndmitchell","id":1651197,"avatar_url":"https://avatars.githubusercontent.com/u/1651197?v=3","gravatar_id":"","url":"https://api.github.com/users/ndmitchell","html_url":"https://github.com/ndmitchell","followers_url":"https://api.github.com/users/ndmitchell/followers","following_url":"https://api.github.com/users/ndmitchell/following{/other_user}","gists_url":"https://api.github.com/users/ndmitchell/gists{/gist_id}","starred_url":"https://api.github.com/users/ndmitchell/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ndmitchell/subscriptions","organizations_url":"https://api.github.com/users/ndmitchell/orgs","repos_url":"https://api.github.com/users/ndmitchell/repos","events_url":"https://api.github.com/users/ndmitchell/events{/privacy}","received_events_url":"https://api.github.com/users/ndmitchell/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":{"url":"https://api.github.com/repos/commercialhaskell/stack/milestones/1","html_url":"https://github.com/commercialhaskell/stack/milestones/Later%20improvements","labels_url":"https://api.github.com/repos/commercialhaskell/stack/milestones/1/labels","id":1111900,"number":1,"title":"Later improvements","description":"","creator":{"login":"snoyberg","id":49415,"avatar_url":"https://avatars.githubusercontent.com/u/49415?v=3","gravatar_id":"","url":"https://api.github.com/users/snoyberg","html_url":"https://github.com/snoyberg","followers_url":"https://api.github.com/users/snoyberg/followers","following_url":"https://api.github.com/users/snoyberg/following{/other_user}","gists_url":"https://api.github.com/users/snoyberg/gists{/gist_id}","starred_url":"https://api.github.com/users/snoyberg/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/snoyberg/subscriptions","organizations_url":"https://api.github.com/users/snoyberg/orgs","repos_url":"https://api.github.com/users/snoyberg/repos","events_url":"https://api.github.com/users/snoyberg/events{/privacy}","received_events_url":"https://api.github.com/users/snoyberg/received_events","type":"User","site_admin":false},"open_issues":30,"closed_issues":3,"state":"open","created_at":"2015-05-15T10:03:10Z","updated_at":"2015-06-10T15:03:39Z","due_on":null,"closed_at":null},"comments":6,"created_at":"2015-06-10T13:29:24Z","updated_at":"2015-06-10T15:16:26Z","closed_at":null,"body":"There are lots of nasty things in .cabal files, including specifying libraries multiple times, a custom syntax (rather than YAML), a flag mechanism that works backwards etc. Once `stack` can do `stack upload` then you could take the stack-friendly alternative and produce a `.cabal` file automatically. Stack would have to be able to work with both its simplified/improved format and the existing Cabal format.\r\n\r\nNot sure if this is a good idea, but it occurred to me, so I thought I'd write it down (at the very least so you can point at this ticket and the reasons its a bad idea when the next person asks)."},"comment":{"url":"https://api.github.com/repos/commercialhaskell/stack/issues/comments/110791976","html_url":"https://github.com/commercialhaskell/stack/issues/259#issuecomment-110791976","issue_url":"https://api.github.com/repos/commercialhaskell/stack/issues/259","id":110791976,"user":{"login":"snoyberg","id":49415,"avatar_url":"https://avatars.githubusercontent.com/u/49415?v=3","gravatar_id":"","url":"https://api.github.com/users/snoyberg","html_url":"https://github.com/snoyberg","followers_url":"https://api.github.com/users/snoyberg/followers","following_url":"https://api.github.com/users/snoyberg/following{/other_user}","gists_url":"https://api.github.com/users/snoyberg/gists{/gist_id}","starred_url":"https://api.github.com/users/snoyberg/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/snoyberg/subscriptions","organizations_url":"https://api.github.com/users/snoyberg/orgs","repos_url":"https://api.github.com/users/snoyberg/repos","events_url":"https://api.github.com/users/snoyberg/events{/privacy}","received_events_url":"https://api.github.com/users/snoyberg/received_events","type":"User","site_admin":false},"created_at":"2015-06-10T15:16:26Z","updated_at":"2015-06-10T15:16:26Z","body":"In the world of stack, explicitly listing packages isn't a hard requirement actually. We could do something intelligent like:\r\n\r\n* Try to compile\r\n* If it fails, look at the module that's missing\r\n* Go to the build plan and determine which package it comes from, and install it\r\n\r\nNot saying this is a good idea, there are downsides, but pointing out that there are entire regions of the design space that we have open to us."}}