Just to add on this that the fact i provide pre built bin is not winning 
against go get,

The repo i took as example is providing,
https://github.com/mh-cbon/emd/releases

and all possible ways to install it i can provide,
https://github.com/mh-cbon/emd#install

So yeah i did my best, i loosed.

On Friday, May 5, 2017 at 2:38:34 PM UTC+2, mhh...@gmail.com wrote:
>
> 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 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. 
>> > 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.

Reply via email to