{"action":"created","issue":{"url":"https://api.github.com/repos/grpc/grpc/issues/8135","repository_url":"https://api.github.com/repos/grpc/grpc","labels_url":"https://api.github.com/repos/grpc/grpc/issues/8135/labels{/name}","comments_url":"https://api.github.com/repos/grpc/grpc/issues/8135/comments","events_url":"https://api.github.com/repos/grpc/grpc/issues/8135/events","html_url":"https://github.com/grpc/grpc/issues/8135","id":177671719,"number":8135,"title":"Javascript code generation with python.tools.protoc error","user":{"login":"lromor","id":1597330,"avatar_url":"https://avatars.githubusercontent.com/u/1597330?v=3","gravatar_id":"","url":"https://api.github.com/users/lromor","html_url":"https://github.com/lromor","followers_url":"https://api.github.com/users/lromor/followers","following_url":"https://api.github.com/users/lromor/following{/other_user}","gists_url":"https://api.github.com/users/lromor/gists{/gist_id}","starred_url":"https://api.github.com/users/lromor/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lromor/subscriptions","organizations_url":"https://api.github.com/users/lromor/orgs","repos_url":"https://api.github.com/users/lromor/repos","events_url":"https://api.github.com/users/lromor/events{/privacy}","received_events_url":"https://api.github.com/users/lromor/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/grpc/grpc/labels/node","name":"node","color":"bfe5bf"},{"url":"https://api.github.com/repos/grpc/grpc/labels/protoc%20plugins","name":"protoc plugins","color":"207de5"},{"url":"https://api.github.com/repos/grpc/grpc/labels/python","name":"python","color":"2619ff"},{"url":"https://api.github.com/repos/grpc/grpc/labels/requires%20reporter%20clarification","name":"requires reporter clarification","color":"800080"}],"state":"closed","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},"assignees":[{"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},{"login":"soltanmm-google","id":21180148,"avatar_url":"https://avatars.githubusercontent.com/u/21180148?v=3","gravatar_id":"","url":"https://api.github.com/users/soltanmm-google","html_url":"https://github.com/soltanmm-google","followers_url":"https://api.github.com/users/soltanmm-google/followers","following_url":"https://api.github.com/users/soltanmm-google/following{/other_user}","gists_url":"https://api.github.com/users/soltanmm-google/gists{/gist_id}","starred_url":"https://api.github.com/users/soltanmm-google/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/soltanmm-google/subscriptions","organizations_url":"https://api.github.com/users/soltanmm-google/orgs","repos_url":"https://api.github.com/users/soltanmm-google/repos","events_url":"https://api.github.com/users/soltanmm-google/events{/privacy}","received_events_url":"https://api.github.com/users/soltanmm-google/received_events","type":"User","site_admin":false}],"milestone":{"url":"https://api.github.com/repos/grpc/grpc/milestones/45","html_url":"https://github.com/grpc/grpc/milestones/1.1","labels_url":"https://api.github.com/repos/grpc/grpc/milestones/45/labels","id":1845911,"number":45,"title":"1.1","description":"Soon after GA.","creator":{"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},"open_issues":25,"closed_issues":24,"state":"open","created_at":"2016-06-23T17:58:55Z","updated_at":"2016-10-03T23:44:36Z","due_on":null,"closed_at":null},"comments":4,"created_at":"2016-09-18T19:41:24Z","updated_at":"2016-10-03T23:44:36Z","closed_at":"2016-10-03T23:44:35Z","body":"Hello, \r\nI'm having this error while trying to generate a javascript output with the python grpcio-tool:\r\n(python -m grpc.tools.protoc etc..)\r\n```\r\n protoc-gen-js: program not found or is not executable\r\n--js_out: protoc-gen-js: Plugin failed with status code 1.\r\n```\r\nusing the normal protoc binary command  with the same arguments works:\r\n\r\n```\r\nprotoc --proto_path=. --js_out=import_style=commonjs,binary:static/ --grpc_out=static/ --plugin=protoc-gen-grpc=/usr/local/bin/grpc_node_plugin interface.proto\r\n```\r\n\r\nCould you help me to understand what's going on? \r\nthanks,\r\n\r\n-l"},"comment":{"url":"https://api.github.com/repos/grpc/grpc/issues/comments/251258555","html_url":"https://github.com/grpc/grpc/issues/8135#issuecomment-251258555","issue_url":"https://api.github.com/repos/grpc/grpc/issues/8135","id":251258555,"user":{"login":"lromor","id":1597330,"avatar_url":"https://avatars.githubusercontent.com/u/1597330?v=3","gravatar_id":"","url":"https://api.github.com/users/lromor","html_url":"https://github.com/lromor","followers_url":"https://api.github.com/users/lromor/followers","following_url":"https://api.github.com/users/lromor/following{/other_user}","gists_url":"https://api.github.com/users/lromor/gists{/gist_id}","starred_url":"https://api.github.com/users/lromor/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lromor/subscriptions","organizations_url":"https://api.github.com/users/lromor/orgs","repos_url":"https://api.github.com/users/lromor/repos","events_url":"https://api.github.com/users/lromor/events{/privacy}","received_events_url":"https://api.github.com/users/lromor/received_events","type":"User","site_admin":false},"created_at":"2016-10-03T23:44:35Z","updated_at":"2016-10-03T23:44:35Z","body":"> gRPC might be a confounder for doing what you want to do. Until we have gRPC in the web browser, it sounds like you're better off serving the proto file just like any other file and using some implementation of JavaScript protobuf to parse it and use it to generate your GUI if you're going with option A. Option B doesn't appear to have an intrinsic RPC-element to it.\r\n\r\nThanks, that gives me a direction to follow.\r\n\r\n> The last bit about having decorator-wrappers around gRPC internals (like Flask) is a nice idea. I don't think it fits in with the main body of gRPC Python, but I can see that sort of super-convenient zero-to-sixty-in-oh-point-two seconds thing fitting one day into e.g. https://github.com/grpc/grpc-contrib.\r\n\r\nok, I see what you mean, well, thanks @nathanielmanistaatgoogle and @soltanmm-google \r\n"}}
{"actor":{"display_login":"lromor"}}