{"action":"created","issue":{"url":"https://api.github.com/repos/kubernetes/kubernetes/issues/17922","labels_url":"https://api.github.com/repos/kubernetes/kubernetes/issues/17922/labels{/name}","comments_url":"https://api.github.com/repos/kubernetes/kubernetes/issues/17922/comments","events_url":"https://api.github.com/repos/kubernetes/kubernetes/issues/17922/events","html_url":"https://github.com/kubernetes/kubernetes/pull/17922","id":119395507,"number":17922,"title":"WIP - Split codec from scheme","user":{"login":"smarterclayton","id":1163175,"avatar_url":"https://avatars.githubusercontent.com/u/1163175?v=3","gravatar_id":"","url":"https://api.github.com/users/smarterclayton","html_url":"https://github.com/smarterclayton","followers_url":"https://api.github.com/users/smarterclayton/followers","following_url":"https://api.github.com/users/smarterclayton/following{/other_user}","gists_url":"https://api.github.com/users/smarterclayton/gists{/gist_id}","starred_url":"https://api.github.com/users/smarterclayton/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/smarterclayton/subscriptions","organizations_url":"https://api.github.com/users/smarterclayton/orgs","repos_url":"https://api.github.com/users/smarterclayton/repos","events_url":"https://api.github.com/users/smarterclayton/events{/privacy}","received_events_url":"https://api.github.com/users/smarterclayton/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/kubernetes/kubernetes/labels/cla:%20yes","name":"cla: yes","color":"bfe5bf"},{"url":"https://api.github.com/repos/kubernetes/kubernetes/labels/size/XXL","name":"size/XXL","color":"ee0000"}],"state":"open","locked":false,"assignee":{"login":"lavalamp","id":647318,"avatar_url":"https://avatars.githubusercontent.com/u/647318?v=3","gravatar_id":"","url":"https://api.github.com/users/lavalamp","html_url":"https://github.com/lavalamp","followers_url":"https://api.github.com/users/lavalamp/followers","following_url":"https://api.github.com/users/lavalamp/following{/other_user}","gists_url":"https://api.github.com/users/lavalamp/gists{/gist_id}","starred_url":"https://api.github.com/users/lavalamp/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lavalamp/subscriptions","organizations_url":"https://api.github.com/users/lavalamp/orgs","repos_url":"https://api.github.com/users/lavalamp/repos","events_url":"https://api.github.com/users/lavalamp/events{/privacy}","received_events_url":"https://api.github.com/users/lavalamp/received_events","type":"User","site_admin":false},"milestone":null,"comments":7,"created_at":"2015-11-29T23:25:15Z","updated_at":"2015-12-02T04:36:04Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/kubernetes/kubernetes/pulls/17922","html_url":"https://github.com/kubernetes/kubernetes/pull/17922","diff_url":"https://github.com/kubernetes/kubernetes/pull/17922.diff","patch_url":"https://github.com/kubernetes/kubernetes/pull/17922.patch"},"body":"Move all codec responsibilities out of the scheme. Separate serialization\nresponsibilities of codec from versioning responsibilities of codec.\nEnforce that all objects have a version (add __internal and\n__unversioned to represent those).  Remove runtime.EmbeddedObject in favor\nof pure runtime.Object -> runtime.RawExtension.\n\nAllow schemes to be specialized with additional conversions - since the act\nof converting from __internal -> v1 may result in runtime.Object being\nconverted to bytes, we need to allow conversion to perform serialization,\nbut abstracted.\n\nDramatically reduce the signature for Codec. On Decode, pass a GVK tuple that\nrepresents the desired decoding. Return from the decode the actual origin type\nthat the user presented (will allow resthandler to do checking orthogonal to\nbehavior in codec). Serializer and Codec look the same - the Codec type is \nfor cases where conversion is in play, the serializer is where only raw wire\nformat is considered. Decode now returns enough info to make the right \ndecisions at both levels\n\n@lavalamp I want to touch base with this prior to your client changes\n\n@deads2k for overlap with your changes to GVK.\n\nBegins addressing #7111 and required to support protobuf #17854 (cannot\nassume only one serialization type and 1 codec per version)"},"comment":{"url":"https://api.github.com/repos/kubernetes/kubernetes/issues/comments/161178218","html_url":"https://github.com/kubernetes/kubernetes/pull/17922#issuecomment-161178218","issue_url":"https://api.github.com/repos/kubernetes/kubernetes/issues/17922","id":161178218,"user":{"login":"smarterclayton","id":1163175,"avatar_url":"https://avatars.githubusercontent.com/u/1163175?v=3","gravatar_id":"","url":"https://api.github.com/users/smarterclayton","html_url":"https://github.com/smarterclayton","followers_url":"https://api.github.com/users/smarterclayton/followers","following_url":"https://api.github.com/users/smarterclayton/following{/other_user}","gists_url":"https://api.github.com/users/smarterclayton/gists{/gist_id}","starred_url":"https://api.github.com/users/smarterclayton/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/smarterclayton/subscriptions","organizations_url":"https://api.github.com/users/smarterclayton/orgs","repos_url":"https://api.github.com/users/smarterclayton/repos","events_url":"https://api.github.com/users/smarterclayton/events{/privacy}","received_events_url":"https://api.github.com/users/smarterclayton/received_events","type":"User","site_admin":false},"created_at":"2015-12-02T04:36:04Z","updated_at":"2015-12-02T04:36:04Z","body":"Agree something needs to be done with latest and testapi.  As I'm walking\nthe changes out to packages I'm noticing the spots to change, will make\nsure those get highlighted.\n\n\nOn Dec 1, 2015, at 7:49 PM, Daniel Smith <notifications@github.com> wrote:\n\nI'm sure I missed things, hopefully not big things.\n\nThe nuance of Codec and Serializer was not at all obvious to me, but I\ncan't think of better names off the top of my head.\n\nIs Scheme still doing any useful work?\n\nI think the stuff in the latest package needs to be reflected in the\ntestapi package, or extracted to some common place (I think that sort of\nthing was the intended purpose of Scheme?) for use by both.\n\n—\nReply to this email directly or view it on GitHub\n<https://github.com/kubernetes/kubernetes/pull/17922#issuecomment-161144016>\n.\n"}}