Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 19 Apr 2017 06:13:48 -0400
From:      "Derek (freebsd lists)" <482254ac@razorfever.net>
To:        freebsd-ports@freebsd.org
Cc:        Christopher Hall <christopherhall.hsw@gmail.com>, Steven Hartland <killing@multiplay.co.uk>
Subject:   Re: Packaging Go Libs
Message-ID:  <2b1132e6-522b-abdf-d85b-5ce7aafb37f8@razorfever.net>
In-Reply-To: <20170419105910.3b87a7a6@arria.bitmark.lan>
References:  <e34c63fd-8b3d-3bb3-7375-58631b33a50a@mouf.net> <20170418103350.433498f4@arria.bitmark.lan> <CAHEMsqY0hFh7Lm%2B%2BgHwtF0XfkHaGFk7kMp1-AcfjJ7Of3CAy5A@mail.gmail.com> <20170419105910.3b87a7a6@arria.bitmark.lan>

next in thread | previous in thread | raw e-mail | index | archive | help
Agree with previous sentiments, and:

On 17-04-18 10:59 PM, Christopher Hall wrote:
>> You should use built in golang vendoring to ensure these
>> dependencies, as their is no guarantee that someone won't update the
>> library port and your app would break, so doing that is very fragile
>
> Currently the GH_TUPLE method is working as it specifies exact
> dependency versions or specific git hashes.
>
> but we made several attempts at submodules in vendor dir
> but have had problems building and go get -u breaks things.
>
> I am wondering if you might suggest a tool or do any other programs in
> ports use such a dependency tool.  Last time I searched ports tree I
> only saw GH_TUPLE used so I just followed that method.
>

 From my point of view, the only thing that should be in the 
vendor directory on checkout is the version-lock file.  This is 
different for different tools.

I have been using gb, as it makes the most sense to me:

https://getgb.io/

sysutils/hfm uses this

godep is also popular, from what I understand:

https://godoc.org/github.com/tools/godep

Vendoring changed internally in go with a GO15VENDOREXPERIMENT 
build environment variable (and then default in 1.6), although I 
have not yet played with it:

https://docs.google.com/document/d/1Bz5-UB7g2uPBdOx-rw5t9MxJwkfpx90cqG9AFL0JAYo/edit

... from the docs, it sounds like it would be compatible with gb 
from a build standpoint - and you simply could use gb to track, 
fetch and lock versions in development - the same thing the ports 
GH_TUPLE covers.  What you do when it's not hosted at github, 
well....

Derek




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?2b1132e6-522b-abdf-d85b-5ce7aafb37f8>