{"action":"created","issue":{"url":"https://api.github.com/repos/grpc/grpc.github.io/issues/386","repository_url":"https://api.github.com/repos/grpc/grpc.github.io","labels_url":"https://api.github.com/repos/grpc/grpc.github.io/issues/386/labels{/name}","comments_url":"https://api.github.com/repos/grpc/grpc.github.io/issues/386/comments","events_url":"https://api.github.com/repos/grpc/grpc.github.io/issues/386/events","html_url":"https://github.com/grpc/grpc.github.io/pull/386","id":178731697,"number":386,"title":"Add example of regenerating code via python -m grpc.tools.protoc","user":{"login":"markmandel","id":298370,"avatar_url":"https://avatars.githubusercontent.com/u/298370?v=3","gravatar_id":"","url":"https://api.github.com/users/markmandel","html_url":"https://github.com/markmandel","followers_url":"https://api.github.com/users/markmandel/followers","following_url":"https://api.github.com/users/markmandel/following{/other_user}","gists_url":"https://api.github.com/users/markmandel/gists{/gist_id}","starred_url":"https://api.github.com/users/markmandel/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/markmandel/subscriptions","organizations_url":"https://api.github.com/users/markmandel/orgs","repos_url":"https://api.github.com/users/markmandel/repos","events_url":"https://api.github.com/users/markmandel/events{/privacy}","received_events_url":"https://api.github.com/users/markmandel/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":{"login":"nathanielmanistaatgoogle","id":10131044,"avatar_url":"https://avatars.githubusercontent.com/u/10131044?v=3","gravatar_id":"","url":"https://api.github.com/users/nathanielmanistaatgoogle","html_url":"https://github.com/nathanielmanistaatgoogle","followers_url":"https://api.github.com/users/nathanielmanistaatgoogle/followers","following_url":"https://api.github.com/users/nathanielmanistaatgoogle/following{/other_user}","gists_url":"https://api.github.com/users/nathanielmanistaatgoogle/gists{/gist_id}","starred_url":"https://api.github.com/users/nathanielmanistaatgoogle/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nathanielmanistaatgoogle/subscriptions","organizations_url":"https://api.github.com/users/nathanielmanistaatgoogle/orgs","repos_url":"https://api.github.com/users/nathanielmanistaatgoogle/repos","events_url":"https://api.github.com/users/nathanielmanistaatgoogle/events{/privacy}","received_events_url":"https://api.github.com/users/nathanielmanistaatgoogle/received_events","type":"User","site_admin":false},"assignees":[{"login":"nathanielmanistaatgoogle","id":10131044,"avatar_url":"https://avatars.githubusercontent.com/u/10131044?v=3","gravatar_id":"","url":"https://api.github.com/users/nathanielmanistaatgoogle","html_url":"https://github.com/nathanielmanistaatgoogle","followers_url":"https://api.github.com/users/nathanielmanistaatgoogle/followers","following_url":"https://api.github.com/users/nathanielmanistaatgoogle/following{/other_user}","gists_url":"https://api.github.com/users/nathanielmanistaatgoogle/gists{/gist_id}","starred_url":"https://api.github.com/users/nathanielmanistaatgoogle/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nathanielmanistaatgoogle/subscriptions","organizations_url":"https://api.github.com/users/nathanielmanistaatgoogle/orgs","repos_url":"https://api.github.com/users/nathanielmanistaatgoogle/repos","events_url":"https://api.github.com/users/nathanielmanistaatgoogle/events{/privacy}","received_events_url":"https://api.github.com/users/nathanielmanistaatgoogle/received_events","type":"User","site_admin":false}],"milestone":null,"comments":3,"created_at":"2016-09-22T21:59:22Z","updated_at":"2016-10-03T23:08:58Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/grpc/grpc.github.io/pulls/386","html_url":"https://github.com/grpc/grpc.github.io/pull/386","diff_url":"https://github.com/grpc/grpc.github.io/pull/386.diff","patch_url":"https://github.com/grpc/grpc.github.io/pull/386.patch"},"body":"Since the documentation doesn't cover writing a python script for code generation anywhere else, I thought it would be good to show how to manually regenerate the code from the .proto file as well - so that it was clear what was happening."},"comment":{"url":"https://api.github.com/repos/grpc/grpc.github.io/issues/comments/251252977","html_url":"https://github.com/grpc/grpc.github.io/pull/386#issuecomment-251252977","issue_url":"https://api.github.com/repos/grpc/grpc.github.io/issues/386","id":251252977,"user":{"login":"markmandel","id":298370,"avatar_url":"https://avatars.githubusercontent.com/u/298370?v=3","gravatar_id":"","url":"https://api.github.com/users/markmandel","html_url":"https://github.com/markmandel","followers_url":"https://api.github.com/users/markmandel/followers","following_url":"https://api.github.com/users/markmandel/following{/other_user}","gists_url":"https://api.github.com/users/markmandel/gists{/gist_id}","starred_url":"https://api.github.com/users/markmandel/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/markmandel/subscriptions","organizations_url":"https://api.github.com/users/markmandel/orgs","repos_url":"https://api.github.com/users/markmandel/repos","events_url":"https://api.github.com/users/markmandel/events{/privacy}","received_events_url":"https://api.github.com/users/markmandel/received_events","type":"User","site_admin":false},"created_at":"2016-10-03T23:08:58Z","updated_at":"2016-10-03T23:08:58Z","body":"Sorry - you are right, I wrote the wrong thing - we don't show how to do the code generation by hand anywhere else on the Quick Start tutorial - we do do it in other documentation . Apart from the C++ tutorial, all other quickstarts use the actual tools you would use when generating code during development, so I figured consistency would be good between each of the quick starts.\r\n\r\nIf a developer is going to generate their own python gRPC code - then they have to look inside the `run_codegen.py` to know how they would generate their own code - so I don't think they are a power user, they are just any regular user that uses gRPC, so it felt to me to be a point of friction to adoption. Rather than just having the command you would normally use in the quick start, you are giving one step away from that -- unless I'm missing something here? Quite possible, I'm not a python developer, so maybe there's an ecosystem type thing I'm not aware of. Is it a given then people will write a .py file to go the code generation normally?\r\n\r\nI assumed that I was missing something, in which case I thought it would be good to show both options, and that would remove the friction point from anyone who is also not as familiar with the python ecosystem.\r\n\r\nThanks for reviewing though! appreciate the time and thought."}}
{"actor":{"display_login":"markmandel"}}