{"action":"created","comment":{"url":"https://api.github.com/repos/chef/chef-rfc/pulls/comments/44683753","id":44683753,"diff_hunk":"@@ -0,0 +1,51 @@\n+---\n+RFC: unassigned\n+Author: Lamont Granquist <lamont@chef.io>\n+Status: Draft\n+Type: Standards Track\n+---\n+\n+# Title\n+\n+Cookbook Segment Deprecation\n+\n+## Motivation\n+\n+    As a Chef User/Developer,\n+    I want to be able to extend the structure of cookbooks without fighting with a wire protocol\n+    written 6 years ago,\n+    Because nobody wants that.\n+\n+## Specification\n+\n+This RFC will add a special `all_files` segment to cookbooks which will duplicate (initially)\n+all of the existing cookbook manifest along with arbitrary files outside of the current scope of\n+any of the cookbook segments.  The Chef Server will need to be patched in order to support this\n+new 'segment' and accept it since the Chef Server currently does strict enforcement of file\n+segments server-side.  This will also generate a version bump of the Chef Server protocol which\n+will be used by clients to determine if the Chef Server supports this field or not.\n+\n+New knife clients that support this segment will use the Chef Server protocol version to determine\n+if they MUST upload cookbooks using the old segment format, or if they SHOULD upload using only\n+the `all_files` format.\n+\n+For backwards compatibility, the Chef Server MUST serve cookbooks with both standard segments and the\n+new `all_files` segment unless it can determine that the client prefers one or other.  If it can","path":"new/cookbook-segment-deprecation.md","position":33,"original_position":33,"commit_id":"0bba1e7262e1984d495e67bac204d376e62ac775","original_commit_id":"0bba1e7262e1984d495e67bac204d376e62ac775","user":{"login":"danielsdeleo","id":37162,"avatar_url":"https://avatars.githubusercontent.com/u/37162?v=3","gravatar_id":"","url":"https://api.github.com/users/danielsdeleo","html_url":"https://github.com/danielsdeleo","followers_url":"https://api.github.com/users/danielsdeleo/followers","following_url":"https://api.github.com/users/danielsdeleo/following{/other_user}","gists_url":"https://api.github.com/users/danielsdeleo/gists{/gist_id}","starred_url":"https://api.github.com/users/danielsdeleo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/danielsdeleo/subscriptions","organizations_url":"https://api.github.com/users/danielsdeleo/orgs","repos_url":"https://api.github.com/users/danielsdeleo/repos","events_url":"https://api.github.com/users/danielsdeleo/events{/privacy}","received_events_url":"https://api.github.com/users/danielsdeleo/received_events","type":"User","site_admin":false},"body":"> I believe we should be able to use the API version here as well.\r\nI could go either way. What we have to do is support a matrix of old client/new server, and new client/old server, and we won't be able to 100% rely on versioning in the server until at least Chef 13.\r\n\r\n> What should the server do with all_files members that don't map to the old segments?\r\nYou're gonna need a client and server that support \"segmentless\" cookbooks to take advantage.","created_at":"2015-11-12T17:03:52Z","updated_at":"2015-11-12T17:03:52Z","html_url":"https://github.com/chef/chef-rfc/pull/161#discussion_r44683753","pull_request_url":"https://api.github.com/repos/chef/chef-rfc/pulls/161","_links":{"self":{"href":"https://api.github.com/repos/chef/chef-rfc/pulls/comments/44683753"},"html":{"href":"https://github.com/chef/chef-rfc/pull/161#discussion_r44683753"},"pull_request":{"href":"https://api.github.com/repos/chef/chef-rfc/pulls/161"}}},"pull_request":{"url":"https://api.github.com/repos/chef/chef-rfc/pulls/161","id":48535135,"html_url":"https://github.com/chef/chef-rfc/pull/161","diff_url":"https://github.com/chef/chef-rfc/pull/161.diff","patch_url":"https://github.com/chef/chef-rfc/pull/161.patch","issue_url":"https://api.github.com/repos/chef/chef-rfc/issues/161","number":161,"state":"open","locked":false,"title":"Cookbook Segment Deprecation","user":{"login":"lamont-granquist","id":454857,"avatar_url":"https://avatars.githubusercontent.com/u/454857?v=3","gravatar_id":"","url":"https://api.github.com/users/lamont-granquist","html_url":"https://github.com/lamont-granquist","followers_url":"https://api.github.com/users/lamont-granquist/followers","following_url":"https://api.github.com/users/lamont-granquist/following{/other_user}","gists_url":"https://api.github.com/users/lamont-granquist/gists{/gist_id}","starred_url":"https://api.github.com/users/lamont-granquist/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lamont-granquist/subscriptions","organizations_url":"https://api.github.com/users/lamont-granquist/orgs","repos_url":"https://api.github.com/users/lamont-granquist/repos","events_url":"https://api.github.com/users/lamont-granquist/events{/privacy}","received_events_url":"https://api.github.com/users/lamont-granquist/received_events","type":"User","site_admin":false},"body":"The elimination of cookbook segments from the server protocol that has been discussed for awhile now.","created_at":"2015-10-23T02:10:44Z","updated_at":"2015-11-12T17:03:52Z","closed_at":null,"merged_at":null,"merge_commit_sha":"0c0cc04fd678036687823ec32c18b9344941f9a5","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/chef/chef-rfc/pulls/161/commits","review_comments_url":"https://api.github.com/repos/chef/chef-rfc/pulls/161/comments","review_comment_url":"https://api.github.com/repos/chef/chef-rfc/pulls/comments{/number}","comments_url":"https://api.github.com/repos/chef/chef-rfc/issues/161/comments","statuses_url":"https://api.github.com/repos/chef/chef-rfc/statuses/0bba1e7262e1984d495e67bac204d376e62ac775","head":{"label":"chef:lcg/cookbook-segment-deprecation","ref":"lcg/cookbook-segment-deprecation","sha":"0bba1e7262e1984d495e67bac204d376e62ac775","user":{"login":"chef","id":29740,"avatar_url":"https://avatars.githubusercontent.com/u/29740?v=3","gravatar_id":"","url":"https://api.github.com/users/chef","html_url":"https://github.com/chef","followers_url":"https://api.github.com/users/chef/followers","following_url":"https://api.github.com/users/chef/following{/other_user}","gists_url":"https://api.github.com/users/chef/gists{/gist_id}","starred_url":"https://api.github.com/users/chef/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/chef/subscriptions","organizations_url":"https://api.github.com/users/chef/orgs","repos_url":"https://api.github.com/users/chef/repos","events_url":"https://api.github.com/users/chef/events{/privacy}","received_events_url":"https://api.github.com/users/chef/received_events","type":"Organization","site_admin":false},"repo":{"id":15090814,"name":"chef-rfc","full_name":"chef/chef-rfc","owner":{"login":"chef","id":29740,"avatar_url":"https://avatars.githubusercontent.com/u/29740?v=3","gravatar_id":"","url":"https://api.github.com/users/chef","html_url":"https://github.com/chef","followers_url":"https://api.github.com/users/chef/followers","following_url":"https://api.github.com/users/chef/following{/other_user}","gists_url":"https://api.github.com/users/chef/gists{/gist_id}","starred_url":"https://api.github.com/users/chef/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/chef/subscriptions","organizations_url":"https://api.github.com/users/chef/orgs","repos_url":"https://api.github.com/users/chef/repos","events_url":"https://api.github.com/users/chef/events{/privacy}","received_events_url":"https://api.github.com/users/chef/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/chef/chef-rfc","description":"Public RFCs for Chef and related projects","fork":false,"url":"https://api.github.com/repos/chef/chef-rfc","forks_url":"https://api.github.com/repos/chef/chef-rfc/forks","keys_url":"https://api.github.com/repos/chef/chef-rfc/keys{/key_id}","collaborators_url":"https://api.github.com/repos/chef/chef-rfc/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/chef/chef-rfc/teams","hooks_url":"https://api.github.com/repos/chef/chef-rfc/hooks","issue_events_url":"https://api.github.com/repos/chef/chef-rfc/issues/events{/number}","events_url":"https://api.github.com/repos/chef/chef-rfc/events","assignees_url":"https://api.github.com/repos/chef/chef-rfc/assignees{/user}","branches_url":"https://api.github.com/repos/chef/chef-rfc/branches{/branch}","tags_url":"https://api.github.com/repos/chef/chef-rfc/tags","blobs_url":"https://api.github.com/repos/chef/chef-rfc/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/chef/chef-rfc/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/chef/chef-rfc/git/refs{/sha}","trees_url":"https://api.github.com/repos/chef/chef-rfc/git/trees{/sha}","statuses_url":"https://api.github.com/repos/chef/chef-rfc/statuses/{sha}","languages_url":"https://api.github.com/repos/chef/chef-rfc/languages","stargazers_url":"https://api.github.com/repos/chef/chef-rfc/stargazers","contributors_url":"https://api.github.com/repos/chef/chef-rfc/contributors","subscribers_url":"https://api.github.com/repos/chef/chef-rfc/subscribers","subscription_url":"https://api.github.com/repos/chef/chef-rfc/subscription","commits_url":"https://api.github.com/repos/chef/chef-rfc/commits{/sha}","git_commits_url":"https://api.github.com/repos/chef/chef-rfc/git/commits{/sha}","comments_url":"https://api.github.com/repos/chef/chef-rfc/comments{/number}","issue_comment_url":"https://api.github.com/repos/chef/chef-rfc/issues/comments{/number}","contents_url":"https://api.github.com/repos/chef/chef-rfc/contents/{+path}","compare_url":"https://api.github.com/repos/chef/chef-rfc/compare/{base}...{head}","merges_url":"https://api.github.com/repos/chef/chef-rfc/merges","archive_url":"https://api.github.com/repos/chef/chef-rfc/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/chef/chef-rfc/downloads","issues_url":"https://api.github.com/repos/chef/chef-rfc/issues{/number}","pulls_url":"https://api.github.com/repos/chef/chef-rfc/pulls{/number}","milestones_url":"https://api.github.com/repos/chef/chef-rfc/milestones{/number}","notifications_url":"https://api.github.com/repos/chef/chef-rfc/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/chef/chef-rfc/labels{/name}","releases_url":"https://api.github.com/repos/chef/chef-rfc/releases{/id}","created_at":"2013-12-10T22:10:56Z","updated_at":"2015-11-09T14:05:08Z","pushed_at":"2015-11-12T15:57:36Z","git_url":"git://github.com/chef/chef-rfc.git","ssh_url":"git@github.com:chef/chef-rfc.git","clone_url":"https://github.com/chef/chef-rfc.git","svn_url":"https://github.com/chef/chef-rfc","homepage":null,"size":3124,"stargazers_count":102,"watchers_count":102,"language":"Ruby","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":50,"mirror_url":null,"open_issues_count":22,"forks":50,"open_issues":22,"watchers":102,"default_branch":"master"}},"base":{"label":"chef:master","ref":"master","sha":"0c692ba59fa7ac52c1467353e836acb8758015bf","user":{"login":"chef","id":29740,"avatar_url":"https://avatars.githubusercontent.com/u/29740?v=3","gravatar_id":"","url":"https://api.github.com/users/chef","html_url":"https://github.com/chef","followers_url":"https://api.github.com/users/chef/followers","following_url":"https://api.github.com/users/chef/following{/other_user}","gists_url":"https://api.github.com/users/chef/gists{/gist_id}","starred_url":"https://api.github.com/users/chef/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/chef/subscriptions","organizations_url":"https://api.github.com/users/chef/orgs","repos_url":"https://api.github.com/users/chef/repos","events_url":"https://api.github.com/users/chef/events{/privacy}","received_events_url":"https://api.github.com/users/chef/received_events","type":"Organization","site_admin":false},"repo":{"id":15090814,"name":"chef-rfc","full_name":"chef/chef-rfc","owner":{"login":"chef","id":29740,"avatar_url":"https://avatars.githubusercontent.com/u/29740?v=3","gravatar_id":"","url":"https://api.github.com/users/chef","html_url":"https://github.com/chef","followers_url":"https://api.github.com/users/chef/followers","following_url":"https://api.github.com/users/chef/following{/other_user}","gists_url":"https://api.github.com/users/chef/gists{/gist_id}","starred_url":"https://api.github.com/users/chef/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/chef/subscriptions","organizations_url":"https://api.github.com/users/chef/orgs","repos_url":"https://api.github.com/users/chef/repos","events_url":"https://api.github.com/users/chef/events{/privacy}","received_events_url":"https://api.github.com/users/chef/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/chef/chef-rfc","description":"Public RFCs for Chef and related projects","fork":false,"url":"https://api.github.com/repos/chef/chef-rfc","forks_url":"https://api.github.com/repos/chef/chef-rfc/forks","keys_url":"https://api.github.com/repos/chef/chef-rfc/keys{/key_id}","collaborators_url":"https://api.github.com/repos/chef/chef-rfc/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/chef/chef-rfc/teams","hooks_url":"https://api.github.com/repos/chef/chef-rfc/hooks","issue_events_url":"https://api.github.com/repos/chef/chef-rfc/issues/events{/number}","events_url":"https://api.github.com/repos/chef/chef-rfc/events","assignees_url":"https://api.github.com/repos/chef/chef-rfc/assignees{/user}","branches_url":"https://api.github.com/repos/chef/chef-rfc/branches{/branch}","tags_url":"https://api.github.com/repos/chef/chef-rfc/tags","blobs_url":"https://api.github.com/repos/chef/chef-rfc/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/chef/chef-rfc/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/chef/chef-rfc/git/refs{/sha}","trees_url":"https://api.github.com/repos/chef/chef-rfc/git/trees{/sha}","statuses_url":"https://api.github.com/repos/chef/chef-rfc/statuses/{sha}","languages_url":"https://api.github.com/repos/chef/chef-rfc/languages","stargazers_url":"https://api.github.com/repos/chef/chef-rfc/stargazers","contributors_url":"https://api.github.com/repos/chef/chef-rfc/contributors","subscribers_url":"https://api.github.com/repos/chef/chef-rfc/subscribers","subscription_url":"https://api.github.com/repos/chef/chef-rfc/subscription","commits_url":"https://api.github.com/repos/chef/chef-rfc/commits{/sha}","git_commits_url":"https://api.github.com/repos/chef/chef-rfc/git/commits{/sha}","comments_url":"https://api.github.com/repos/chef/chef-rfc/comments{/number}","issue_comment_url":"https://api.github.com/repos/chef/chef-rfc/issues/comments{/number}","contents_url":"https://api.github.com/repos/chef/chef-rfc/contents/{+path}","compare_url":"https://api.github.com/repos/chef/chef-rfc/compare/{base}...{head}","merges_url":"https://api.github.com/repos/chef/chef-rfc/merges","archive_url":"https://api.github.com/repos/chef/chef-rfc/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/chef/chef-rfc/downloads","issues_url":"https://api.github.com/repos/chef/chef-rfc/issues{/number}","pulls_url":"https://api.github.com/repos/chef/chef-rfc/pulls{/number}","milestones_url":"https://api.github.com/repos/chef/chef-rfc/milestones{/number}","notifications_url":"https://api.github.com/repos/chef/chef-rfc/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/chef/chef-rfc/labels{/name}","releases_url":"https://api.github.com/repos/chef/chef-rfc/releases{/id}","created_at":"2013-12-10T22:10:56Z","updated_at":"2015-11-09T14:05:08Z","pushed_at":"2015-11-12T15:57:36Z","git_url":"git://github.com/chef/chef-rfc.git","ssh_url":"git@github.com:chef/chef-rfc.git","clone_url":"https://github.com/chef/chef-rfc.git","svn_url":"https://github.com/chef/chef-rfc","homepage":null,"size":3124,"stargazers_count":102,"watchers_count":102,"language":"Ruby","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":50,"mirror_url":null,"open_issues_count":22,"forks":50,"open_issues":22,"watchers":102,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/chef/chef-rfc/pulls/161"},"html":{"href":"https://github.com/chef/chef-rfc/pull/161"},"issue":{"href":"https://api.github.com/repos/chef/chef-rfc/issues/161"},"comments":{"href":"https://api.github.com/repos/chef/chef-rfc/issues/161/comments"},"review_comments":{"href":"https://api.github.com/repos/chef/chef-rfc/pulls/161/comments"},"review_comment":{"href":"https://api.github.com/repos/chef/chef-rfc/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/chef/chef-rfc/pulls/161/commits"},"statuses":{"href":"https://api.github.com/repos/chef/chef-rfc/statuses/0bba1e7262e1984d495e67bac204d376e62ac775"}}}}