{"action":"created","issue":{"url":"https://api.github.com/repos/input-output-hk/cardano-sl/issues/2985","repository_url":"https://api.github.com/repos/input-output-hk/cardano-sl","labels_url":"https://api.github.com/repos/input-output-hk/cardano-sl/issues/2985/labels{/name}","comments_url":"https://api.github.com/repos/input-output-hk/cardano-sl/issues/2985/comments","events_url":"https://api.github.com/repos/input-output-hk/cardano-sl/issues/2985/events","html_url":"https://github.com/input-output-hk/cardano-sl/pull/2985","id":325872520,"number":2985,"title":"[CDEC-330] Remove cycle in `Pos/Core/Block` modules","user":{"login":"ruhatch","id":8578982,"avatar_url":"https://avatars0.githubusercontent.com/u/8578982?v=4","gravatar_id":"","url":"https://api.github.com/users/ruhatch","html_url":"https://github.com/ruhatch","followers_url":"https://api.github.com/users/ruhatch/followers","following_url":"https://api.github.com/users/ruhatch/following{/other_user}","gists_url":"https://api.github.com/users/ruhatch/gists{/gist_id}","starred_url":"https://api.github.com/users/ruhatch/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ruhatch/subscriptions","organizations_url":"https://api.github.com/users/ruhatch/orgs","repos_url":"https://api.github.com/users/ruhatch/repos","events_url":"https://api.github.com/users/ruhatch/events{/privacy}","received_events_url":"https://api.github.com/users/ruhatch/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":1,"created_at":"2018-05-23T21:03:25Z","updated_at":"2018-05-23T21:54:14Z","closed_at":null,"author_association":"CONTRIBUTOR","pull_request":{"url":"https://api.github.com/repos/input-output-hk/cardano-sl/pulls/2985","html_url":"https://github.com/input-output-hk/cardano-sl/pull/2985","diff_url":"https://github.com/input-output-hk/cardano-sl/pull/2985.diff","patch_url":"https://github.com/input-output-hk/cardano-sl/pull/2985.patch"},"body":"## Description\r\n\r\nThis is the first stage of clean up of `Pos.Core.Block` modules. It:\r\n\r\n- Moves the `Blockchain` instances for `GenesisBlockchain` and `MainBlockchain` into `Pos.Core.Block.Union.Types`\r\n- Removes the `data family` definition of `BlockHeader`\r\n- Moves `HeaderHash` and `HasHeaderHash` into `Pos.Core.Block.Union.Types`\r\n- A bunch of other small changes to remove any module cycles\r\n\r\nThe next stage would:\r\n\r\n- Break up the `Pos.Core.Class` module, pushing overloaded accessors back to their original types\r\n- Clean up the `Instances` and `Lens` files in the `Pos.Core.Block` set of modules\r\n- Rename the `Pos.Core.Block.Union.Types` to `Pos.Core.Block`, replacing the existing reexport file\r\n\r\nThis would leave us with only four files:\r\n\r\n- `Pos.Core.Block.Blockchain` containing `Blockchain` class and `GenericBlock(Header)` definitions\r\n- `Pos.Core.Block.Genesis` containing most types and instances for `Blockchain GenesisBlockchain`\r\n- `Pos.Core.Block.Main` containing most types and instances for `Blockchain MainBlockchain`\r\n- `Pos.Core.Block` import the other three and assembling the `Blockchain` instances\r\n\r\n<!--- A brief description of this PR and the problem is trying to solve -->\r\n\r\n## Linked issue\r\n\r\n[CDEC-330](https://iohk.myjetbrains.com/youtrack/issue/CDEC-330)\r\n\r\n<!--- Put here the relevant issue from YouTrack -->\r\n\r\n## Type of change\r\n<!--- What types of changes does your code introduce? Put an `x` in all the boxes that apply and `~` in the ones that do not: -->\r\n- [~] 🐞 Bug fix (non-breaking change which fixes an issue)\r\n- [~] 🛠 New feature (non-breaking change which adds functionality)\r\n- [~] ⚠️ Breaking change (fix or feature that would cause existing functionality to change)\r\n- [x] 🏭 Refactoring that does not change existing functionality but does improve things like code readability, structure etc\r\n- [~] 🔨 New or improved tests for existing code\r\n- [~] ⛑ git-flow chore (backport, hotfix, etc)\r\n\r\n## Developer checklist\r\n<!--- A mental checklist for the developer submitting the PR. Put an `x` in all the boxes that apply and `~` in the ones that do not: --->\r\n- [x] I have read the [style guide](https://github.com/input-output-hk/cardano-sl/blob/develop/docs/style-guide.md) document, and my code follows the code style of this project.\r\n- [x] If my code deals with exceptions, it follows the [guidelines](https://github.com/input-output-hk/cardano-sl/blob/develop/docs/exceptions.md).\r\n- [x] I have updated any documentation accordingly, if needed. Documentation changes can be reflected in opening a PR on [cardanodocs.com](https://github.com/input-output-hk/cardanodocs.com), amending the inline [Haddock](https://www.haskell.org/haddock/) comments, any relevant README file or one of the document listed in the [docs](https://github.com/input-output-hk/cardano-sl/tree/develop/docs) directory.\r\n\r\n## Testing checklist\r\n<!-- If you aren't providing any tests as part of this PR, use this section to state clearly why. It needs to be a strong motivation and definitely the exception, not the rule. -->\r\n- [~] I have added tests to cover my changes.\r\n- [x] All new and existing tests passed.\r\n\r\n## QA Steps\r\n<!--- Which are the steps needed to test this feature, if any? -->\r\n\r\n## Screenshots (if available)\r\n<!--- Upload a GIF, an asciinema video or an image demoing the feature -->\r\n"},"comment":{"url":"https://api.github.com/repos/input-output-hk/cardano-sl/issues/comments/391508810","html_url":"https://github.com/input-output-hk/cardano-sl/pull/2985#issuecomment-391508810","issue_url":"https://api.github.com/repos/input-output-hk/cardano-sl/issues/2985","id":391508810,"user":{"login":"ruhatch","id":8578982,"avatar_url":"https://avatars0.githubusercontent.com/u/8578982?v=4","gravatar_id":"","url":"https://api.github.com/users/ruhatch","html_url":"https://github.com/ruhatch","followers_url":"https://api.github.com/users/ruhatch/followers","following_url":"https://api.github.com/users/ruhatch/following{/other_user}","gists_url":"https://api.github.com/users/ruhatch/gists{/gist_id}","starred_url":"https://api.github.com/users/ruhatch/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ruhatch/subscriptions","organizations_url":"https://api.github.com/users/ruhatch/orgs","repos_url":"https://api.github.com/users/ruhatch/repos","events_url":"https://api.github.com/users/ruhatch/events{/privacy}","received_events_url":"https://api.github.com/users/ruhatch/received_events","type":"User","site_admin":false},"created_at":"2018-05-23T21:54:13Z","updated_at":"2018-05-23T21:54:13Z","author_association":"CONTRIBUTOR","body":"@avieth Just audited the usage of the `Blockchain` class and it's not used in more than a couple of places. I'll get going on removing it right now! I'll still put it into a separate PR though I think."}}
{"actor":{"display_login":"ruhatch"}}