{"action":"created","issue":{"url":"https://api.github.com/repos/golang/go/issues/21207","repository_url":"https://api.github.com/repos/golang/go","labels_url":"https://api.github.com/repos/golang/go/issues/21207/labels{/name}","comments_url":"https://api.github.com/repos/golang/go/issues/21207/comments","events_url":"https://api.github.com/repos/golang/go/issues/21207/events","html_url":"https://github.com/golang/go/issues/21207","id":246426212,"number":21207,"title":"cmd/go: version information is not structured enough for use by developer tools","user":{"login":"heschik","id":24611692,"avatar_url":"https://avatars1.githubusercontent.com/u/24611692?v=4","gravatar_id":"","url":"https://api.github.com/users/heschik","html_url":"https://github.com/heschik","followers_url":"https://api.github.com/users/heschik/followers","following_url":"https://api.github.com/users/heschik/following{/other_user}","gists_url":"https://api.github.com/users/heschik/gists{/gist_id}","starred_url":"https://api.github.com/users/heschik/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/heschik/subscriptions","organizations_url":"https://api.github.com/users/heschik/orgs","repos_url":"https://api.github.com/users/heschik/repos","events_url":"https://api.github.com/users/heschik/events{/privacy}","received_events_url":"https://api.github.com/users/heschik/received_events","type":"User","site_admin":false},"labels":[{"id":578237966,"url":"https://api.github.com/repos/golang/go/labels/Debugging","name":"Debugging","color":"bfd4f2","default":false},{"id":626114820,"url":"https://api.github.com/repos/golang/go/labels/release-blocker","name":"release-blocker","color":"b60205","default":false}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/golang/go/milestones/56","html_url":"https://github.com/golang/go/milestone/56","labels_url":"https://api.github.com/repos/golang/go/milestones/56/labels","id":2473074,"number":56,"title":"Go1.10","description":"","creator":{"login":"rsc","id":104030,"avatar_url":"https://avatars1.githubusercontent.com/u/104030?v=4","gravatar_id":"","url":"https://api.github.com/users/rsc","html_url":"https://github.com/rsc","followers_url":"https://api.github.com/users/rsc/followers","following_url":"https://api.github.com/users/rsc/following{/other_user}","gists_url":"https://api.github.com/users/rsc/gists{/gist_id}","starred_url":"https://api.github.com/users/rsc/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rsc/subscriptions","organizations_url":"https://api.github.com/users/rsc/orgs","repos_url":"https://api.github.com/users/rsc/repos","events_url":"https://api.github.com/users/rsc/events{/privacy}","received_events_url":"https://api.github.com/users/rsc/received_events","type":"User","site_admin":false},"open_issues":811,"closed_issues":74,"state":"open","created_at":"2017-04-21T19:22:29Z","updated_at":"2017-07-28T18:47:48Z","due_on":"2018-01-31T08:00:00Z","closed_at":null},"comments":2,"created_at":"2017-07-28T18:34:37Z","updated_at":"2017-07-28T18:48:55Z","closed_at":null,"body":"Developer tools need to know what version of Go is in use for a variety of reasons. Two examples that have come up very recently:\r\n- Gogland needs to know what language features to enable, such as vendoring and type aliases.\r\n- Delve needs to know details of the runtime, such as where to find the G pointer in a thread's registers, as well as what flags it can pass to the build system to generate good debug information.\r\n\r\nIf you're using a released version, it's relatively straightforward to parse the output of `go version`:\r\n`go version go1.8.3 linux/amd64` means you're running 1.8.3. But we also do release candidates, which say `go1.8rc1`, and then sometimes we build off dev tags and get something like `go1.8.3.typealias`. And then for even more fun, devel builds:\r\n`go version devel +835dfef939 Wed Jul 26 13:29:59 2017 +0000 linux/amd64`\r\nwhich doesn't help at all.\r\n\r\nI don't have a specific proposal, but there is a clear need for a structured way of determining at least the major/minor Go version in use, even for devel builds. More detailed information in some form could be valuable if, for example, we wanted Delve to be able to tell if a devel build contained a specific runtime change. That's probably overkill though."},"comment":{"url":"https://api.github.com/repos/golang/go/issues/comments/318733789","html_url":"https://github.com/golang/go/issues/21207#issuecomment-318733789","issue_url":"https://api.github.com/repos/golang/go/issues/21207","id":318733789,"user":{"login":"dlsniper","id":607868,"avatar_url":"https://avatars2.githubusercontent.com/u/607868?v=4","gravatar_id":"","url":"https://api.github.com/users/dlsniper","html_url":"https://github.com/dlsniper","followers_url":"https://api.github.com/users/dlsniper/followers","following_url":"https://api.github.com/users/dlsniper/following{/other_user}","gists_url":"https://api.github.com/users/dlsniper/gists{/gist_id}","starred_url":"https://api.github.com/users/dlsniper/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dlsniper/subscriptions","organizations_url":"https://api.github.com/users/dlsniper/orgs","repos_url":"https://api.github.com/users/dlsniper/repos","events_url":"https://api.github.com/users/dlsniper/events{/privacy}","received_events_url":"https://api.github.com/users/dlsniper/received_events","type":"User","site_admin":false},"created_at":"2017-07-28T18:48:55Z","updated_at":"2017-07-28T18:48:55Z","body":"The tags could be extracted from this file: https://github.com/golang/go/blob/835dfef939879b284d4c0f4e1726491f27e4f1ee/src/go/build/build.go#L295 but for example Delve would need to know that in the binary somehow.\r\n\r\nAs for the editors, for example, you might want to know if it's ` go 1.8.0 ` or ` go 1.8.3 `, as users of editors could then test different versions of Go and still be able to tell the difference between versions. Same goes for different beta / RC versions of ` go 1.9 ` for example.\r\n\r\nAnother case is when ` go tip ` might mean ` go 1.9 ` for the build tag which is based on the master branch and ` go tip ` of the ` debug ` branch that is also tracking ` go 1.9 ` and hence has the ` go 1.9 ` build tag?"}}
{"actor":{"display_login":"dlsniper"}}