using `runtime/debug` this will return a tagged or pseudo version when 
retrieved through `go get` in module mode, in other cases it will return 
`(devel)`

i, _ := debug.ReadBuildInfo()
fmt.Println(i.Main.Version)

On Wednesday, November 25, 2020 at 7:14:45 PM UTC+1 changkun wrote:

> That is really unfortunate. Is there any alternative solution so that I 
> can burn at least the version information to the binary when a user uses 
> `go get`?
>
> On Wednesday, November 25, 2020 at 6:36:17 PM UTC+1 Jan Mercl wrote:
>
>> On Wed, Nov 25, 2020 at 6:25 PM changkun <h...@changkun.de> wrote:
>>
>> > As far as I know, there are two approaches to add extra information at 
>> build time:
>> > 1. using -ldflags="-X path/pkg.Var=${ENV_VAR}", in a Makefile
>> > 2. using `go generate ./...`, before `go build`
>> >
>> > These approaches are good as it is if I build my binary and distribute 
>> it to other users.
>> > However, none of these are possible if a user uses `go get 
>> github.com/user/pkg/cmd/x-cli` <http://github.com/user/pkg/cmd/x-cli>, 
>> because:
>> > 1. `go get` does not understand Makefile
>> > 2. `go generate` does not execute with `go build` automatically.
>> >
>> > What should I do in order to plug the extra information (in my case, 
>> the git version) if my user uses "go get"?
>>
>> I don't think that can be done. Also IINM, in module mode `go get` no
>> longer uses git. It just downloads the zipped version of the
>> appropriate tag via http from the hosting service.
>>
>

-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to golang-nuts+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/golang-nuts/d1dbd29f-4c46-4939-8d6a-3d3e1f2244a6n%40googlegroups.com.

Reply via email to