{"action":"created","issue":{"url":"https://api.github.com/repos/attic-labs/noms/issues/3799","repository_url":"https://api.github.com/repos/attic-labs/noms","labels_url":"https://api.github.com/repos/attic-labs/noms/issues/3799/labels{/name}","comments_url":"https://api.github.com/repos/attic-labs/noms/issues/3799/comments","events_url":"https://api.github.com/repos/attic-labs/noms/issues/3799/events","html_url":"https://github.com/attic-labs/noms/pull/3799","id":306808636,"number":3799,"title":"Reintroduce IPFS chunkstore","user":{"login":"ORBAT","id":198324,"avatar_url":"https://avatars1.githubusercontent.com/u/198324?v=4","gravatar_id":"","url":"https://api.github.com/users/ORBAT","html_url":"https://github.com/ORBAT","followers_url":"https://api.github.com/users/ORBAT/followers","following_url":"https://api.github.com/users/ORBAT/following{/other_user}","gists_url":"https://api.github.com/users/ORBAT/gists{/gist_id}","starred_url":"https://api.github.com/users/ORBAT/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ORBAT/subscriptions","organizations_url":"https://api.github.com/users/ORBAT/orgs","repos_url":"https://api.github.com/users/ORBAT/repos","events_url":"https://api.github.com/users/ORBAT/events{/privacy}","received_events_url":"https://api.github.com/users/ORBAT/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":1,"created_at":"2018-03-20T10:33:48Z","updated_at":"2018-03-26T15:03:16Z","closed_at":null,"author_association":"NONE","pull_request":{"url":"https://api.github.com/repos/attic-labs/noms/pulls/3799","html_url":"https://github.com/attic-labs/noms/pull/3799","diff_url":"https://github.com/attic-labs/noms/pull/3799.diff","patch_url":"https://github.com/attic-labs/noms/pull/3799.patch"},"body":"This PR reintroduces the IPFS chunkstore. It also makes spec's external protocol registration thread-safe.\r\n\r\nCommit 217ba38b by @aboodman stated that\r\n\r\n> I think the right way to handle IPFS is to have it outside the tree, so I'm hoping to work on refactoring the code out of our repo entirely.\r\n\r\nbut as it currently stands, cmd/noms can't interact with IPFS stores unless it's in the main noms repo.\r\n\r\nSome notes regarding this PR:\r\n\r\n- I only noticed `d/try.go` _after_ using [`github.com/pkg/errors`](https://github.com/pkg/errors). What might actually be worth while is refactoring try.go to use pkg/errors (see e.g. [this](https://dave.cheney.net/2016/04/27/dont-just-check-errors-handle-them-gracefully) blog post) as getting textual information about error context is extremely handy\r\n- [`ChunkStoreTestSuite`](https://github.com/attic-labs/noms/blob/master/go/chunks/chunk_store_common_test.go) should probably be refactored so that it can be used for testing the IPFS chunkstore as well. I actually tried doing that (including adding a `Factory` for the IPFS chunkstore) but tests kept freezing so I scrapped it\r\n- I went with the functional option pattern as I expect there'll be a lot more options for the IPFS chunkstore. The `SetPortIdx` option should probably be complemented with separate options for setting the API/gateway/swarm ports (although only the swarm port seemed to be open when eg. running ipfs-chat)\r\n- passing options for external protocols is clunky at the moment. It might be worth while to have Spec support e.g. query strings for passing parameters\r\n- I've added a vendor.json and package.json to make dealing with the vendored dependencies easier\r\n- it doesn't touch the actual code much, so e.g. pre-existing concurrency problems are still there"},"comment":{"url":"https://api.github.com/repos/attic-labs/noms/issues/comments/376198073","html_url":"https://github.com/attic-labs/noms/pull/3799#issuecomment-376198073","issue_url":"https://api.github.com/repos/attic-labs/noms/issues/3799","id":376198073,"user":{"login":"ORBAT","id":198324,"avatar_url":"https://avatars1.githubusercontent.com/u/198324?v=4","gravatar_id":"","url":"https://api.github.com/users/ORBAT","html_url":"https://github.com/ORBAT","followers_url":"https://api.github.com/users/ORBAT/followers","following_url":"https://api.github.com/users/ORBAT/following{/other_user}","gists_url":"https://api.github.com/users/ORBAT/gists{/gist_id}","starred_url":"https://api.github.com/users/ORBAT/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ORBAT/subscriptions","organizations_url":"https://api.github.com/users/ORBAT/orgs","repos_url":"https://api.github.com/users/ORBAT/repos","events_url":"https://api.github.com/users/ORBAT/events{/privacy}","received_events_url":"https://api.github.com/users/ORBAT/received_events","type":"User","site_admin":false},"created_at":"2018-03-26T15:03:16Z","updated_at":"2018-03-26T15:03:16Z","author_association":"NONE","body":"Hi, thanks for the reply and the feedback; no worries about how long it took.\r\n\r\nI'll check the current IPFS dependencies and see if #3786 is still an issue."}}
{"actor":{"display_login":"ORBAT"}}