Packaging Go Libs
Derek (freebsd lists)
482254ac at razorfever.net
Wed Apr 19 10:15:02 UTC 2017
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
More information about the freebsd-ports
mailing list