{"action":"created","issue":{"url":"https://api.github.com/repos/haskell/cabal/issues/5809","repository_url":"https://api.github.com/repos/haskell/cabal","labels_url":"https://api.github.com/repos/haskell/cabal/issues/5809/labels{/name}","comments_url":"https://api.github.com/repos/haskell/cabal/issues/5809/comments","events_url":"https://api.github.com/repos/haskell/cabal/issues/5809/events","html_url":"https://github.com/haskell/cabal/issues/5809","id":393171578,"node_id":"MDU6SXNzdWUzOTMxNzE1Nzg=","number":5809,"title":"Document the relationship between ComponentId, UnitId, MungedPackageId, PackageId etc.","user":{"login":"phadej","id":51087,"node_id":"MDQ6VXNlcjUxMDg3","avatar_url":"https://avatars2.githubusercontent.com/u/51087?v=4","gravatar_id":"","url":"https://api.github.com/users/phadej","html_url":"https://github.com/phadej","followers_url":"https://api.github.com/users/phadej/followers","following_url":"https://api.github.com/users/phadej/following{/other_user}","gists_url":"https://api.github.com/users/phadej/gists{/gist_id}","starred_url":"https://api.github.com/users/phadej/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/phadej/subscriptions","organizations_url":"https://api.github.com/users/phadej/orgs","repos_url":"https://api.github.com/users/phadej/repos","events_url":"https://api.github.com/users/phadej/events{/privacy}","received_events_url":"https://api.github.com/users/phadej/received_events","type":"User","site_admin":false},"labels":[{"id":54312523,"node_id":"MDU6TGFiZWw1NDMxMjUyMw==","url":"https://api.github.com/repos/haskell/cabal/labels/documentation","name":"documentation","color":"bfdadc","default":false}],"state":"open","locked":false,"assignee":{"login":"ezyang","id":13564,"node_id":"MDQ6VXNlcjEzNTY0","avatar_url":"https://avatars0.githubusercontent.com/u/13564?v=4","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},"assignees":[{"login":"ezyang","id":13564,"node_id":"MDQ6VXNlcjEzNTY0","avatar_url":"https://avatars0.githubusercontent.com/u/13564?v=4","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},{"login":"hvr","id":285533,"node_id":"MDQ6VXNlcjI4NTUzMw==","avatar_url":"https://avatars3.githubusercontent.com/u/285533?v=4","gravatar_id":"","url":"https://api.github.com/users/hvr","html_url":"https://github.com/hvr","followers_url":"https://api.github.com/users/hvr/followers","following_url":"https://api.github.com/users/hvr/following{/other_user}","gists_url":"https://api.github.com/users/hvr/gists{/gist_id}","starred_url":"https://api.github.com/users/hvr/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/hvr/subscriptions","organizations_url":"https://api.github.com/users/hvr/orgs","repos_url":"https://api.github.com/users/hvr/repos","events_url":"https://api.github.com/users/hvr/events{/privacy}","received_events_url":"https://api.github.com/users/hvr/received_events","type":"User","site_admin":false}],"milestone":null,"comments":1,"created_at":"2018-12-20T18:58:16Z","updated_at":"2018-12-20T19:03:53Z","closed_at":null,"author_association":"COLLABORATOR","body":"There are these types: `ComponentId`, `UnitId`, `MungedPackageId`, `PackageId` etc. which all seems to be *same same but different*. There should be a **technical note** in the code describing their relationship, with\r\n- links issues describing planned clean ups to be done (and what's blocking them, if they cannot be done)\r\n- whether the types are intended to be used in public text-based APIs\r\n    - with remarks what's the current state, previous point\r\n- haddocks of these types pointing to the note. \r\n\r\n---\r\n\r\nHonestly, I have no idea what are the subtle differences about these types, and I won't read through GitHub issues to find out. The note in the code would be the right place to refer.\r\n\r\n---\r\n\r\nAs an example, `ComponentId` is documented as \r\n\r\n> For non-Backpack components, this corresponds one to one with\r\n> the 'UnitId', which serves as the basis for install paths,\r\n> linker symbols, etc.\r\n\r\nAnd there are no remarks how things are different in Backpack case.\r\n\r\n---\r\n\r\nRelated issue https://github.com/haskell/cabal/issues/4761\r\n\r\nThere is a *Mapping from semantic objects in this thesis (Fig. 3.5 and Fig. 6.1) to their definitions\r\nin GHC* table in Edwards thesis. Something similar but for Cabal types would be great to have too."},"comment":{"url":"https://api.github.com/repos/haskell/cabal/issues/comments/449102505","html_url":"https://github.com/haskell/cabal/issues/5809#issuecomment-449102505","issue_url":"https://api.github.com/repos/haskell/cabal/issues/5809","id":449102505,"node_id":"MDEyOklzc3VlQ29tbWVudDQ0OTEwMjUwNQ==","user":{"login":"ezyang","id":13564,"node_id":"MDQ6VXNlcjEzNTY0","avatar_url":"https://avatars0.githubusercontent.com/u/13564?v=4","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":"2018-12-20T19:03:53Z","updated_at":"2018-12-20T19:03:53Z","author_association":"CONTRIBUTOR","body":"https://ghc.haskell.org/trac/ghc/wiki/Commentary/Packages/Concepts are the docs you are looking for."}}
{"actor":{"display_login":"ezyang"}}