I totally agree with you and implemented such build pipeline. But still, the fact is i have such situation, I might run after each and every ticket like this, that does not seem a run i can win ;)
On Friday, May 5, 2017 at 2:21:58 PM UTC+2, Jakob Borg wrote: > > For end users I strongly recommend distributing a binary. That gives you > the ability to tag it properly and to know what goes into it - your code, > your dependencies, and the compiler used. Typically this would happen by > vendoring and using a Makefile or build script in the repo, running on some > trusted CI platform. > > If your end users really should build it themselves, I would have a build > process that describes downloading the code, putting it in the correct > place (...), and using your build script / Makefile. The resulting binary > should know what it is (i.e., what hash it came from and how it was > compiled) and be able to report that to you. > > "go get" is a development tool. It does none of the things you need to > happen in a "real" build for end users (imho, ymmv, etc). I would default > your VERSION variable to something like "unsupported-dev" and treat the > binaries correspondingly... "go get" is still perfectly fine for initially > grabbing packages and developer tools where you don't particularly care > what version they are. I sometimes use it as a shortcut for mkdir+git-clone > for non-Go projects. :) > > //jb > > > On 5 May 2017, at 14:09, mhh...@gmail.com <javascript:> wrote: > > > > Hi, > > > > For a program i provide a pre build binary built with > > > > go install --ldflags "-X main.VERSION=$VERSION" > > > > So when users met a problem they can report the version easily > > and certainty. > > > > the version variable is set by default to "0.0.0", could be empty > string. > > > > What should be the cmd line to give the user so that they can go get, > > and set the version to the git hash using the build flag ? > > > > From my computer i could do, > > > > go install --ldflags "-X main.VERSION=`git log | head -n 1`" // or > similar > > > > because i have the repo locally. > > > > But for an end user which did not clone it locally, > > how could that happen in one cross platform command line ? > > > > Note that i might > > - hardcode it into the README or godoc, but that require an additional > control to generate the file containing the instructions, > > - or manual update. > > > > First solution is available only for those who uses such tool, not > everyone. > > Second solution is prone to errors. > > > > thanks. > > > > -- > > 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...@googlegroups.com <javascript:>. > > For more options, visit https://groups.google.com/d/optout. > > -- 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.