On Tuesday, March 20, 2018 at 3:16:20 PM UTC-7, Akshay Shah wrote:
>
> Like many folks, I often embed version information (git hash, build time, 
> etc) into Go binaries with linker flags. Before Go 1.10, this worked:
>
> go build -ldflags="-X 
> github.com/user/top_level_project/vendor/github.com/user/version.Version=some_hash"
>  github.com/user/top_level_project
>
> After Go 1.10, I’m having trouble amending this approach in a way that 
> only busts the build cache for the vendored version package.
>
> go build -ldflags=all="-X 
> github.com/user/top_level_project/vendor/github.com/user/version.Version=some_hash"
>  github.com/user/top_level_project
>
> works, but rebuilds much more than necessary. A variety of alternatives to 
> =all= haven’t worked as I expected.
>
> I’ve put together a small reproduction and a script showing the different 
> approaches I’ve tried at github.com/akshayjshah/golink. Any suggestions 
> would be very welcome!
>
> Cheers,
> Akshay
>
Looks like this works:

diff --git a/demo.sh b/demo.sh
index 888a5df..83ab264 100644
--- a/demo.sh
+++ b/demo.sh
@@ -36,3 +36,6 @@ demo


 SCOPE="github.com/akshayjshah/golink/vendor/..."
 demo
+
+SCOPE="github.com/akshayjshah/golink"
+demo

I can't tell if this intentional though. I'm also exploring this problem 
in https://github.com/golang/go/issues/24456

- Luke 

> ​
>

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

Reply via email to