{"action":"created","comment":{"url":"https://api.github.com/repos/ipfs/blog/pulls/comments/83117674","pull_request_review_id":3980023,"id":83117674,"diff_hunk":"@@ -0,0 +1,95 @@\n+---\n+# this is the final blog post's id (used in the directory)\n+# this id is part of the url, and should only contain:\n+#   letters, numbers, dashes.\n+id: 21-go-ipfs-0-4-4-released\n+\n+breadcrumbs:\n+  - {name: \"go-ipfs 0.4.4 has been released\", link: \"./\" }\n+\n+# the date here should be set to the final publication date,\n+# on the day it is published.\n+date: 2016-10-11\n+\n+# this is the Title\n+title: go-ipfs 0.4.4 has been released\n+\n+# this is the name of the main author(s)\n+author: whyrusleeping & Lars Gierth\n+\n+# technical details required for the software, don't change these.\n+baseurl: ..\n+template: tmpl/layouts/post.html\n+collection: posts\n+---\n+\n+[go-ipfs 0.4.4](https://dist.ipfs.io/#go-ipfs) has been released today,\n+including an important hotfix for a bug we discovered in how *pinning* works.\n+If you have a large number of pins, new pins would overwrite existing pins.\n+Apart from the hotfix, this release is equal to the previous release 0.4.3.\n+\n+- [How pinning works](#how-pinning-works)\n+- [The bug](#the-bug)\n+- [Find out if you're affected](#find-out-if-you-re-affected)\n+- [How to upgrade](#how-to-upgrade)\n+\n+## How pinning works\n+\n+Pinning is a means of persisting data in your IPFS repo after adding or fetching it.\n+It'll prevent objects from getting removed by garbage collection or other methods\n+of cleaning up the IPFS repo. There are three ways how an object can be pinned:\n+\n+- **Direct:** Only this object is pinned. It's children aren't pinned.\n+- **Recursive:** This object and all its children are pinned.\n+  If the recursive pin is removed, the children aren't pinned any longer either.\n+- **Indirect:** This object is pinned because one of its parents is pinned.\n+  If the pins of all parents are removed, this object isn't pinned any longer.\n+\n+The `ipfs add` command adds a *recursive pin* for the added object by default.\n+With `--pin=false`, it skips pinning. Similarly, the default pin type for\n+`ipfs pin add` is *recursive*. With `--recursive=false` this changes to *direct*.\n+\n+For more information on how pinning works, check out `ipfs pin --help` and `ipfs add --help`.\n+\n+Direct and recursive pins are stored in separate so-called *pinsets*.\n+Indirect pins aren't stored, since they're derived from recursive pins.\n+\n+## The bug\n+\n+If your IPFS repo had more than 8192 pins, new pins would overwrite existing ones.\n+Pinned objects wouldn't be directly affected, but they wouldn't be protected from\n+garbage collection anymore.\n+\n+We recently discovered a bug in the logic of our pinning code. Because of this","path":"src/21-go-ipfs-0-4-4-released/index.md","position":63,"original_position":63,"commit_id":"e896915821d492131361a309ef73a877ef8fdbac","original_commit_id":"e896915821d492131361a309ef73a877ef8fdbac","user":{"login":"jbenet","id":138401,"avatar_url":"https://avatars.githubusercontent.com/u/138401?v=3","gravatar_id":"","url":"https://api.github.com/users/jbenet","html_url":"https://github.com/jbenet","followers_url":"https://api.github.com/users/jbenet/followers","following_url":"https://api.github.com/users/jbenet/following{/other_user}","gists_url":"https://api.github.com/users/jbenet/gists{/gist_id}","starred_url":"https://api.github.com/users/jbenet/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jbenet/subscriptions","organizations_url":"https://api.github.com/users/jbenet/orgs","repos_url":"https://api.github.com/users/jbenet/repos","events_url":"https://api.github.com/users/jbenet/events{/privacy}","received_events_url":"https://api.github.com/users/jbenet/received_events","type":"User","site_admin":false},"body":"thank @kyledrake explicitly, for finding and reporting this.","created_at":"2016-10-12T23:09:53Z","updated_at":"2016-10-12T23:11:46Z","html_url":"https://github.com/ipfs/blog/pull/78#discussion_r83117674","pull_request_url":"https://api.github.com/repos/ipfs/blog/pulls/78","_links":{"self":{"href":"https://api.github.com/repos/ipfs/blog/pulls/comments/83117674"},"html":{"href":"https://github.com/ipfs/blog/pull/78#discussion_r83117674"},"pull_request":{"href":"https://api.github.com/repos/ipfs/blog/pulls/78"}}},"pull_request":{"url":"https://api.github.com/repos/ipfs/blog/pulls/78","id":89107541,"html_url":"https://github.com/ipfs/blog/pull/78","diff_url":"https://github.com/ipfs/blog/pull/78.diff","patch_url":"https://github.com/ipfs/blog/pull/78.patch","issue_url":"https://api.github.com/repos/ipfs/blog/issues/78","number":78,"state":"open","locked":false,"title":"go-ipfs 0.4.4 has been released","user":{"login":"lgierth","id":19248,"avatar_url":"https://avatars.githubusercontent.com/u/19248?v=3","gravatar_id":"","url":"https://api.github.com/users/lgierth","html_url":"https://github.com/lgierth","followers_url":"https://api.github.com/users/lgierth/followers","following_url":"https://api.github.com/users/lgierth/following{/other_user}","gists_url":"https://api.github.com/users/lgierth/gists{/gist_id}","starred_url":"https://api.github.com/users/lgierth/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lgierth/subscriptions","organizations_url":"https://api.github.com/users/lgierth/orgs","repos_url":"https://api.github.com/users/lgierth/repos","events_url":"https://api.github.com/users/lgierth/events{/privacy}","received_events_url":"https://api.github.com/users/lgierth/received_events","type":"User","site_admin":false},"body":"The \"bug\" and \"find out if you're affected\" sections still need a bit of wording polish.\r\n\r\ncc @jbenet @whyrusleeping @RichardLitt ","created_at":"2016-10-12T22:43:07Z","updated_at":"2016-10-12T23:11:46Z","closed_at":null,"merged_at":null,"merge_commit_sha":"4333ab4979854700b7a1c252e0512bc77b76af72","assignee":null,"assignees":[],"milestone":null,"commits_url":"https://api.github.com/repos/ipfs/blog/pulls/78/commits","review_comments_url":"https://api.github.com/repos/ipfs/blog/pulls/78/comments","review_comment_url":"https://api.github.com/repos/ipfs/blog/pulls/comments{/number}","comments_url":"https://api.github.com/repos/ipfs/blog/issues/78/comments","statuses_url":"https://api.github.com/repos/ipfs/blog/statuses/e896915821d492131361a309ef73a877ef8fdbac","head":{"label":"ipfs:feat/go-ipfs-0-4-4","ref":"feat/go-ipfs-0-4-4","sha":"e896915821d492131361a309ef73a877ef8fdbac","user":{"login":"ipfs","id":10536621,"avatar_url":"https://avatars.githubusercontent.com/u/10536621?v=3","gravatar_id":"","url":"https://api.github.com/users/ipfs","html_url":"https://github.com/ipfs","followers_url":"https://api.github.com/users/ipfs/followers","following_url":"https://api.github.com/users/ipfs/following{/other_user}","gists_url":"https://api.github.com/users/ipfs/gists{/gist_id}","starred_url":"https://api.github.com/users/ipfs/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ipfs/subscriptions","organizations_url":"https://api.github.com/users/ipfs/orgs","repos_url":"https://api.github.com/users/ipfs/repos","events_url":"https://api.github.com/users/ipfs/events{/privacy}","received_events_url":"https://api.github.com/users/ipfs/received_events","type":"Organization","site_admin":false},"repo":{"id":35082310,"name":"blog","full_name":"ipfs/blog","owner":{"login":"ipfs","id":10536621,"avatar_url":"https://avatars.githubusercontent.com/u/10536621?v=3","gravatar_id":"","url":"https://api.github.com/users/ipfs","html_url":"https://github.com/ipfs","followers_url":"https://api.github.com/users/ipfs/followers","following_url":"https://api.github.com/users/ipfs/following{/other_user}","gists_url":"https://api.github.com/users/ipfs/gists{/gist_id}","starred_url":"https://api.github.com/users/ipfs/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ipfs/subscriptions","organizations_url":"https://api.github.com/users/ipfs/orgs","repos_url":"https://api.github.com/users/ipfs/repos","events_url":"https://api.github.com/users/ipfs/events{/privacy}","received_events_url":"https://api.github.com/users/ipfs/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/ipfs/blog","description":"Source for the IPFS Blog","fork":false,"url":"https://api.github.com/repos/ipfs/blog","forks_url":"https://api.github.com/repos/ipfs/blog/forks","keys_url":"https://api.github.com/repos/ipfs/blog/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ipfs/blog/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ipfs/blog/teams","hooks_url":"https://api.github.com/repos/ipfs/blog/hooks","issue_events_url":"https://api.github.com/repos/ipfs/blog/issues/events{/number}","events_url":"https://api.github.com/repos/ipfs/blog/events","assignees_url":"https://api.github.com/repos/ipfs/blog/assignees{/user}","branches_url":"https://api.github.com/repos/ipfs/blog/branches{/branch}","tags_url":"https://api.github.com/repos/ipfs/blog/tags","blobs_url":"https://api.github.com/repos/ipfs/blog/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ipfs/blog/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ipfs/blog/git/refs{/sha}","trees_url":"https://api.github.com/repos/ipfs/blog/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ipfs/blog/statuses/{sha}","languages_url":"https://api.github.com/repos/ipfs/blog/languages","stargazers_url":"https://api.github.com/repos/ipfs/blog/stargazers","contributors_url":"https://api.github.com/repos/ipfs/blog/contributors","subscribers_url":"https://api.github.com/repos/ipfs/blog/subscribers","subscription_url":"https://api.github.com/repos/ipfs/blog/subscription","commits_url":"https://api.github.com/repos/ipfs/blog/commits{/sha}","git_commits_url":"https://api.github.com/repos/ipfs/blog/git/commits{/sha}","comments_url":"https://api.github.com/repos/ipfs/blog/comments{/number}","issue_comment_url":"https://api.github.com/repos/ipfs/blog/issues/comments{/number}","contents_url":"https://api.github.com/repos/ipfs/blog/contents/{+path}","compare_url":"https://api.github.com/repos/ipfs/blog/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ipfs/blog/merges","archive_url":"https://api.github.com/repos/ipfs/blog/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ipfs/blog/downloads","issues_url":"https://api.github.com/repos/ipfs/blog/issues{/number}","pulls_url":"https://api.github.com/repos/ipfs/blog/pulls{/number}","milestones_url":"https://api.github.com/repos/ipfs/blog/milestones{/number}","notifications_url":"https://api.github.com/repos/ipfs/blog/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ipfs/blog/labels{/name}","releases_url":"https://api.github.com/repos/ipfs/blog/releases{/id}","deployments_url":"https://api.github.com/repos/ipfs/blog/deployments","created_at":"2015-05-05T06:34:50Z","updated_at":"2016-10-09T03:41:20Z","pushed_at":"2016-10-12T22:43:07Z","git_url":"git://github.com/ipfs/blog.git","ssh_url":"git@github.com:ipfs/blog.git","clone_url":"https://github.com/ipfs/blog.git","svn_url":"https://github.com/ipfs/blog","homepage":"https://ipfs.io/blog","size":15481,"stargazers_count":36,"watchers_count":36,"language":"CSS","has_issues":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":13,"mirror_url":null,"open_issues_count":21,"forks":13,"open_issues":21,"watchers":36,"default_branch":"master"}},"base":{"label":"ipfs:master","ref":"master","sha":"936510537afd3e3931aa1e8096fbc49d3a12c13d","user":{"login":"ipfs","id":10536621,"avatar_url":"https://avatars.githubusercontent.com/u/10536621?v=3","gravatar_id":"","url":"https://api.github.com/users/ipfs","html_url":"https://github.com/ipfs","followers_url":"https://api.github.com/users/ipfs/followers","following_url":"https://api.github.com/users/ipfs/following{/other_user}","gists_url":"https://api.github.com/users/ipfs/gists{/gist_id}","starred_url":"https://api.github.com/users/ipfs/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ipfs/subscriptions","organizations_url":"https://api.github.com/users/ipfs/orgs","repos_url":"https://api.github.com/users/ipfs/repos","events_url":"https://api.github.com/users/ipfs/events{/privacy}","received_events_url":"https://api.github.com/users/ipfs/received_events","type":"Organization","site_admin":false},"repo":{"id":35082310,"name":"blog","full_name":"ipfs/blog","owner":{"login":"ipfs","id":10536621,"avatar_url":"https://avatars.githubusercontent.com/u/10536621?v=3","gravatar_id":"","url":"https://api.github.com/users/ipfs","html_url":"https://github.com/ipfs","followers_url":"https://api.github.com/users/ipfs/followers","following_url":"https://api.github.com/users/ipfs/following{/other_user}","gists_url":"https://api.github.com/users/ipfs/gists{/gist_id}","starred_url":"https://api.github.com/users/ipfs/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ipfs/subscriptions","organizations_url":"https://api.github.com/users/ipfs/orgs","repos_url":"https://api.github.com/users/ipfs/repos","events_url":"https://api.github.com/users/ipfs/events{/privacy}","received_events_url":"https://api.github.com/users/ipfs/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/ipfs/blog","description":"Source for the IPFS Blog","fork":false,"url":"https://api.github.com/repos/ipfs/blog","forks_url":"https://api.github.com/repos/ipfs/blog/forks","keys_url":"https://api.github.com/repos/ipfs/blog/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ipfs/blog/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ipfs/blog/teams","hooks_url":"https://api.github.com/repos/ipfs/blog/hooks","issue_events_url":"https://api.github.com/repos/ipfs/blog/issues/events{/number}","events_url":"https://api.github.com/repos/ipfs/blog/events","assignees_url":"https://api.github.com/repos/ipfs/blog/assignees{/user}","branches_url":"https://api.github.com/repos/ipfs/blog/branches{/branch}","tags_url":"https://api.github.com/repos/ipfs/blog/tags","blobs_url":"https://api.github.com/repos/ipfs/blog/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ipfs/blog/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ipfs/blog/git/refs{/sha}","trees_url":"https://api.github.com/repos/ipfs/blog/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ipfs/blog/statuses/{sha}","languages_url":"https://api.github.com/repos/ipfs/blog/languages","stargazers_url":"https://api.github.com/repos/ipfs/blog/stargazers","contributors_url":"https://api.github.com/repos/ipfs/blog/contributors","subscribers_url":"https://api.github.com/repos/ipfs/blog/subscribers","subscription_url":"https://api.github.com/repos/ipfs/blog/subscription","commits_url":"https://api.github.com/repos/ipfs/blog/commits{/sha}","git_commits_url":"https://api.github.com/repos/ipfs/blog/git/commits{/sha}","comments_url":"https://api.github.com/repos/ipfs/blog/comments{/number}","issue_comment_url":"https://api.github.com/repos/ipfs/blog/issues/comments{/number}","contents_url":"https://api.github.com/repos/ipfs/blog/contents/{+path}","compare_url":"https://api.github.com/repos/ipfs/blog/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ipfs/blog/merges","archive_url":"https://api.github.com/repos/ipfs/blog/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ipfs/blog/downloads","issues_url":"https://api.github.com/repos/ipfs/blog/issues{/number}","pulls_url":"https://api.github.com/repos/ipfs/blog/pulls{/number}","milestones_url":"https://api.github.com/repos/ipfs/blog/milestones{/number}","notifications_url":"https://api.github.com/repos/ipfs/blog/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ipfs/blog/labels{/name}","releases_url":"https://api.github.com/repos/ipfs/blog/releases{/id}","deployments_url":"https://api.github.com/repos/ipfs/blog/deployments","created_at":"2015-05-05T06:34:50Z","updated_at":"2016-10-09T03:41:20Z","pushed_at":"2016-10-12T22:43:07Z","git_url":"git://github.com/ipfs/blog.git","ssh_url":"git@github.com:ipfs/blog.git","clone_url":"https://github.com/ipfs/blog.git","svn_url":"https://github.com/ipfs/blog","homepage":"https://ipfs.io/blog","size":15481,"stargazers_count":36,"watchers_count":36,"language":"CSS","has_issues":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":13,"mirror_url":null,"open_issues_count":21,"forks":13,"open_issues":21,"watchers":36,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/ipfs/blog/pulls/78"},"html":{"href":"https://github.com/ipfs/blog/pull/78"},"issue":{"href":"https://api.github.com/repos/ipfs/blog/issues/78"},"comments":{"href":"https://api.github.com/repos/ipfs/blog/issues/78/comments"},"review_comments":{"href":"https://api.github.com/repos/ipfs/blog/pulls/78/comments"},"review_comment":{"href":"https://api.github.com/repos/ipfs/blog/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/ipfs/blog/pulls/78/commits"},"statuses":{"href":"https://api.github.com/repos/ipfs/blog/statuses/e896915821d492131361a309ef73a877ef8fdbac"}}}}
{"actor":{"display_login":"jbenet"}}