tl;dr "go mod" writes a timestamp/commit hash to go.mod when a perfectly 
good tag exists. I don't understand why go.mod doesn't use the tag.


Given this library

  https://github.com/twpayne/go-xdg

with a "v2.0.0" tag:

  https://github.com/twpayne/go-xdg/releases/tag/v2.0.0

if I create a trivial program that uses it, like

  https://gist.github.com/twpayne/09e9135d3f62471ebd7c83359b081e80

when I run the go command (e.g. go build), I end up with a go.mod file that 
contains

  require github.com/twpayne/go-xdg v0.0.0-20190214203150-05c8dc503590

whereas I would expect go.mod to contain

  require github.com/twpayne/go-xdg v2.0.0

Even I run the explicit command:

  $ go get github.com/twpayne/go-xdg@v2.0.0

go.mod still ends up containing the v0.0.0/timestamp/commit hash instead of 
v2.0.0.


Why does go.mod contain v0.0.0/timestamp/commitHash instead of "v2.0.0"?


Possibly relevant information:
- I initially made a mistake tagging "v2.0.0", so the tag has moved since 
the go command first saw it. However, I also tried creating a new "v3.0.0" 
tag, but also saw the v0.0.0/timestamp/commit hash instead of the expected 
"v3.0.0".
- I have GO111MODULE=on.

Thanks for any insight :)

Tom

-- 
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.
For more options, visit https://groups.google.com/d/optout.

Reply via email to