{"action":"created","issue":{"url":"https://api.github.com/repos/grpc/grpc-java/issues/2594","repository_url":"https://api.github.com/repos/grpc/grpc-java","labels_url":"https://api.github.com/repos/grpc/grpc-java/issues/2594/labels{/name}","comments_url":"https://api.github.com/repos/grpc/grpc-java/issues/2594/comments","events_url":"https://api.github.com/repos/grpc/grpc-java/issues/2594/events","html_url":"https://github.com/grpc/grpc-java/pull/2594","id":199981483,"number":2594,"title":"core: promote experimental methods in MethodDescriptor","user":{"login":"carl-mastrangelo","id":8943572,"avatar_url":"https://avatars.githubusercontent.com/u/8943572?v=3","gravatar_id":"","url":"https://api.github.com/users/carl-mastrangelo","html_url":"https://github.com/carl-mastrangelo","followers_url":"https://api.github.com/users/carl-mastrangelo/followers","following_url":"https://api.github.com/users/carl-mastrangelo/following{/other_user}","gists_url":"https://api.github.com/users/carl-mastrangelo/gists{/gist_id}","starred_url":"https://api.github.com/users/carl-mastrangelo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/carl-mastrangelo/subscriptions","organizations_url":"https://api.github.com/users/carl-mastrangelo/orgs","repos_url":"https://api.github.com/users/carl-mastrangelo/repos","events_url":"https://api.github.com/users/carl-mastrangelo/events{/privacy}","received_events_url":"https://api.github.com/users/carl-mastrangelo/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":{"login":"ejona86","id":2811396,"avatar_url":"https://avatars.githubusercontent.com/u/2811396?v=3","gravatar_id":"","url":"https://api.github.com/users/ejona86","html_url":"https://github.com/ejona86","followers_url":"https://api.github.com/users/ejona86/followers","following_url":"https://api.github.com/users/ejona86/following{/other_user}","gists_url":"https://api.github.com/users/ejona86/gists{/gist_id}","starred_url":"https://api.github.com/users/ejona86/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ejona86/subscriptions","organizations_url":"https://api.github.com/users/ejona86/orgs","repos_url":"https://api.github.com/users/ejona86/repos","events_url":"https://api.github.com/users/ejona86/events{/privacy}","received_events_url":"https://api.github.com/users/ejona86/received_events","type":"User","site_admin":false},"assignees":[{"login":"ejona86","id":2811396,"avatar_url":"https://avatars.githubusercontent.com/u/2811396?v=3","gravatar_id":"","url":"https://api.github.com/users/ejona86","html_url":"https://github.com/ejona86","followers_url":"https://api.github.com/users/ejona86/followers","following_url":"https://api.github.com/users/ejona86/following{/other_user}","gists_url":"https://api.github.com/users/ejona86/gists{/gist_id}","starred_url":"https://api.github.com/users/ejona86/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ejona86/subscriptions","organizations_url":"https://api.github.com/users/ejona86/orgs","repos_url":"https://api.github.com/users/ejona86/repos","events_url":"https://api.github.com/users/ejona86/events{/privacy}","received_events_url":"https://api.github.com/users/ejona86/received_events","type":"User","site_admin":false}],"milestone":{"url":"https://api.github.com/repos/grpc/grpc-java/milestones/7","html_url":"https://github.com/grpc/grpc-java/milestone/7","labels_url":"https://api.github.com/repos/grpc/grpc-java/milestones/7/labels","id":1428390,"number":7,"title":"1.1","description":"","creator":{"login":"ejona86","id":2811396,"avatar_url":"https://avatars.githubusercontent.com/u/2811396?v=3","gravatar_id":"","url":"https://api.github.com/users/ejona86","html_url":"https://github.com/ejona86","followers_url":"https://api.github.com/users/ejona86/followers","following_url":"https://api.github.com/users/ejona86/following{/other_user}","gists_url":"https://api.github.com/users/ejona86/gists{/gist_id}","starred_url":"https://api.github.com/users/ejona86/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ejona86/subscriptions","organizations_url":"https://api.github.com/users/ejona86/orgs","repos_url":"https://api.github.com/users/ejona86/repos","events_url":"https://api.github.com/users/ejona86/events{/privacy}","received_events_url":"https://api.github.com/users/ejona86/received_events","type":"User","site_admin":false},"open_issues":70,"closed_issues":27,"state":"open","created_at":"2015-11-24T23:44:10Z","updated_at":"2017-01-11T19:29:31Z","due_on":null,"closed_at":null},"comments":1,"created_at":"2017-01-11T01:36:13Z","updated_at":"2017-01-11T20:45:07Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/grpc/grpc-java/pulls/2594","html_url":"https://github.com/grpc/grpc-java/pull/2594","diff_url":"https://github.com/grpc/grpc-java/pull/2594.diff","patch_url":"https://github.com/grpc/grpc-java/pull/2594.patch"},"body":"* `create` is being used from generated code, so really it isn't experimental.  To remove it now, would break stubs generated at 1.0.x.\r\n\r\n* `generateFullMethodName` is non experimental for the same reason\r\n\r\n* `extractFullServiceName` is more nuanced.  It is referenced by packages `util` and `auth`, which may be at earlier versions of gRPC than core is at.  If someone was using util:1.0.0 with core:1.n.m, they would expect it to work.  Importantly, the methods that call `extractFullServiceName` are themselves not experimental, which would seems to unintentionally promote them.  \r\n\r\nIf we did want to get rid of these, at best we could mark them deprecated and hope that no one calls them again.\r\n"},"comment":{"url":"https://api.github.com/repos/grpc/grpc-java/issues/comments/271988626","html_url":"https://github.com/grpc/grpc-java/pull/2594#issuecomment-271988626","issue_url":"https://api.github.com/repos/grpc/grpc-java/issues/2594","id":271988626,"user":{"login":"ejona86","id":2811396,"avatar_url":"https://avatars.githubusercontent.com/u/2811396?v=3","gravatar_id":"","url":"https://api.github.com/users/ejona86","html_url":"https://github.com/ejona86","followers_url":"https://api.github.com/users/ejona86/followers","following_url":"https://api.github.com/users/ejona86/following{/other_user}","gists_url":"https://api.github.com/users/ejona86/gists{/gist_id}","starred_url":"https://api.github.com/users/ejona86/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ejona86/subscriptions","organizations_url":"https://api.github.com/users/ejona86/orgs","repos_url":"https://api.github.com/users/ejona86/repos","events_url":"https://api.github.com/users/ejona86/events{/privacy}","received_events_url":"https://api.github.com/users/ejona86/received_events","type":"User","site_admin":false},"created_at":"2017-01-11T20:45:07Z","updated_at":"2017-01-11T20:45:07Z","body":"Hmm... We should probably throw some checkNotNulls() in those methods?"}}
{"actor":{"display_login":"ejona86"}}