{"action":"created","issue":{"url":"https://api.github.com/repos/haskell-nix/hnix-store/issues/7","repository_url":"https://api.github.com/repos/haskell-nix/hnix-store","labels_url":"https://api.github.com/repos/haskell-nix/hnix-store/issues/7/labels{/name}","comments_url":"https://api.github.com/repos/haskell-nix/hnix-store/issues/7/comments","events_url":"https://api.github.com/repos/haskell-nix/hnix-store/issues/7/events","html_url":"https://github.com/haskell-nix/hnix-store/pull/7","id":318841979,"number":7,"title":"NAR parser/generator","user":{"login":"imalsogreg","id":993484,"avatar_url":"https://avatars3.githubusercontent.com/u/993484?v=4","gravatar_id":"","url":"https://api.github.com/users/imalsogreg","html_url":"https://github.com/imalsogreg","followers_url":"https://api.github.com/users/imalsogreg/followers","following_url":"https://api.github.com/users/imalsogreg/following{/other_user}","gists_url":"https://api.github.com/users/imalsogreg/gists{/gist_id}","starred_url":"https://api.github.com/users/imalsogreg/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/imalsogreg/subscriptions","organizations_url":"https://api.github.com/users/imalsogreg/orgs","repos_url":"https://api.github.com/users/imalsogreg/repos","events_url":"https://api.github.com/users/imalsogreg/events{/privacy}","received_events_url":"https://api.github.com/users/imalsogreg/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":5,"created_at":"2018-04-30T10:10:57Z","updated_at":"2018-05-06T02:43:41Z","closed_at":null,"author_association":"NONE","pull_request":{"url":"https://api.github.com/repos/haskell-nix/hnix-store/pulls/7","html_url":"https://github.com/haskell-nix/hnix-store/pull/7","diff_url":"https://github.com/haskell-nix/hnix-store/pull/7.diff","patch_url":"https://github.com/haskell-nix/hnix-store/pull/7.patch"},"body":"NAR parser and generator. Moved `Path` types and functions into `Paths.hs` module.\r\n\r\n### Todo\r\n - [x] cleanup\r\n - [x] test the generator manually\r\n - [x] create tests (parse . gen === id)\r\n\r\n### Testing Done\r\n\r\nI used `nix-store --dump` to create sample nar files: a plain file, an executable, a symlink, and a directory with those files. The NAR files on disk match those generated by `hnix-store-core`, and `hnix-store-core`'s parser and generator are consistent with each other.\r\n\r\n```\r\ntests/Driver.hs\r\n  narEncoding\r\n    parser-roundtrip\r\n      roundtrips regular:    OK\r\n      roundtrips regular 2:  OK\r\n      roundtrips executable: OK\r\n      roundtrips symlink:    OK\r\n      roundtrips directory:  OK\r\n    matches-nix-store\r\n      matches regular:       OK\r\n      matches regular':      OK\r\n      matches executable:    OK\r\n      matches symlink:       OK\r\n      matches directory:     OK\r\n\r\nAll 10 tests passed (0.00s)\r\n\r\n...done\r\n```\r\n"},"comment":{"url":"https://api.github.com/repos/haskell-nix/hnix-store/issues/comments/386849398","html_url":"https://github.com/haskell-nix/hnix-store/pull/7#issuecomment-386849398","issue_url":"https://api.github.com/repos/haskell-nix/hnix-store/issues/7","id":386849398,"user":{"login":"imalsogreg","id":993484,"avatar_url":"https://avatars3.githubusercontent.com/u/993484?v=4","gravatar_id":"","url":"https://api.github.com/users/imalsogreg","html_url":"https://github.com/imalsogreg","followers_url":"https://api.github.com/users/imalsogreg/followers","following_url":"https://api.github.com/users/imalsogreg/following{/other_user}","gists_url":"https://api.github.com/users/imalsogreg/gists{/gist_id}","starred_url":"https://api.github.com/users/imalsogreg/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/imalsogreg/subscriptions","organizations_url":"https://api.github.com/users/imalsogreg/orgs","repos_url":"https://api.github.com/users/imalsogreg/repos","events_url":"https://api.github.com/users/imalsogreg/events{/privacy}","received_events_url":"https://api.github.com/users/imalsogreg/received_events","type":"User","site_admin":false},"created_at":"2018-05-06T02:43:41Z","updated_at":"2018-05-06T02:43:41Z","author_association":"NONE","body":"@shlevy actually there are a couple things in your prior comments left for me to do. I'll update the TODO list. Feel free to edit it if you would like go grow or shrink the scope for _this_ PR :)"}}
{"actor":{"display_login":"imalsogreg"}}