{"action":"opened","issue":{"url":"https://api.github.com/repos/grpc/grpc/issues/6261","repository_url":"https://api.github.com/repos/grpc/grpc","labels_url":"https://api.github.com/repos/grpc/grpc/issues/6261/labels{/name}","comments_url":"https://api.github.com/repos/grpc/grpc/issues/6261/comments","events_url":"https://api.github.com/repos/grpc/grpc/issues/6261/events","html_url":"https://github.com/grpc/grpc/issues/6261","id":150441515,"number":6261,"title":"Node: Make adding a new RPC to .proto file non-breaking for service implementation (server-side)","user":{"login":"jtattermusch","id":9939684,"avatar_url":"https://avatars.githubusercontent.com/u/9939684?v=3","gravatar_id":"","url":"https://api.github.com/users/jtattermusch","html_url":"https://github.com/jtattermusch","followers_url":"https://api.github.com/users/jtattermusch/followers","following_url":"https://api.github.com/users/jtattermusch/following{/other_user}","gists_url":"https://api.github.com/users/jtattermusch/gists{/gist_id}","starred_url":"https://api.github.com/users/jtattermusch/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jtattermusch/subscriptions","organizations_url":"https://api.github.com/users/jtattermusch/orgs","repos_url":"https://api.github.com/users/jtattermusch/repos","events_url":"https://api.github.com/users/jtattermusch/events{/privacy}","received_events_url":"https://api.github.com/users/jtattermusch/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/grpc/grpc/labels/node","name":"node","color":"bfe5bf"}],"state":"open","locked":false,"assignee":{"login":"murgatroid99","id":961599,"avatar_url":"https://avatars.githubusercontent.com/u/961599?v=3","gravatar_id":"","url":"https://api.github.com/users/murgatroid99","html_url":"https://github.com/murgatroid99","followers_url":"https://api.github.com/users/murgatroid99/followers","following_url":"https://api.github.com/users/murgatroid99/following{/other_user}","gists_url":"https://api.github.com/users/murgatroid99/gists{/gist_id}","starred_url":"https://api.github.com/users/murgatroid99/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/murgatroid99/subscriptions","organizations_url":"https://api.github.com/users/murgatroid99/orgs","repos_url":"https://api.github.com/users/murgatroid99/repos","events_url":"https://api.github.com/users/murgatroid99/events{/privacy}","received_events_url":"https://api.github.com/users/murgatroid99/received_events","type":"User","site_admin":false},"milestone":{"url":"https://api.github.com/repos/grpc/grpc/milestones/35","html_url":"https://github.com/grpc/grpc/milestones/GA","labels_url":"https://api.github.com/repos/grpc/grpc/milestones/35/labels","id":1207499,"number":35,"title":"GA","description":"","creator":{"login":"nicolasnoble","id":7281574,"avatar_url":"https://avatars.githubusercontent.com/u/7281574?v=3","gravatar_id":"","url":"https://api.github.com/users/nicolasnoble","html_url":"https://github.com/nicolasnoble","followers_url":"https://api.github.com/users/nicolasnoble/followers","following_url":"https://api.github.com/users/nicolasnoble/following{/other_user}","gists_url":"https://api.github.com/users/nicolasnoble/gists{/gist_id}","starred_url":"https://api.github.com/users/nicolasnoble/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nicolasnoble/subscriptions","organizations_url":"https://api.github.com/users/nicolasnoble/orgs","repos_url":"https://api.github.com/users/nicolasnoble/repos","events_url":"https://api.github.com/users/nicolasnoble/events{/privacy}","received_events_url":"https://api.github.com/users/nicolasnoble/received_events","type":"User","site_admin":false},"open_issues":6,"closed_issues":324,"state":"open","created_at":"2015-07-14T17:46:14Z","updated_at":"2016-04-22T18:32:55Z","due_on":"2016-05-21T07:00:00Z","closed_at":null},"comments":0,"created_at":"2016-04-22T18:32:55Z","updated_at":"2016-04-22T18:32:55Z","closed_at":null,"body":"Currently, if a new RPC is added to a .proto file and one regenerates the code, the existing service implementation will be broken (there will be a missing implementation for the new RPC).\r\nThat becomes problematic if one wants to ship a package that contains .proto file and the generated code:  adding an RPC to .proto file should be a non-breaking change, but such package would need to bump the major version to indicate that existing implementations of the service might break.\r\n\r\nSolution: the default behavior should be to return UNIMPLEMENTED status code if the new method is not present in the service implementation.\r\n\r\nC# issue for reference: #5371"}}