I use gb. I like it a lot and I have had no issues.
--
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.
I use gb. I like it a lot and I have had no issues.
I am unsure about pprof but running tests with race for example works great. I would guess that it works.
--
+1
gvt is the best I've used.
* It doesn't force checking in the dependencies
* The manifest is straightforward and easily committed separately
* It's nicely encapsulated entirely in the vendor/ directory
* The commands are straightforward and easy to understand and remember
* The manifest is easily hackable to get around the issues with private repositories that most (all?) vendoring tools have
* It doesn't force a workflow on the users; it is minimally invasive
--- SER
On Wednesday, July 13, 2016 at 11:43:09 AM UTC-4, Nathan Fisher wrote:
> Out of curiosity if the upstream deletes their repo does a force push
> invalidating a sha or in some other way causes a dangling reference how do you
> protect against that without checking the dependency in? I'm thinking about
You can commit external repositories or not, whichever is your preference. gvt doesn't force you to do one or the other. The difference is whether the build process includes a step to pull the dependencies.
--- SER
On 16/07/16 01:43, Florin Pățan wrote:
> I feel this is a controversial statement.
>Godep can do this just as well, in fact any vendoring tool can do this,
> as long as you commit your dependencies.
That is not true. Dave Cheney explained it very well at GDG Berlin
Golang DevFest: https://www.youtube.com/watch?v=c3dW80eO88I (see at ~15:00)
Godep, and other package managers too, are at best naive work-arounds
shoehorned on top of 'go get', while gb is a genuine solution to the
problem of reproducible builds in Go.
In particular, I found the concept of 'import rewriting', used by
countless of package managers, quite irksome and in direct opposition to
the very same concept of a "reproducible build". You have no idea how
many times I have been bitten by the disruptive behaviour of the 'import
rewriting' of those package managers, much to my frustration and dismay.
> Can you plead elaborate how using gb changes an6 of this?
There is no need for me to elaborate. You can find all the answers to
your questions here: https://getgb.io and https://github.com/constabulary/gb
I don't really know much about the other tools but afaik the difference is more in the fact that Gb is more similar to other build systems in other languages. It focuses on making the current thing you are working on easy and simple to build rather than being a tool to work around the strangeness that the vendor thing has become. That is what is so good about it. I can use it without needing to bother about what weird hierarchical vendor folder gets imported where. Probably a bit naive but it has worked so far and it has been so nice.
OT, I think the whole recursive vendor folder handling is a mistake and probably one we will regret unless we fix it. Much better would have been to just embrace semver, stuck to any of the numerous simple existing dep file format and it would have been done, simple and understandable.
--
I'm not interested in a bout, sorry :)
For repeatable builds there are many ways and tools that work fine, Gb is not unique in this respect.
I don't get why this should be a controversial topic however. It seems to be an issue only in the go community.
In all the other languages (newer more modern anyway) it is considered a solved problem.
Sure different tools pop up now and then but they all work in the same general way.
I am sure there is a reason but why can't we just settle on the same idea that everyone else is doing?
Applications and libraries would all then use the same principal way of resolving dependencies and different tools could handle conflicts in
whatever way the author likes. Vendoring or not it would work regardless.
--
--
What do others use?
It's somewhat the same as we use:
* Don't use "go get"
* Have GOTPATH=${PWD} in project root.
* Have a /src directory in the project containing a link to project root
(often ../..) at the package name.
* Use gvt for vendoring everything into /vendor
I ended up with this since I had a multi-language project which I needed
to build debian pakcages too. And I could fulfill all the laguagees
different "demands" for layout (incl. go) at the same time as having
deb-helper recognize the build systems.
To sum it up: I'll stick with godeps. It seems it hits somewhere the sweetspot between following go's way to organize source code and provides a thin, meaningful utility layer above.
I aknowledge again gb - an inredible effort and again the reasons drawn are understandable. But I am not adventurous enough and rather stick with the crowd.
I feared that this delecate topic, comparable to browser wars, will start some heated discussions, that was not my intention.
Thanks to the contributors to this discussion!