Hi all,

We're building with go 1.10.x and dep for a project at work, and having been 
bitten twice in the space of a week with unversioned upstream executables 
fetched via "go get" causing strife with versioned vendor code fetched by 
"dep", we've been working on making our build environment hermetic (we'll be 
moving to modules soon when we move to 1.11, especially because we use 
Artifactory, which supports vgo registries so we can protect our build chain, 
but for now we're stuck with dep).

Our common solution for this is to make sure the tool is put in the "required" 
stanza in Gopkg.toml, then running "dep ensure" to make sure it ends up in the 
Gopkg.lock file so the Docker build can pick it up when it runs "dep ensure 
--vendor-only". This works pretty well for protoc-gen-go from protobuf and 
mockgen (the two tools that broke our build this past week), but I also want to 
do the same for goyacc, which lives in golang.org/x/tools.

I notice that nothing from the golang.org repository is at all versioned, so as 
far as I can tell, it all comes from the master branch.  How do I version these 
to ensure that they don't break with older/other Go versions?  Is there some 
sort of guarantee that they'll work at least n revisions back?  I'm already 
extremely skeptical about the practice of just fetching all packages from git 
repositories, given how easy it is to slip malicious code in that way, so 
requiring a "go get" for those tools doesn't exactly give me the warm and 
fuzzies.


- Dave

-- 
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