Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

cmd/go: document behavior of vgo when missing dep (or empty mod file) vs migrating from legacy format #25385

Closed
ardan-bkennedy opened this issue May 14, 2018 · 29 comments
Labels
FrozenDueToAge modules WaitingForInfo Issue is not actionable because of missing required information, which needs to be provided.
Milestone

Comments

@ardan-bkennedy
Copy link

Please answer these questions before submitting your issue. Thanks!

What version of Go are you using (go version)?

go version go1.10.2 darwin/amd64 vgo:2018-02-20.1

Does this issue reproduce with the latest release?

No, I am using this patch

git fetch https://go.googlesource.com/vgo refs/changes/64/111264/1 && git checkout FETCH_HEAD

What operating system and processor architecture are you using (go env)?

GOARCH="amd64"
GOOS="darwin"
GOPATH="/Users/bill/code/go"

What did you do?

If possible, provide a recipe for reproducing the error.
A complete runnable program is good.
A link on play.golang.org is best.

This project is already on my machine inside the GOPATH
https://github.com/ardanlabs/gotraining

So I tried building it

$ cd $GOPATH/src/github.com/ardanlabs/gotraining
$ vgo build

What did you expect to see?

I expected the project to build.

What did you see instead?

vgo seemed to hang. I had to hit control C.

Once I hit Control C, I added an empty go.mod file and tried again and it worked.

@ardan-bkennedy ardan-bkennedy changed the title vgo hangs when no go.mod file is present x/vgo: vgo hangs when no go.mod file is present May 14, 2018
@gopherbot gopherbot added this to the vgo milestone May 14, 2018
@kardianos kardianos added the NeedsFix The path to resolution is known, but the work has not been done. label May 18, 2018
@kardianos
Copy link
Contributor

I've confirmed this is an issue on vgo master (change above has been submitted). Above mentioned change is not the culprit.

A few observations:

  • All dependencies are contained in the vendor folder, no GOPATH lookups should be done, nor should any network access be done for a non-vgo build.
  • There are many packages in this repo github.com/ardanlabs/gotraining (408 in total). Maybe there is some type of exponential behavior at play here?

@kardianos
Copy link
Contributor

@ardan-bkennedy I've looked into this a bit more. Please pull the latest from vgo master and try again. However, you will need to be patient.

What's happening: As far as I can tell, everything is working normally**. Most of the time appears to be spent in golang.org/x/vgo/vendor/cmd/go/internal/vgo/init.go in a function named legacyModInit() and then fetching the dependencies from the network in order to create the first go.mod file. If you instrument the above function with:

	fmt.Println("begin legacyModInit")
	defer fmt.Println("end legacyModInit")

it may help with timing analysis.

The network access I saw above was fetching the remote repos from the network after inspecting the Gopkg file. I was wrong in my previous analysis. The behavior that we see here is somewhat dependent on issue #25073 , though I suspect for converting an existing vendor lock file it will need to hit the network in any case.

@kardianos kardianos added WaitingForInfo Issue is not actionable because of missing required information, which needs to be provided. and removed NeedsFix The path to resolution is known, but the work has not been done. labels May 19, 2018
@ardan-bkennedy
Copy link
Author

I am current using patch (https://golang.org/cl/111264). Does master contain this fix as well?

@kardianos
Copy link
Contributor

kardianos commented May 19, 2018 via email

@ardan-bkennedy
Copy link
Author

I want to start from a clean state. I was hoping vgo clean -a would do that but it re-creates the go.mod file. I don't know what hidden/temporary files are created by vgo nor how to remove them?

@kardianos
Copy link
Contributor

kardianos commented May 19, 2018 via email

@ardan-bkennedy
Copy link
Author

I looked at GOPATH and did not see a v directory. Also searched hidden files. Maybe the clean command removed it already?

$ cd $GOPATH/src/github.com/ardanlabs/gotraining
$rm go.mod
$ time vgo build
vgo build  20.74s user 6.15s system 70% cpu 38.310 total

This is much faster now. That being said, I still don't see a v folder under my GOPATH

@kardianos
Copy link
Contributor

Sorry, I was on a mobile before:

rm -rf $GOPATH/src/v

@ardan-bkennedy
Copy link
Author

ardan-bkennedy commented May 20, 2018

There is different behavior depending if you start with an empty go.mod file or don't have one at all. I would think both situations should behave the same.

-rwxr-xr-x  1 bill  staff    12M May 19 14:00 /Users/bill/code/go/bin/vgo
go version go1.10.2 darwin/amd64 vgo:2018-02-20.1

Start with clean system.

$ cd $GOPATH/src/github.com/ardanlabs/gotraining
$ rm -rf $GOPATH/src/v
$ rm go.mod
$ time vgo build

Output of build command.

vgo: finding gopkg.in/warnings.v0 v0.1.2
vgo: finding gopkg.in/unrolled/render.v1 v1.0.0-20171102162132-65450fb6b2d3
vgo: finding gopkg.in/src-d/go-git.v4 v4.2.1
vgo: finding gopkg.in/src-d/go-billy.v4 v4.1.1
vgo: finding google.golang.org/grpc v1.11.2
vgo: finding google.golang.org/genproto v0.0.0-20180406231819-ce8404429849
vgo: finding google.golang.org/appengine v1.0.0
vgo: finding gonum.org/v1/plot v0.0.0-20180309023041-d96009811a24
vgo: finding gonum.org/v1/gonum v0.0.0-20180405193052-698d55ff6ead
vgo: finding golang.org/x/text v0.3.0
vgo: finding golang.org/x/sys v0.0.0-20180406135729-3b87a42e500a
vgo: finding golang.org/x/oauth2 v0.0.0-20180402223937-921ae394b943
vgo: finding golang.org/x/net v0.0.0-20180406214816-61147c48b25b
vgo: finding golang.org/x/image v0.0.0-20180403161127-f315e4403028
vgo: finding golang.org/x/exp v0.0.0-20180321215751-8460e604b9de
vgo: finding golang.org/x/crypto v0.0.0-20180403160946-b2aa35443fbc
vgo: finding go-hep.org/x/hep v0.0.0-20180405131904-bae7827c6c1e
vgo: finding github.com/xanzy/ssh-agent v0.0.0-20151215153451-ba9c9e33906f
vgo: finding github.com/valyala/fasttemplate v0.0.0-20170224212429-dcecefd839c4
vgo: finding github.com/valyala/bytebufferpool v0.0.0-20160817181652-e746df99fe4a
vgo: finding github.com/urfave/negroni v0.3.0
vgo: finding github.com/theplant/blackfriday v0.0.0-20150310024546-979429e1c46c
vgo: finding github.com/src-d/gcfg v1.3.0
vgo: finding github.com/sjwhitworth/golearn v0.0.0-20180324003246-623af6126539
vgo: finding github.com/sirupsen/logrus v1.0.5
vgo: finding github.com/sergi/go-diff v1.0.0
vgo: finding github.com/satori/go.uuid v1.2.0
vgo: finding github.com/sajari/regression v0.0.0-20180404065841-95df9ccf5f47
vgo: finding github.com/pkg/errors v0.8.0
vgo: finding github.com/pelletier/go-buffruneio v0.2.0
vgo: finding github.com/pborman/uuid v0.0.0-20170612153648-e790cca94e6c
vgo: finding github.com/patrickmn/go-cache v0.0.0-20170722040110-a3647f8e31d7
vgo: finding github.com/pachyderm/pachyderm v1.7.0
vgo: finding github.com/nsf/termbox-go v0.0.0-20180303152453-e2050e41c884
vgo: finding github.com/nats-io/nuid v1.0.0
vgo: finding github.com/nats-io/nats v1.5.0
vgo: finding github.com/nats-io/go-nats v1.5.0
vgo: finding github.com/montanaflynn/stats v0.0.0-20151014174947-eeaced052adb
vgo: finding github.com/mitchellh/go-homedir v0.0.0-20161203194507-b8bc1bf76747
vgo: finding github.com/mattn/go-runewidth v0.0.2
vgo: finding github.com/mattn/go-isatty v0.0.3
vgo: finding github.com/mattn/go-colorable v0.0.9
vgo: finding github.com/markbates/goth v1.45.4
vgo: finding github.com/llgcode/draw2d v0.0.0-20180124133339-274031cf2abe
vgo: finding github.com/lib/pq v0.0.0-20180327071824-d34b9ff171c2
vgo: finding github.com/labstack/gommon v0.0.0-20180312174116-6fe1405d73ec
vgo: finding golang.org/x/sys v0.0.0-20160916181909-8f0908ab3b24
vgo: finding github.com/valyala/fasttemplate v0.0.0-20160315193134-3b874956e03f
vgo: finding github.com/stretchr/testify v0.0.0-20160615092844-d77da356e56a
vgo: finding github.com/stretchr/objx v0.0.0-20140526180921-cbeaeb16a013
vgo: finding github.com/pmezard/go-difflib v0.0.0-20151028094244-d8ed2627bdf0
vgo: finding github.com/mattn/go-isatty v0.0.0-20160806122752-66b8e73f3f5c
vgo: finding github.com/mattn/go-colorable v0.0.6
vgo: finding github.com/davecgh/go-spew v0.0.0-20151105211317-5215b55f46b2
vgo: finding github.com/labstack/echo v0.0.0-20180316170059-a5d81b8d4a62
vgo: finding golang.org/x/sys v0.0.0-20180312081825-c28acc882ebc
vgo: finding golang.org/x/crypto v0.0.0-20180312195533-182114d58262
vgo: finding github.com/stretchr/testify v1.2.1
vgo: finding github.com/stretchr/objx v0.0.0-20180106011353-facf9a85c22f
vgo: finding github.com/stretchr/testify v1.2.0
vgo: finding github.com/pmezard/go-difflib v1.0.0
vgo: finding github.com/davecgh/go-spew v1.1.0
vgo: finding github.com/kniren/gota v0.9.0
vgo: finding github.com/kevinburke/ssh_config v0.0.0-20180317175531-9fc7bb800b55
vgo: finding github.com/kardianos/osext v0.0.0-20170510131534-ae77be60afb1
vgo: finding github.com/justinas/alice v0.0.0-20171023064455-03f45bd4b7da
vgo: finding github.com/julienschmidt/httprouter v0.0.0-20150421170007-8c199fb6259f
vgo: finding github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99
vgo: finding github.com/gorilla/websocket v1.2.0
vgo: finding github.com/gorilla/sessions v0.0.0-20160922145804-ca9ada445741
vgo: finding github.com/gorilla/securecookie v1.1.1
vgo: finding github.com/gorilla/schema v1.0.2
vgo: finding github.com/gorilla/pat v0.0.0-20180118221401-71e7b868be7b
vgo: finding github.com/gorilla/mux v1.6.1
vgo: finding github.com/gorilla/handlers v1.3.0
vgo: finding github.com/gorilla/context v0.0.0-20160226214623-1ea25387ff6f
vgo: finding github.com/google/go-cmp v0.2.0
vgo: finding github.com/gonum/stat v0.0.0-20180125090729-ec9c8a1062f4
vgo: finding github.com/gonum/matrix v0.0.0-20180124231301-a41cc49d4c29
vgo: finding github.com/gonum/lapack v0.0.0-20180125091020-f0b8b25edece
vgo: finding github.com/gonum/internal v0.0.0-20180125090855-fda53f8d2571
vgo: finding github.com/gonum/floats v0.0.0-20180125090339-7de1f4ea7ab5
vgo: finding github.com/gonum/blas v0.0.0-20180125090452-e7c5890b24cf
vgo: finding github.com/golang/protobuf v1.0.0
vgo: finding github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0
vgo: finding github.com/gogo/protobuf v1.0.0
vgo: finding github.com/emirpasic/gods v1.9.0
vgo: finding github.com/edsrzf/mmap-go v0.0.0-20170320065105-0bce6a688712
vgo: finding github.com/dvsekhvalnov/jose2go v0.0.0-20170216131308-f21a8cedbbae
vgo: finding github.com/dgrijalva/jwt-go v0.0.0-20180308231308-06ea1031745c
vgo: finding github.com/daaku/go.zipexe v0.0.0-20150329023125-a5fe2436ffcb
vgo: finding github.com/cznic/zappy v0.0.0-20160723133515-2533cb5b45cc
vgo: finding github.com/cznic/strutil v0.0.0-20171016134553-529a34b1c186
vgo: finding github.com/cznic/sortutil v0.0.0-20150617083342-4c7342852e65
vgo: finding github.com/cznic/ql v1.1.0
vgo: finding github.com/cznic/mathutil v0.0.0-20180221133535-7764e6a2216a
vgo: finding github.com/cznic/lldb v1.1.0
vgo: finding github.com/cznic/internal v0.0.0-20160905094039-cef02a853c3a
vgo: finding github.com/cznic/fileutil v0.0.0-20180108211300-6a051e75936f
vgo: finding github.com/cznic/b v0.0.0-20180115125044-35e9bbe41f07
vgo: finding github.com/braintree/manners v0.0.0-20150503212558-0b5e6b2c2843
vgo: finding github.com/boltdb/bolt v1.3.1
vgo: finding github.com/ajstarks/svgo v0.0.0-20180226025133-644b8db467af
vgo: finding github.com/GeertJohan/go.rice v0.0.0-20170420135705-c02ca9a983da
vgo: downloading github.com/theplant/blackfriday v0.0.0-20150310024546-979429e1c46c
vgo: downloading gopkg.in/unrolled/render.v1 v1.0.0-20171102162132-65450fb6b2d3
vgo build  32.40s user 20.46s system 17% cpu 4:57.15 total

View the go.mod file.

$ cat go.mod
module github.com/ardanlabs/gotraining

require (
	github.com/GeertJohan/go.rice v0.0.0-20170420135705-c02ca9a983da
	github.com/ajstarks/svgo v0.0.0-20180226025133-644b8db467af
	github.com/boltdb/bolt v1.3.1
	github.com/braintree/manners v0.0.0-20150503212558-0b5e6b2c2843
	github.com/cznic/b v0.0.0-20180115125044-35e9bbe41f07
	github.com/cznic/fileutil v0.0.0-20180108211300-6a051e75936f
	github.com/cznic/internal v0.0.0-20160905094039-cef02a853c3a
	github.com/cznic/lldb v1.1.0
	github.com/cznic/mathutil v0.0.0-20180221133535-7764e6a2216a
	github.com/cznic/ql v1.1.0
	github.com/cznic/sortutil v0.0.0-20150617083342-4c7342852e65
	github.com/cznic/strutil v0.0.0-20171016134553-529a34b1c186
	github.com/cznic/zappy v0.0.0-20160723133515-2533cb5b45cc
	github.com/daaku/go.zipexe v0.0.0-20150329023125-a5fe2436ffcb
	github.com/dvsekhvalnov/jose2go v0.0.0-20170216131308-f21a8cedbbae
	github.com/edsrzf/mmap-go v0.0.0-20170320065105-0bce6a688712
	github.com/emirpasic/gods v1.9.0
	github.com/gogo/protobuf v1.0.0
	github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0
	github.com/golang/protobuf v1.0.0
	github.com/gonum/blas v0.0.0-20180125090452-e7c5890b24cf
	github.com/gonum/floats v0.0.0-20180125090339-7de1f4ea7ab5
	github.com/gonum/internal v0.0.0-20180125090855-fda53f8d2571
	github.com/gonum/lapack v0.0.0-20180125091020-f0b8b25edece
	github.com/gonum/matrix v0.0.0-20180124231301-a41cc49d4c29
	github.com/gonum/stat v0.0.0-20180125090729-ec9c8a1062f4
	github.com/google/go-cmp v0.2.0
	github.com/gorilla/context v0.0.0-20160226214623-1ea25387ff6f
	github.com/gorilla/handlers v1.3.0
	github.com/gorilla/mux v1.6.1
	github.com/gorilla/pat v0.0.0-20180118221401-71e7b868be7b
	github.com/gorilla/schema v1.0.2
	github.com/gorilla/securecookie v1.1.1
	github.com/gorilla/sessions v0.0.0-20160922145804-ca9ada445741
	github.com/gorilla/websocket v1.2.0
	github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99
	github.com/julienschmidt/httprouter v0.0.0-20150421170007-8c199fb6259f
	github.com/justinas/alice v0.0.0-20171023064455-03f45bd4b7da
	github.com/kardianos/osext v0.0.0-20170510131534-ae77be60afb1
	github.com/kevinburke/ssh_config v0.0.0-20180317175531-9fc7bb800b55
	github.com/kniren/gota v0.9.0
	github.com/labstack/echo v0.0.0-20180316170059-a5d81b8d4a62
	github.com/lib/pq v0.0.0-20180327071824-d34b9ff171c2
	github.com/llgcode/draw2d v0.0.0-20180124133339-274031cf2abe
	github.com/markbates/goth v1.45.4
	github.com/mattn/go-runewidth v0.0.2
	github.com/mitchellh/go-homedir v0.0.0-20161203194507-b8bc1bf76747
	github.com/montanaflynn/stats v0.0.0-20151014174947-eeaced052adb
	github.com/nats-io/go-nats v1.5.0
	github.com/nats-io/nats v1.5.0
	github.com/nats-io/nuid v1.0.0
	github.com/nsf/termbox-go v0.0.0-20180303152453-e2050e41c884
	github.com/pachyderm/pachyderm v1.7.0
	github.com/patrickmn/go-cache v0.0.0-20170722040110-a3647f8e31d7
	github.com/pborman/uuid v0.0.0-20170612153648-e790cca94e6c
	github.com/pelletier/go-buffruneio v0.2.0
	github.com/pkg/errors v0.8.0
	github.com/sajari/regression v0.0.0-20180404065841-95df9ccf5f47
	github.com/satori/go.uuid v1.2.0
	github.com/sergi/go-diff v1.0.0
	github.com/sirupsen/logrus v1.0.5
	github.com/sjwhitworth/golearn v0.0.0-20180324003246-623af6126539
	github.com/src-d/gcfg v1.3.0
	github.com/theplant/blackfriday v0.0.0-20150310024546-979429e1c46c
	github.com/urfave/negroni v0.3.0
	github.com/xanzy/ssh-agent v0.0.0-20151215153451-ba9c9e33906f
	go-hep.org/x/hep v0.0.0-20180405131904-bae7827c6c1e
	golang.org/x/crypto v0.0.0-20180403160946-b2aa35443fbc
	golang.org/x/exp v0.0.0-20180321215751-8460e604b9de
	golang.org/x/image v0.0.0-20180403161127-f315e4403028
	golang.org/x/net v0.0.0-20180406214816-61147c48b25b
	golang.org/x/oauth2 v0.0.0-20180402223937-921ae394b943
	golang.org/x/sys v0.0.0-20180406135729-3b87a42e500a
	golang.org/x/text v0.3.0
	gonum.org/v1/gonum v0.0.0-20180405193052-698d55ff6ead
	gonum.org/v1/plot v0.0.0-20180309023041-d96009811a24
	google.golang.org/appengine v1.0.0
	google.golang.org/genproto v0.0.0-20180406231819-ce8404429849
	google.golang.org/grpc v1.11.2
	gopkg.in/src-d/go-billy.v4 v4.1.1
	gopkg.in/src-d/go-git.v4 v4.2.1
	gopkg.in/unrolled/render.v1 v1.0.0-20171102162132-65450fb6b2d3
	gopkg.in/warnings.v0 v0.1.2
)

Start clean again but this time use an existing but empty go.mod file.

$ cd $GOPATH/src/github.com/ardanlabs/gotraining
$ rm -rf $GOPATH/src/v
$ rm go.mod
$ touch go.mod
$ time vgo build

Output.

vgo: resolving import "github.com/theplant/blackfriday"
vgo: finding github.com/theplant/blackfriday (latest)
vgo: adding github.com/theplant/blackfriday v0.0.0-20150310024546-979429e1c46c
vgo: resolving import "gopkg.in/unrolled/render.v1"
vgo: finding gopkg.in/unrolled/render.v1 (latest)
vgo: adding gopkg.in/unrolled/render.v1 v1.0.0-20171102162132-65450fb6b2d3
vgo: finding gopkg.in/unrolled/render.v1 v1.0.0-20171102162132-65450fb6b2d3
vgo: finding github.com/theplant/blackfriday v0.0.0-20150310024546-979429e1c46c
vgo: downloading github.com/theplant/blackfriday v0.0.0-20150310024546-979429e1c46c
vgo: downloading gopkg.in/unrolled/render.v1 v1.0.0-20171102162132-65450fb6b2d3
vgo build  0.93s user 0.84s system 24% cpu 7.152 total

View the go.mod file.

$ cat go.mod
module github.com/ardanlabs/gotraining

require (
	github.com/theplant/blackfriday v0.0.0-20150310024546-979429e1c46c
	gopkg.in/unrolled/render.v1 v1.0.0-20171102162132-65450fb6b2d3
)

@kardianos
Copy link
Contributor

Great diagnostic. The difference between the two situations is without a go mod file it attempts to convert the existing lock file. With an empty go mod file it will read the dependencies from the file and get the latest like go get does. In this case we are only building the root package so it gets very few dependencies.

You can also try running "vgo build ./..." with an empty go.mod file present.

@ardan-bkennedy
Copy link
Author

Why the different semantic based on whether the file exists or not? Either vgo should respect what has been vendored or not?

@kardianos
Copy link
Contributor

kardianos commented May 20, 2018 via email

@ardan-bkennedy
Copy link
Author

Basic conclustion is this.

  • If you want MVS, add an empty go.mod file to your project and build all the binaries.
  • If you want to maintain your vendor lock-in, start with no go.mod file and build all the binaries.

This run is starting with an empty go.mod file and I build everything from the root of the project. Then I compare the go.mod file from both options. I also include what is in my vendor lock-in file.

Start with clean system again and an empty go.mod file.

$ cd $GOPATH/src/github.com/ardanlabs/gotraining
$ rm -rf $GOPATH/src/v
$ rm go.mod
$ touch go.mod
$ time vgo build ./...

Different result from the other options.

vgo: resolving import "github.com/theplant/blackfriday"
vgo: finding github.com/theplant/blackfriday (latest)
vgo: adding github.com/theplant/blackfriday v0.0.0-20150310024546-979429e1c46c
vgo: resolving import "gopkg.in/unrolled/render.v1"
vgo: finding gopkg.in/unrolled/render.v1 (latest)
vgo: adding gopkg.in/unrolled/render.v1 v1.0.0-20171102162132-65450fb6b2d3
vgo: resolving import "github.com/patrickmn/go-cache"
vgo: finding github.com/patrickmn/go-cache (latest)
vgo: adding github.com/patrickmn/go-cache v1.0.0
vgo: resolving import "github.com/boltdb/bolt"
vgo: finding github.com/boltdb/bolt (latest)
vgo: adding github.com/boltdb/bolt v1.3.1
vgo: resolving import "github.com/kniren/gota/dataframe"
vgo: finding github.com/kniren/gota (latest)
vgo: adding github.com/kniren/gota v0.9.0
vgo: resolving import "gonum.org/v1/gonum/floats"
vgo: finding gonum.org/v1/gonum (latest)
vgo: adding gonum.org/v1/gonum v0.0.0-20180521103016-e77e79f8ccf5
vgo: resolving import "gonum.org/v1/plot"
vgo: finding gonum.org/v1/plot (latest)
vgo: adding gonum.org/v1/plot v0.0.0-20180514082841-d133dd424d79
vgo: resolving import "github.com/sjwhitworth/golearn/base"
vgo: finding github.com/sjwhitworth/golearn (latest)
vgo: adding github.com/sjwhitworth/golearn v0.0.0-20180519235823-d75f6bfdf838
vgo: resolving import "github.com/sajari/regression"
vgo: finding github.com/sajari/regression (latest)
vgo: adding github.com/sajari/regression v0.0.0-20180423070842-c268e5d9b4c0
vgo: resolving import "go-hep.org/x/hep/csvutil"
vgo: finding go-hep.org/x/hep (latest)
vgo: adding go-hep.org/x/hep v0.11.0
vgo: resolving import "github.com/pachyderm/pachyderm/src/client"
vgo: finding github.com/pachyderm/pachyderm (latest)
vgo: adding github.com/pachyderm/pachyderm v1.7.1
vgo: resolving import "github.com/gonum/matrix/mat64"
vgo: finding github.com/gonum/matrix (latest)
vgo: adding github.com/gonum/matrix v0.0.0-20180124231301-a41cc49d4c29
vgo: resolving import "github.com/gonum/stat"
vgo: finding github.com/gonum/stat (latest)
vgo: adding github.com/gonum/stat v0.0.0-20180125090729-ec9c8a1062f4
vgo: resolving import "github.com/pkg/errors"
vgo: finding github.com/pkg/errors (latest)
vgo: adding github.com/pkg/errors v0.8.0
vgo: resolving import "github.com/lib/pq"
vgo: finding github.com/lib/pq (latest)
vgo: adding github.com/lib/pq v0.0.0-20180327071824-d34b9ff171c2
vgo: resolving import "github.com/montanaflynn/stats"
vgo: finding github.com/montanaflynn/stats (latest)
vgo: adding github.com/montanaflynn/stats v0.0.0-20171201202039-1bf9dbcd8cbe
vgo: resolving import "github.com/braintree/manners"
vgo: finding github.com/braintree/manners (latest)
vgo: adding github.com/braintree/manners v0.0.0-20160418043613-82a8879fc5fd
vgo: resolving import "github.com/pborman/uuid"
vgo: finding github.com/pborman/uuid (latest)
vgo: adding github.com/pborman/uuid v0.0.0-20180122190007-c65b2f87fee3
vgo: resolving import "github.com/nats-io/nats"
vgo: finding github.com/nats-io/nats (latest)
vgo: adding github.com/nats-io/nats v1.5.0
vgo: resolving import "github.com/mattn/go-runewidth"
vgo: finding github.com/mattn/go-runewidth (latest)
vgo: adding github.com/mattn/go-runewidth v0.0.2
vgo: resolving import "github.com/nsf/termbox-go"
vgo: finding github.com/nsf/termbox-go (latest)
vgo: adding github.com/nsf/termbox-go v0.0.0-20180509163535-21a4d435a862
vgo: resolving import "github.com/nats-io/go-nats"
vgo: finding github.com/nats-io/go-nats (latest)
vgo: adding github.com/nats-io/go-nats v1.5.0
vgo: resolving import "github.com/gorilla/pat"
vgo: finding github.com/gorilla/pat (latest)
vgo: adding github.com/gorilla/pat v0.0.0-20180118222023-199c85a7f6d1
vgo: resolving import "github.com/gorilla/sessions"
vgo: finding github.com/gorilla/sessions (latest)
vgo: adding github.com/gorilla/sessions v0.0.0-20180514193723-9ee0d62e031e
vgo: resolving import "github.com/markbates/goth"
vgo: finding github.com/markbates/goth (latest)
vgo: adding github.com/markbates/goth v1.45.6
vgo: resolving import "github.com/dgrijalva/jwt-go"
vgo: finding github.com/dgrijalva/jwt-go (latest)
vgo: adding github.com/dgrijalva/jwt-go v1.0.2
vgo: resolving import "github.com/dvsekhvalnov/jose2go"
vgo: finding github.com/dvsekhvalnov/jose2go (latest)
vgo: adding github.com/dvsekhvalnov/jose2go v0.0.0-20180507073226-3d3ad9f03cde
vgo: resolving import "github.com/urfave/negroni"
vgo: finding github.com/urfave/negroni (latest)
vgo: adding github.com/urfave/negroni v0.3.0
vgo: resolving import "github.com/gorilla/handlers"
vgo: finding github.com/gorilla/handlers (latest)
vgo: adding github.com/gorilla/handlers v1.3.0
vgo: resolving import "github.com/justinas/alice"
vgo: finding github.com/justinas/alice (latest)
vgo: adding github.com/justinas/alice v0.0.0-20171023064455-03f45bd4b7da
vgo: resolving import "github.com/julienschmidt/httprouter"
vgo: finding github.com/julienschmidt/httprouter (latest)
vgo: adding github.com/julienschmidt/httprouter v0.0.0-20180411154501-adbc77eec0d9
vgo: resolving import "github.com/labstack/echo"
vgo: finding github.com/labstack/echo (latest)
vgo: adding github.com/labstack/echo v1.4.4
vgo: resolving import "github.com/gorilla/schema"
vgo: finding github.com/gorilla/schema (latest)
vgo: adding github.com/gorilla/schema v1.0.2
vgo: resolving import "golang.org/x/net/websocket"
vgo: finding golang.org/x/net (latest)
vgo: adding golang.org/x/net v0.0.0-20180519122554-57065200b4b0
vgo: resolving import "github.com/gorilla/websocket"
vgo: finding github.com/gorilla/websocket (latest)
vgo: adding github.com/gorilla/websocket v1.2.0
vgo: resolving import "github.com/GeertJohan/go.rice"
vgo: finding github.com/GeertJohan/go.rice (latest)
vgo: adding github.com/GeertJohan/go.rice v0.0.0-20170420135705-c02ca9a983da
vgo: resolving import "golang.org/x/crypto/acme/autocert"
vgo: finding golang.org/x/crypto (latest)
vgo: adding golang.org/x/crypto v0.0.0-20180515001509-1a580b3eff78
vgo: finding golang.org/x/crypto v0.0.0-20180515001509-1a580b3eff78
vgo: finding github.com/GeertJohan/go.rice v0.0.0-20170420135705-c02ca9a983da
vgo: finding github.com/gorilla/websocket v1.2.0
vgo: finding golang.org/x/net v0.0.0-20180519122554-57065200b4b0
vgo: finding github.com/gorilla/schema v1.0.2
vgo: finding github.com/labstack/echo v1.4.4
vgo: finding gopkg.in/labstack/echo.v1 v1.0.0-20160603145024-be5efe592720
vgo: finding gopkg.in/labstack/echo.v1 v1.0.0-20160311153713-982498ca223e
vgo: finding golang.org/x/text v0.0.0-20160129173921-6fc2e00a0d64
vgo: finding golang.org/x/net v0.0.0-20160126224841-04b9de9b512f
vgo: finding golang.org/x/crypto v0.0.0-20160126184038-1f22c0103821
vgo: finding github.com/mattn/go-colorable v0.0.0-20160126095930-4af63d73f5be
vgo: finding github.com/labstack/gommon v0.0.0-20160130153836-43358a791be6
vgo: finding github.com/labstack/echo v0.0.0-20160130144217-28b1b9d57b8a
vgo: finding golang.org/x/sys v0.0.0-20160315153318-9d4e42a20653
vgo: finding golang.org/x/net v0.0.0-20160315042735-35b06af07202
vgo: finding github.com/mattn/go-colorable v0.0.0-20160220075935-9cbef7c35391
vgo: finding github.com/labstack/gommon v0.0.0-20160319033333-9c0a60557b68
vgo: finding github.com/labstack/echo v0.0.0-20160319231743-576dfeb71d25
vgo: finding github.com/valyala/fasthttp v0.0.0-20160315092703-2b172da53920
vgo: finding github.com/labstack/gommon v0.0.0-20160318233308-81aef43cee03
vgo: finding github.com/klauspost/crc32 v0.0.0-20160219142609-19b0b332c9e4
vgo: finding github.com/klauspost/cpuid v0.0.0-20160302075316-09cded8978dc
vgo: finding github.com/klauspost/compress v0.0.0-20160313145351-006acde2c5d2
vgo: finding golang.org/x/sys v0.0.0-20160601133225-076b54675315
vgo: finding golang.org/x/net v0.0.0-20160609051231-3f122ce3dbbe
vgo: finding github.com/valyala/fasttemplate v0.0.0-20160315193134-3b874956e03f
vgo: finding github.com/stretchr/testify v0.0.0-20160524234229-8d64eb7173c7
vgo: finding github.com/stretchr/objx v0.0.0-20140526180921-cbeaeb16a013
vgo: finding github.com/pmezard/go-difflib v0.0.0-20151028094244-d8ed2627bdf0
vgo: finding github.com/davecgh/go-spew v0.0.0-20151105211317-5215b55f46b2
vgo: finding github.com/mattn/go-isatty v0.0.0-20151211000621-56b76bdf51f7
vgo: finding github.com/mattn/go-colorable v0.0.0-20160602150827-9056b7a9f2d1
vgo: finding github.com/labstack/gommon v0.0.0-20160609003227-722aa12d41c2
vgo: finding gopkg.in/redis.v3 v3.0.0-20160502113945-5183f8dcde97
vgo: finding gopkg.in/mgo.v2 v2.0.0-20160316054952-b6e2fa371e64
vgo: finding gopkg.in/bsm/ratelimit.v1 v1.0.0-20160220154919-db14e161995a
vgo: finding github.com/julienschmidt/httprouter v0.0.0-20180411154501-adbc77eec0d9
vgo: finding github.com/justinas/alice v0.0.0-20171023064455-03f45bd4b7da
vgo: finding github.com/gorilla/handlers v1.3.0
vgo: finding github.com/urfave/negroni v0.3.0
vgo: finding github.com/dvsekhvalnov/jose2go v0.0.0-20180507073226-3d3ad9f03cde
vgo: finding github.com/dgrijalva/jwt-go v1.0.2
vgo: finding github.com/markbates/goth v1.45.6
vgo: finding github.com/gorilla/sessions v0.0.0-20180514193723-9ee0d62e031e
vgo: finding github.com/gorilla/securecookie v1.1.1
vgo: finding github.com/gorilla/context v1.1.1
vgo: finding github.com/gorilla/pat v0.0.0-20180118222023-199c85a7f6d1
vgo: finding github.com/nats-io/go-nats v1.5.0
vgo: finding github.com/nsf/termbox-go v0.0.0-20180509163535-21a4d435a862
vgo: finding github.com/mattn/go-runewidth v0.0.2
vgo: finding github.com/nats-io/nats v1.5.0
vgo: finding github.com/pborman/uuid v0.0.0-20180122190007-c65b2f87fee3
vgo: finding github.com/braintree/manners v0.0.0-20160418043613-82a8879fc5fd
vgo: finding github.com/montanaflynn/stats v0.0.0-20171201202039-1bf9dbcd8cbe
vgo: finding github.com/lib/pq v0.0.0-20180327071824-d34b9ff171c2
vgo: finding github.com/pkg/errors v0.8.0
vgo: finding github.com/gonum/stat v0.0.0-20180125090729-ec9c8a1062f4
vgo: finding github.com/gonum/matrix v0.0.0-20180124231301-a41cc49d4c29
vgo: finding github.com/pachyderm/pachyderm v1.7.1
vgo: finding go-hep.org/x/hep v0.11.0
vgo: finding github.com/sajari/regression v0.0.0-20180423070842-c268e5d9b4c0
vgo: finding github.com/sjwhitworth/golearn v0.0.0-20180519235823-d75f6bfdf838
vgo: finding gonum.org/v1/plot v0.0.0-20180514082841-d133dd424d79
vgo: finding gonum.org/v1/gonum v0.0.0-20180521103016-e77e79f8ccf5
vgo: finding github.com/kniren/gota v0.9.0
vgo: finding github.com/boltdb/bolt v1.3.1
vgo: finding github.com/patrickmn/go-cache v1.0.0
vgo: finding gopkg.in/unrolled/render.v1 v1.0.0-20171102162132-65450fb6b2d3
vgo: finding github.com/theplant/blackfriday v0.0.0-20150310024546-979429e1c46c
vgo: downloading github.com/theplant/blackfriday v0.0.0-20150310024546-979429e1c46c
vgo: downloading gopkg.in/unrolled/render.v1 v1.0.0-20171102162132-65450fb6b2d3
vgo: downloading github.com/patrickmn/go-cache v1.0.0
vgo: downloading github.com/boltdb/bolt v1.3.1
vgo: downloading github.com/kniren/gota v0.9.0
vgo: downloading github.com/gonum/stat v0.0.0-20180125090729-ec9c8a1062f4
vgo: downloading github.com/gonum/matrix v0.0.0-20180124231301-a41cc49d4c29
vgo: downloading gonum.org/v1/gonum v0.0.0-20180521103016-e77e79f8ccf5
vgo: downloading gonum.org/v1/plot v0.0.0-20180514082841-d133dd424d79
vgo: downloading github.com/sjwhitworth/golearn v0.0.0-20180519235823-d75f6bfdf838
vgo: downloading github.com/sajari/regression v0.0.0-20180423070842-c268e5d9b4c0
vgo: downloading go-hep.org/x/hep v0.11.0
vgo: downloading github.com/pachyderm/pachyderm v1.7.1
vgo: downloading golang.org/x/net v0.0.0-20180519122554-57065200b4b0
vgo: downloading github.com/pkg/errors v0.8.0
vgo: downloading github.com/lib/pq v0.0.0-20180327071824-d34b9ff171c2
vgo: downloading github.com/montanaflynn/stats v0.0.0-20171201202039-1bf9dbcd8cbe
vgo: downloading github.com/braintree/manners v0.0.0-20160418043613-82a8879fc5fd
vgo: downloading github.com/pborman/uuid v0.0.0-20180122190007-c65b2f87fee3
vgo: downloading github.com/nats-io/nats v1.5.0
vgo: downloading github.com/nats-io/go-nats v1.5.0
vgo: downloading github.com/mattn/go-runewidth v0.0.2
vgo: downloading github.com/nsf/termbox-go v0.0.0-20180509163535-21a4d435a862
vgo: downloading github.com/gorilla/pat v0.0.0-20180118222023-199c85a7f6d1
vgo: downloading github.com/gorilla/context v1.1.1
vgo: downloading github.com/gorilla/sessions v0.0.0-20180514193723-9ee0d62e031e
vgo: downloading github.com/gorilla/securecookie v1.1.1
vgo: downloading github.com/markbates/goth v1.45.6
vgo: downloading github.com/dgrijalva/jwt-go v1.0.2
vgo: downloading github.com/dvsekhvalnov/jose2go v0.0.0-20180507073226-3d3ad9f03cde
vgo: downloading github.com/urfave/negroni v0.3.0
vgo: downloading github.com/gorilla/handlers v1.3.0
vgo: downloading github.com/justinas/alice v0.0.0-20171023064455-03f45bd4b7da
vgo: downloading github.com/julienschmidt/httprouter v0.0.0-20180411154501-adbc77eec0d9
vgo: downloading github.com/labstack/echo v1.4.4
vgo: downloading github.com/labstack/gommon v0.0.0-20160609003227-722aa12d41c2
vgo: downloading github.com/mattn/go-colorable v0.0.0-20160602150827-9056b7a9f2d1
vgo: downloading github.com/mattn/go-isatty v0.0.0-20151211000621-56b76bdf51f7
vgo: downloading github.com/valyala/fasttemplate v0.0.0-20160315193134-3b874956e03f
vgo: downloading gopkg.in/labstack/echo.v1 v1.0.0-20160603145024-be5efe592720
vgo: downloading github.com/gorilla/schema v1.0.2
vgo: downloading github.com/gorilla/websocket v1.2.0
vgo: downloading github.com/GeertJohan/go.rice v0.0.0-20170420135705-c02ca9a983da
vgo: downloading golang.org/x/crypto v0.0.0-20180515001509-1a580b3eff78
vgo: resolving import "github.com/gonum/floats"
vgo: finding github.com/gonum/floats (latest)
vgo: adding github.com/gonum/floats v0.0.0-20180125090339-7de1f4ea7ab5
vgo: resolving import "github.com/gonum/lapack"
vgo: finding github.com/gonum/lapack (latest)
vgo: adding github.com/gonum/lapack v0.0.0-20180125091020-f0b8b25edece
vgo: resolving import "github.com/gonum/blas"
vgo: finding github.com/gonum/blas (latest)
vgo: adding github.com/gonum/blas v0.0.0-20180125090452-e7c5890b24cf
vgo: resolving import "github.com/gonum/internal/asm/f64"
vgo: finding github.com/gonum/internal (latest)
vgo: adding github.com/gonum/internal v0.0.0-20180125090855-fda53f8d2571
vgo: resolving import "github.com/golang/freetype"
vgo: finding github.com/golang/freetype (latest)
vgo: adding github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0
vgo: resolving import "golang.org/x/image/math/fixed"
vgo: finding golang.org/x/image (latest)
vgo: adding golang.org/x/image v0.0.0-20180403161127-f315e4403028
vgo: resolving import "github.com/llgcode/draw2d"
vgo: finding github.com/llgcode/draw2d (latest)
vgo: adding github.com/llgcode/draw2d v0.0.0-20180124133339-274031cf2abe
vgo: resolving import "github.com/jung-kurt/gofpdf"
vgo: finding github.com/jung-kurt/gofpdf (latest)
vgo: adding github.com/jung-kurt/gofpdf v1.0.0
vgo: resolving import "github.com/ajstarks/svgo"
vgo: finding github.com/ajstarks/svgo (latest)
vgo: adding github.com/ajstarks/svgo v0.0.0-20180226025133-644b8db467af
vgo: resolving import "github.com/cznic/ql/driver"
vgo: finding github.com/cznic/ql (latest)
vgo: adding github.com/cznic/ql v1.1.0
vgo: resolving import "github.com/gogo/protobuf/types"
vgo: finding github.com/gogo/protobuf (latest)
vgo: adding github.com/gogo/protobuf v1.0.0
vgo: resolving import "github.com/golang/protobuf/proto"
vgo: finding github.com/golang/protobuf (latest)
vgo: adding github.com/golang/protobuf v1.1.0
vgo: resolving import "google.golang.org/grpc"
vgo: finding google.golang.org/grpc (latest)
vgo: adding google.golang.org/grpc v1.12.0
vgo: resolving import "gopkg.in/src-d/go-git.v4"
vgo: finding gopkg.in/src-d/go-git.v4 (latest)
vgo: adding gopkg.in/src-d/go-git.v4 v4.4.0
vgo: resolving import "github.com/satori/go.uuid"
vgo: finding github.com/satori/go.uuid (latest)
vgo: adding github.com/satori/go.uuid v1.2.0
vgo: resolving import "github.com/sirupsen/logrus"
vgo: finding github.com/sirupsen/logrus (latest)
vgo: adding github.com/sirupsen/logrus v1.0.5
vgo: resolving import "golang.org/x/exp/rand"
vgo: finding golang.org/x/exp (latest)
vgo: adding golang.org/x/exp v0.0.0-20180321215751-8460e604b9de
vgo: resolving import "github.com/nats-io/nuid"
vgo: finding github.com/nats-io/nuid (latest)
vgo: adding github.com/nats-io/nuid v1.0.0
vgo: resolving import "github.com/gorilla/mux"
vgo: finding github.com/gorilla/mux (latest)
vgo: adding github.com/gorilla/mux v1.6.2
vgo: resolving import "golang.org/x/oauth2"
vgo: finding golang.org/x/oauth2 (latest)
vgo: adding golang.org/x/oauth2 v0.0.0-20180521134554-a582fe72a354
vgo: resolving import "github.com/daaku/go.zipexe"
vgo: finding github.com/daaku/go.zipexe (latest)
vgo: adding github.com/daaku/go.zipexe v0.0.0-20150329023125-a5fe2436ffcb
vgo: resolving import "github.com/kardianos/osext"
vgo: finding github.com/kardianos/osext (latest)
vgo: adding github.com/kardianos/osext v0.0.0-20170510131534-ae77be60afb1
vgo: finding github.com/kardianos/osext v0.0.0-20170510131534-ae77be60afb1
vgo: finding github.com/daaku/go.zipexe v0.0.0-20150329023125-a5fe2436ffcb
vgo: finding golang.org/x/oauth2 v0.0.0-20180521134554-a582fe72a354
vgo: finding github.com/gorilla/mux v1.6.2
vgo: finding github.com/nats-io/nuid v1.0.0
vgo: finding golang.org/x/exp v0.0.0-20180321215751-8460e604b9de
vgo: finding github.com/sirupsen/logrus v1.0.5
vgo: finding github.com/satori/go.uuid v1.2.0
vgo: finding gopkg.in/src-d/go-git.v4 v4.4.0
vgo: finding google.golang.org/grpc v1.12.0
vgo: finding github.com/golang/protobuf v1.1.0
vgo: finding github.com/gogo/protobuf v1.0.0
vgo: finding github.com/cznic/ql v1.1.0
vgo: finding github.com/ajstarks/svgo v0.0.0-20180226025133-644b8db467af
vgo: finding github.com/jung-kurt/gofpdf v1.0.0
vgo: finding github.com/llgcode/draw2d v0.0.0-20180124133339-274031cf2abe
vgo: finding golang.org/x/image v0.0.0-20180403161127-f315e4403028
vgo: finding github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0
vgo: finding github.com/gonum/internal v0.0.0-20180125090855-fda53f8d2571
vgo: finding github.com/gonum/blas v0.0.0-20180125090452-e7c5890b24cf
vgo: finding github.com/gonum/lapack v0.0.0-20180125091020-f0b8b25edece
vgo: finding github.com/gonum/floats v0.0.0-20180125090339-7de1f4ea7ab5
vgo: downloading github.com/gonum/floats v0.0.0-20180125090339-7de1f4ea7ab5
vgo: downloading github.com/gonum/internal v0.0.0-20180125090855-fda53f8d2571
vgo: downloading github.com/gonum/lapack v0.0.0-20180125091020-f0b8b25edece
vgo: downloading github.com/gonum/blas v0.0.0-20180125090452-e7c5890b24cf
vgo: downloading github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0
vgo: downloading golang.org/x/image v0.0.0-20180403161127-f315e4403028
vgo: downloading github.com/llgcode/draw2d v0.0.0-20180124133339-274031cf2abe
vgo: downloading github.com/jung-kurt/gofpdf v1.0.0
vgo: downloading github.com/ajstarks/svgo v0.0.0-20180226025133-644b8db467af
vgo: downloading github.com/cznic/ql v1.1.0
vgo: downloading github.com/gogo/protobuf v1.0.0
vgo: downloading github.com/golang/protobuf v1.1.0
vgo: downloading google.golang.org/grpc v1.12.0
vgo: downloading gopkg.in/src-d/go-git.v4 v4.4.0
vgo: downloading github.com/satori/go.uuid v1.2.0
vgo: downloading github.com/sirupsen/logrus v1.0.5
vgo: downloading golang.org/x/sys v0.0.0-20160601133225-076b54675315
vgo: downloading golang.org/x/exp v0.0.0-20180321215751-8460e604b9de
vgo: downloading github.com/nats-io/nuid v1.0.0
vgo: downloading github.com/gorilla/mux v1.6.2
vgo: downloading golang.org/x/oauth2 v0.0.0-20180521134554-a582fe72a354
vgo: downloading github.com/daaku/go.zipexe v0.0.0-20150329023125-a5fe2436ffcb
vgo: downloading github.com/kardianos/osext v0.0.0-20170510131534-ae77be60afb1
vgo: resolving import "github.com/cznic/b"
vgo: finding github.com/cznic/b (latest)
vgo: adding github.com/cznic/b v0.0.0-20180115125044-35e9bbe41f07
vgo: resolving import "github.com/cznic/lldb"
vgo: finding github.com/cznic/lldb (latest)
vgo: adding github.com/cznic/lldb v1.1.0
vgo: resolving import "github.com/cznic/mathutil"
vgo: finding github.com/cznic/mathutil (latest)
vgo: adding github.com/cznic/mathutil v0.0.0-20180504122225-ca4c9f2c1369
vgo: resolving import "github.com/cznic/strutil"
vgo: finding github.com/cznic/strutil (latest)
vgo: adding github.com/cznic/strutil v0.0.0-20171016134553-529a34b1c186
vgo: resolving import "golang.org/x/text/secure/bidirule"
vgo: finding golang.org/x/text (latest)
vgo: adding golang.org/x/text v0.3.0
vgo: resolving import "google.golang.org/genproto/googleapis/rpc/status"
vgo: finding google.golang.org/genproto (latest)
vgo: adding google.golang.org/genproto v0.0.0-20180518175338-11a468237815
vgo: resolving import "github.com/sergi/go-diff/diffmatchpatch"
vgo: finding github.com/sergi/go-diff (latest)
vgo: adding github.com/sergi/go-diff v1.0.0
vgo: resolving import "gopkg.in/src-d/go-billy.v4"
vgo: finding gopkg.in/src-d/go-billy.v4 (latest)
vgo: adding gopkg.in/src-d/go-billy.v4 v4.1.1
vgo: resolving import "github.com/src-d/gcfg"
vgo: finding github.com/src-d/gcfg (latest)
vgo: adding github.com/src-d/gcfg v1.3.0
vgo: resolving import "github.com/jbenet/go-context/io"
vgo: finding github.com/jbenet/go-context (latest)
vgo: adding github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99
vgo: resolving import "github.com/emirpasic/gods/trees/binaryheap"
vgo: finding github.com/emirpasic/gods (latest)
vgo: adding github.com/emirpasic/gods v1.9.0
vgo: resolving import "github.com/kevinburke/ssh_config"
vgo: finding github.com/kevinburke/ssh_config (latest)
vgo: adding github.com/kevinburke/ssh_config v0.0.0-20180422193403-4fcc689beeab
vgo: resolving import "github.com/mitchellh/go-homedir"
vgo: finding github.com/mitchellh/go-homedir (latest)
vgo: adding github.com/mitchellh/go-homedir v0.0.0-20161203194507-b8bc1bf76747
vgo: resolving import "github.com/xanzy/ssh-agent"
vgo: finding github.com/xanzy/ssh-agent (latest)
vgo: adding github.com/xanzy/ssh-agent v0.0.0-20151215153451-ba9c9e33906f
vgo: finding github.com/xanzy/ssh-agent v0.0.0-20151215153451-ba9c9e33906f
vgo: finding github.com/mitchellh/go-homedir v0.0.0-20161203194507-b8bc1bf76747
vgo: finding github.com/kevinburke/ssh_config v0.0.0-20180422193403-4fcc689beeab
vgo: finding github.com/emirpasic/gods v1.9.0
vgo: finding github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99
vgo: finding github.com/src-d/gcfg v1.3.0
vgo: finding gopkg.in/src-d/go-billy.v4 v4.1.1
vgo: finding github.com/sergi/go-diff v1.0.0
vgo: finding google.golang.org/genproto v0.0.0-20180518175338-11a468237815
vgo: finding golang.org/x/text v0.3.0
vgo: finding github.com/cznic/strutil v0.0.0-20171016134553-529a34b1c186
vgo: finding github.com/cznic/mathutil v0.0.0-20180504122225-ca4c9f2c1369
vgo: finding github.com/cznic/lldb v1.1.0
vgo: finding github.com/cznic/b v0.0.0-20180115125044-35e9bbe41f07
vgo: downloading github.com/cznic/b v0.0.0-20180115125044-35e9bbe41f07
vgo: downloading github.com/cznic/lldb v1.1.0
vgo: downloading github.com/cznic/mathutil v0.0.0-20180504122225-ca4c9f2c1369
vgo: downloading github.com/cznic/strutil v0.0.0-20171016134553-529a34b1c186
vgo: downloading golang.org/x/text v0.3.0
vgo: downloading google.golang.org/genproto v0.0.0-20180518175338-11a468237815
vgo: downloading github.com/sergi/go-diff v1.0.0
vgo: downloading gopkg.in/src-d/go-billy.v4 v4.1.1
vgo: downloading github.com/src-d/gcfg v1.3.0
vgo: downloading github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99
vgo: downloading github.com/emirpasic/gods v1.9.0
vgo: downloading github.com/kevinburke/ssh_config v0.0.0-20180422193403-4fcc689beeab
vgo: downloading github.com/mitchellh/go-homedir v0.0.0-20161203194507-b8bc1bf76747
vgo: downloading github.com/xanzy/ssh-agent v0.0.0-20151215153451-ba9c9e33906f
vgo: resolving import "github.com/cznic/fileutil"
vgo: finding github.com/cznic/fileutil (latest)
vgo: adding github.com/cznic/fileutil v0.0.0-20180108211300-6a051e75936f
vgo: resolving import "github.com/cznic/internal/buffer"
vgo: finding github.com/cznic/internal (latest)
vgo: adding github.com/cznic/internal v0.0.0-20170905175358-4747030f7cf2
vgo: resolving import "github.com/cznic/sortutil"
vgo: finding github.com/cznic/sortutil (latest)
vgo: adding github.com/cznic/sortutil v0.0.0-20150617083342-4c7342852e65
vgo: resolving import "github.com/cznic/zappy"
vgo: finding github.com/cznic/zappy (latest)
vgo: adding github.com/cznic/zappy v0.0.0-20160723133515-2533cb5b45cc
vgo: resolving import "gopkg.in/warnings.v0"
vgo: finding gopkg.in/warnings.v0 (latest)
vgo: adding gopkg.in/warnings.v0 v0.1.2
vgo: resolving import "github.com/pelletier/go-buffruneio"
vgo: finding github.com/pelletier/go-buffruneio (latest)
vgo: adding github.com/pelletier/go-buffruneio v0.2.0
vgo: finding github.com/pelletier/go-buffruneio v0.2.0
vgo: finding gopkg.in/warnings.v0 v0.1.2
vgo: finding github.com/cznic/zappy v0.0.0-20160723133515-2533cb5b45cc
vgo: finding github.com/cznic/sortutil v0.0.0-20150617083342-4c7342852e65
vgo: finding github.com/cznic/internal v0.0.0-20170905175358-4747030f7cf2
vgo: finding github.com/cznic/fileutil v0.0.0-20180108211300-6a051e75936f
vgo: downloading github.com/cznic/fileutil v0.0.0-20180108211300-6a051e75936f
vgo: downloading github.com/cznic/internal v0.0.0-20170905175358-4747030f7cf2
vgo: downloading github.com/cznic/sortutil v0.0.0-20150617083342-4c7342852e65
vgo: downloading github.com/cznic/zappy v0.0.0-20160723133515-2533cb5b45cc
vgo: downloading gopkg.in/warnings.v0 v0.1.2
vgo: downloading github.com/pelletier/go-buffruneio v0.2.0
vgo: resolving import "github.com/edsrzf/mmap-go"
vgo: finding github.com/edsrzf/mmap-go (latest)
vgo: adding github.com/edsrzf/mmap-go v0.0.0-20170320065105-0bce6a688712
vgo: finding github.com/edsrzf/mmap-go v0.0.0-20170320065105-0bce6a688712
vgo: downloading github.com/edsrzf/mmap-go v0.0.0-20170320065105-0bce6a688712
../../../v/github.com/gonum/blas@v0.0.0-20180125090452-e7c5890b24cf/native/level1single.go:13:2: use of internal package not allowed
../../../v/github.com/gonum/floats@v0.0.0-20180125090339-7de1f4ea7ab5/floats.go:18:2: use of internal package not allowed
../../../v/github.com/cznic/lldb@v1.1.0/btree.go:16:2: use of internal package not allowed
../../../v/github.com/cznic/lldb@v1.1.0/memfiler.go:13:2: use of internal package not allowed
../../../v/github.com/cznic/internal@v0.0.0-20170905175358-4747030f7cf2/buffer/buffer.go:36:2: use of internal package not allowed
../../../v/github.com/gonum/matrix@v0.0.0-20180124231301-a41cc49d4c29/mat64/inner.go:9:2: use of internal package not allowed
can't load package: package github.com/ardanlabs/gotraining/topics/go/language/methods/example5:
topics/go/language/methods/example5/example5.go:4:1: expected 'package', found 'import'
topics/go/language/methods/example5/example5.go:5:2: expected ';', found 'STRING' "sync/atomic"
vgo build ./...  80.86s user 38.72s system 19% cpu 10:11.20 total

View the go.mod file.

$ cat go.mod
module github.com/ardanlabs/gotraining

require (
	github.com/GeertJohan/go.rice v0.0.0-20170420135705-c02ca9a983da
	github.com/ajstarks/svgo v0.0.0-20180226025133-644b8db467af
	github.com/boltdb/bolt v1.3.1
	github.com/braintree/manners v0.0.0-20160418043613-82a8879fc5fd
	github.com/cznic/b v0.0.0-20180115125044-35e9bbe41f07
	github.com/cznic/fileutil v0.0.0-20180108211300-6a051e75936f
	github.com/cznic/internal v0.0.0-20170905175358-4747030f7cf2
	github.com/cznic/lldb v1.1.0
	github.com/cznic/mathutil v0.0.0-20180504122225-ca4c9f2c1369
	github.com/cznic/ql v1.1.0
	github.com/cznic/sortutil v0.0.0-20150617083342-4c7342852e65
	github.com/cznic/strutil v0.0.0-20171016134553-529a34b1c186
	github.com/cznic/zappy v0.0.0-20160723133515-2533cb5b45cc
	github.com/daaku/go.zipexe v0.0.0-20150329023125-a5fe2436ffcb
	github.com/dgrijalva/jwt-go v1.0.2
	github.com/dvsekhvalnov/jose2go v0.0.0-20180507073226-3d3ad9f03cde
	github.com/edsrzf/mmap-go v0.0.0-20170320065105-0bce6a688712
	github.com/emirpasic/gods v1.9.0
	github.com/gogo/protobuf v1.0.0
	github.com/golang/freetype v0.0.0-20170609003504-e2365dfdc4a0
	github.com/golang/protobuf v1.1.0
	github.com/gonum/blas v0.0.0-20180125090452-e7c5890b24cf
	github.com/gonum/floats v0.0.0-20180125090339-7de1f4ea7ab5
	github.com/gonum/internal v0.0.0-20180125090855-fda53f8d2571
	github.com/gonum/lapack v0.0.0-20180125091020-f0b8b25edece
	github.com/gonum/matrix v0.0.0-20180124231301-a41cc49d4c29
	github.com/gonum/stat v0.0.0-20180125090729-ec9c8a1062f4
	github.com/gorilla/handlers v1.3.0
	github.com/gorilla/mux v1.6.2
	github.com/gorilla/pat v0.0.0-20180118222023-199c85a7f6d1
	github.com/gorilla/schema v1.0.2
	github.com/gorilla/sessions v0.0.0-20180514193723-9ee0d62e031e
	github.com/gorilla/websocket v1.2.0
	github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99
	github.com/julienschmidt/httprouter v0.0.0-20180411154501-adbc77eec0d9
	github.com/jung-kurt/gofpdf v1.0.0
	github.com/justinas/alice v0.0.0-20171023064455-03f45bd4b7da
	github.com/kardianos/osext v0.0.0-20170510131534-ae77be60afb1
	github.com/kevinburke/ssh_config v0.0.0-20180422193403-4fcc689beeab
	github.com/kniren/gota v0.9.0
	github.com/labstack/echo v1.4.4
	github.com/lib/pq v0.0.0-20180327071824-d34b9ff171c2
	github.com/llgcode/draw2d v0.0.0-20180124133339-274031cf2abe
	github.com/markbates/goth v1.45.6
	github.com/mattn/go-runewidth v0.0.2
	github.com/mitchellh/go-homedir v0.0.0-20161203194507-b8bc1bf76747
	github.com/montanaflynn/stats v0.0.0-20171201202039-1bf9dbcd8cbe
	github.com/nats-io/go-nats v1.5.0
	github.com/nats-io/nats v1.5.0
	github.com/nats-io/nuid v1.0.0
	github.com/nsf/termbox-go v0.0.0-20180509163535-21a4d435a862
	github.com/pachyderm/pachyderm v1.7.1
	github.com/patrickmn/go-cache v1.0.0
	github.com/pborman/uuid v0.0.0-20180122190007-c65b2f87fee3
	github.com/pelletier/go-buffruneio v0.2.0
	github.com/pkg/errors v0.8.0
	github.com/sajari/regression v0.0.0-20180423070842-c268e5d9b4c0
	github.com/satori/go.uuid v1.2.0
	github.com/sergi/go-diff v1.0.0
	github.com/sirupsen/logrus v1.0.5
	github.com/sjwhitworth/golearn v0.0.0-20180519235823-d75f6bfdf838
	github.com/src-d/gcfg v1.3.0
	github.com/theplant/blackfriday v0.0.0-20150310024546-979429e1c46c
	github.com/urfave/negroni v0.3.0
	github.com/xanzy/ssh-agent v0.0.0-20151215153451-ba9c9e33906f
	go-hep.org/x/hep v0.11.0
	golang.org/x/crypto v0.0.0-20180515001509-1a580b3eff78
	golang.org/x/exp v0.0.0-20180321215751-8460e604b9de
	golang.org/x/image v0.0.0-20180403161127-f315e4403028
	golang.org/x/net v0.0.0-20180519122554-57065200b4b0
	golang.org/x/oauth2 v0.0.0-20180521134554-a582fe72a354
	golang.org/x/text v0.3.0
	gonum.org/v1/gonum v0.0.0-20180521103016-e77e79f8ccf5
	gonum.org/v1/plot v0.0.0-20180514082841-d133dd424d79
	google.golang.org/genproto v0.0.0-20180518175338-11a468237815
	google.golang.org/grpc v1.12.0
	gopkg.in/src-d/go-billy.v4 v4.1.1
	gopkg.in/src-d/go-git.v4 v4.4.0
	gopkg.in/unrolled/render.v1 v1.0.0-20171102162132-65450fb6b2d3
	gopkg.in/warnings.v0 v0.1.2
)

MVS: These dependencies only show up in the go.mod file just generated. We started with an empty go.mod and ran vgo build ./...

github.com/dgrijalva/jwt-go v1.0.2
github.com/jung-kurt/gofpdf v1.0.0

LOC: These dependencies only show up in the go.mod file from the previous run. We started with no go.mod file and ran vgo build

github.com/google/go-cmp v0.2.0
github.com/gorilla/context v0.0.0-20160226214623-1ea25387ff6f
github.com/gorilla/securecookie v1.1.1
golang.org/x/sys v0.0.0-20180406135729-3b87a42e500a
google.golang.org/appengine v1.0.0

These are the version differences between MVS and LOC.

MVS: github.com/braintree/manners v0.0.0-20160418043613-82a8879fc5fd
LOC: github.com/braintree/manners v0.0.0-20150503212558-0b5e6b2c2843
[[projects]]
  name = "github.com/braintree/manners"
  packages = ["."]
  revision = "0b5e6b2c2843f4c83c2a40f96980b09cf4af733c"
  version = "0.4.0"

MVS: github.com/cznic/internal v0.0.0-20170905175358-4747030f7cf2
LOC: github.com/cznic/internal v0.0.0-20160905094039-cef02a853c3a
[[projects]]
  name = "github.com/cznic/internal"
  packages = [
    "buffer",
    "file",
    "slice"
  ]
  revision = "cef02a853c3a93623c42eacd574e7ea05f55531b"
  version = "1.0.0"

MVS: github.com/cznic/mathutil v0.0.0-20180504122225-ca4c9f2c1369
LOC: github.com/cznic/mathutil v0.0.0-20180221133535-7764e6a2216a
[[projects]]
  branch = "master"
  name = "github.com/cznic/mathutil"
  packages = ["."]
  revision = "7764e6a2216aaa02c36f75aad62538d39c2962c2"

MVS: github.com/dvsekhvalnov/jose2go v0.0.0-20180507073226-3d3ad9f03cde
LOC: github.com/dvsekhvalnov/jose2go v0.0.0-20170216131308-f21a8cedbbae
[[projects]]
  name = "github.com/dvsekhvalnov/jose2go"
  packages = [
    ".",
    "aes",
    "arrays",
    "base64url",
    "compact",
    "kdf",
    "keys/ecc",
    "padding"
  ]
  revision = "f21a8cedbbae609f623613ec8f81125c243212e6"
  version = "v1.3"

MVS: github.com/golang/protobuf v1.1.0
LOC: github.com/golang/protobuf v1.0.0
[[projects]]
  name = "github.com/gogo/protobuf"
  packages = [
    "gogoproto",
    "proto",
    "protoc-gen-gogo/descriptor",
    "sortkeys",
    "types"
  ]
  revision = "1adfc126b41513cc696b209667c8656ea7aac67c"
  version = "v1.0.0"

MVS: github.com/gorilla/mux v1.6.2
LOC: github.com/gorilla/mux v1.6.1
[[projects]]
  name = "github.com/gorilla/mux"
  packages = ["."]
  revision = "53c1911da2b537f792e7cafcb446b05ffe33b996"
  version = "v1.6.1"

MVS: github.com/gorilla/pat v0.0.0-20180118222023-199c85a7f6d1
LOC: github.com/gorilla/pat v0.0.0-20180118221401-71e7b868be7b
[[projects]]
  name = "github.com/gorilla/pat"
  packages = ["."]
  revision = "71e7b868be7be92ceedfa2836fb96701b5b4b123"
  version = "v1.0"

MVS: github.com/gorilla/sessions v0.0.0-20180514193723-9ee0d62e031e
OLD: github.com/gorilla/sessions v0.0.0-20160922145804-ca9ada445741
[[projects]]
  name = "github.com/gorilla/sessions"
  packages = ["."]
  revision = "ca9ada44574153444b00d3fd9c8559e4cc95f896"
  version = "v1.1"

MVS: github.com/julienschmidt/httprouter v0.0.0-20180411154501-adbc77eec0d9
LOC: github.com/julienschmidt/httprouter v0.0.0-20150421170007-8c199fb6259f
[[projects]]
  name = "github.com/julienschmidt/httprouter"
  packages = ["."]
  revision = "8c199fb6259ffc1af525cc3ad52ee60ba8359669"
  version = "v1.1"

MVS: github.com/kevinburke/ssh_config v0.0.0-20180422193403-4fcc689beeab
LOC: github.com/kevinburke/ssh_config v0.0.0-20180317175531-9fc7bb800b55
[[projects]]
  name = "github.com/kevinburke/ssh_config"
  packages = ["."]
  revision = "9fc7bb800b555d63157c65a904c86a2cc7b4e795"
  version = "0.4"

MVS: github.com/labstack/echo v1.4.4
LOC: github.com/labstack/echo v0.0.0-20180316170059-a5d81b8d4a62
[[projects]]
  name = "github.com/labstack/echo"
  packages = [
    ".",
    "middleware"
  ]
  revision = "a5d81b8d4a627f3f49dcb3164ef2bb5239682227"
  version = "3.3.4"

MVS: github.com/markbates/goth v1.45.6
LOC: github.com/markbates/goth v1.45.4
[[projects]]
  name = "github.com/markbates/goth"
  packages = [
    ".",
    "gothic",
    "providers/faux",
    "providers/github"
  ]
  revision = "15ffa9f4d4eb5144ccc5c505587cbd232235b4f0"
  version = "v1.45.4"

MVS: github.com/montanaflynn/stats v0.0.0-20171201202039-1bf9dbcd8cbe
LOC: github.com/montanaflynn/stats v0.0.0-20151014174947-eeaced052adb
[[projects]]
  name = "github.com/montanaflynn/stats"
  packages = ["."]
  revision = "eeaced052adbcfeea372c749c281099ed7fdaa38"
  version = "0.2.0"

MVS: github.com/nsf/termbox-go v0.0.0-20180509163535-21a4d435a862
LOC: github.com/nsf/termbox-go v0.0.0-20180303152453-e2050e41c884
[[projects]]
  branch = "master"
  name = "github.com/nsf/termbox-go"
  packages = ["."]
  revision = "e2050e41c8847748ec5288741c0b19a8cb26d084"

MVS: github.com/pachyderm/pachyderm v1.7.1
LOC: github.com/pachyderm/pachyderm v1.7.0
[[projects]]
  name = "github.com/pachyderm/pachyderm"
  packages = [
    "src/client",
    "src/client/admin",
    "src/client/auth",
    "src/client/deploy",
    "src/client/enterprise",
    "src/client/health",
    "src/client/pfs",
    "src/client/pkg/config",
    "src/client/pkg/grpcutil",
    "src/client/pkg/pbutil",
    "src/client/pps",
    "src/client/version",
    "src/client/version/versionpb"
  ]
  revision = "dd46fe542eae59fc583a838f30a7646dd87d2685"
  version = "v1.7.0"

MVS: github.com/patrickmn/go-cache v1.0.0
LOC: github.com/patrickmn/go-cache v0.0.0-20170722040110-a3647f8e31d7
[[projects]]
  name = "github.com/patrickmn/go-cache"
  packages = ["."]
  revision = "a3647f8e31d79543b2d0f0ae2fe5c379d72cedc0"
  version = "v2.1.0"

MVS: github.com/pborman/uuid v0.0.0-20180122190007-c65b2f87fee3
LOC: github.com/pborman/uuid v0.0.0-20170612153648-e790cca94e6c
[[projects]]
  name = "github.com/pborman/uuid"
  packages = ["."]
  revision = "e790cca94e6cc75c7064b1332e63811d4aae1a53"
  version = "v1.1"

MVS: github.com/sajari/regression v0.0.0-20180423070842-c268e5d9b4c0
LOC: github.com/sajari/regression v0.0.0-20180404065841-95df9ccf5f47
[[projects]]
  branch = "master"
  name = "github.com/sajari/regression"
  packages = ["."]
  revision = "95df9ccf5f47ead758e32a555740e6fa6ceaa5e3"

MVS: github.com/sjwhitworth/golearn v0.0.0-20180519235823-d75f6bfdf838
LOC: github.com/sjwhitworth/golearn v0.0.0-20180324003246-623af6126539
[[projects]]
  branch = "master"
  name = "github.com/sjwhitworth/golearn"
  packages = [
    "base",
    "evaluation",
    "kdtree",
    "knn",
    "metrics/pairwise",
    "trees",
    "utilities"
  ]
  revision = "623af6126539b4ea3468a8725167526642813715"

*** This is interesting because author mis-labeled to versions to 0.11?
MVS: go-hep.org/x/hep v0.11.0
LOC: go-hep.org/x/hep v0.0.0-20180405131904-bae7827c6c1e
[[projects]]
  name = "go-hep.org/x/hep"
  packages = [
    "csvutil",
    "csvutil/csvdriver"
  ]
  revision = "bae7827c6c1ec35808762182adcae4ed6bab2ccf"
  version = "v0.11"

MVS: golang.org/x/crypto v0.0.0-20180515001509-1a580b3eff78
LOC: golang.org/x/crypto v0.0.0-20180403160946-b2aa35443fbc
[[projects]]
  branch = "master"
  name = "golang.org/x/crypto"
  packages = [
    "acme",
    "acme/autocert",
    "cast5",
    "curve25519",
    "ed25519",
    "ed25519/internal/edwards25519",
    "internal/chacha20",
    "openpgp",
    "openpgp/armor",
    "openpgp/elgamal",
    "openpgp/errors",
    "openpgp/packet",
    "openpgp/s2k",
    "poly1305",
    "ssh",
    "ssh/agent",
    "ssh/knownhosts",
    "ssh/terminal"
  ]
  revision = "b2aa35443fbc700ab74c586ae79b81c171851023"

MVS: golang.org/x/net v0.0.0-20180519122554-57065200b4b0
LOC: golang.org/x/net v0.0.0-20180406214816-61147c48b25b
[[projects]]
  branch = "master"
  name = "golang.org/x/net"
  packages = [
    "context",
    "context/ctxhttp",
    "http2",
    "http2/hpack",
    "idna",
    "internal/timeseries",
    "lex/httplex",
    "trace",
    "websocket"
  ]
  revision = "61147c48b25b599e5b561d2e9c4f3e1ef489ca41"

MVS: golang.org/x/oauth2 v0.0.0-20180521134554-a582fe72a354
LOC: golang.org/x/oauth2 v0.0.0-20180402223937-921ae394b943
[[projects]]
  branch = "master"
  name = "golang.org/x/oauth2"
  packages = [
    ".",
    "internal"
  ]
  revision = "921ae394b9430ed4fb549668d7b087601bd60a81"

MVS: gonum.org/v1/gonum v0.0.0-20180521103016-e77e79f8ccf5
LOC: gonum.org/v1/gonum v0.0.0-20180405193052-698d55ff6ead
[[projects]]
  branch = "master"
  name = "gonum.org/v1/gonum"
  packages = [
    "blas",
    "blas/blas64",
    "blas/gonum",
    "floats",
    "internal/asm/c128",
    "internal/asm/f32",
    "internal/asm/f64",
    "internal/math32",
    "lapack",
    "lapack/gonum",
    "lapack/lapack64",
    "mat",
    "mathext",
    "mathext/internal/amos",
    "mathext/internal/cephes",
    "mathext/internal/gonum",
    "stat",
    "stat/distuv"
  ]
  revision = "698d55ff6ead500c4deb283529de8fb1621dfc13"

MVS: gonum.org/v1/plot v0.0.0-20180514082841-d133dd424d79
LOC: gonum.org/v1/plot v0.0.0-20180309023041-d96009811a24
[[projects]]
  branch = "master"
  name = "gonum.org/v1/plot"
  packages = [
    ".",
    "palette",
    "plotter",
    "plotutil",
    "tools/bezier",
    "vg",
    "vg/draw",
    "vg/fonts",
    "vg/vgeps",
    "vg/vgimg",
    "vg/vgpdf",
    "vg/vgsvg"
  ]
  revision = "d96009811a2494d1beceab94c0383fed3d08453f"

MVS: google.golang.org/genproto v0.0.0-20180518175338-11a468237815
LOC: google.golang.org/genproto v0.0.0-20180406231819-ce8404429849
[[projects]]
  branch = "master"
  name = "google.golang.org/genproto"
  packages = ["googleapis/rpc/status"]
  revision = "ce84044298496ef4b54b4a0a0909ba593cc60e30"

MVS: google.golang.org/grpc v1.12.0
LOC: google.golang.org/grpc v1.11.2
[[projects]]
  name = "google.golang.org/grpc"
  packages = [
    ".",
    "balancer",
    "balancer/base",
    "balancer/roundrobin",
    "codes",
    "connectivity",
    "credentials",
    "encoding",
    "encoding/proto",
    "grpclb/grpc_lb_v1/messages",
    "grpclog",
    "internal",
    "keepalive",
    "metadata",
    "naming",
    "peer",
    "resolver",
    "resolver/dns",
    "resolver/passthrough",
    "stats",
    "status",
    "tap",
    "transport"
  ]
  revision = "d89cded64628466c4ab532d1f0ba5c220459ebe8"
  version = "v1.11.2"

MVS: gopkg.in/src-d/go-git.v4 v4.4.0
LOC: gopkg.in/src-d/go-git.v4 v4.2.1
[[projects]]
  name = "gopkg.in/src-d/go-git.v4"
  packages = [
    ".",
    "config",
    "internal/revision",
    "plumbing",
    "plumbing/cache",
    "plumbing/filemode",
    "plumbing/format/config",
    "plumbing/format/diff",
    "plumbing/format/gitignore",
    "plumbing/format/idxfile",
    "plumbing/format/index",
    "plumbing/format/objfile",
    "plumbing/format/packfile",
    "plumbing/format/pktline",
    "plumbing/object",
    "plumbing/protocol/packp",
    "plumbing/protocol/packp/capability",
    "plumbing/protocol/packp/sideband",
    "plumbing/revlist",
    "plumbing/storer",
    "plumbing/transport",
    "plumbing/transport/client",
    "plumbing/transport/file",
    "plumbing/transport/git",
    "plumbing/transport/http",
    "plumbing/transport/internal/common",
    "plumbing/transport/server",
    "plumbing/transport/ssh",
    "storage",
    "storage/filesystem",
    "storage/filesystem/internal/dotgit",
    "storage/memory",
    "utils/binary",
    "utils/diff",
    "utils/ioutil",
    "utils/merkletrie",
    "utils/merkletrie/filesystem",
    "utils/merkletrie/index",
    "utils/merkletrie/internal/frame",
    "utils/merkletrie/noder"
  ]
  revision = "247cf690745dfd67ccd9f0c07878e6dd85e6c9ed"
  version = "v4.2.1"

@kardianos
Copy link
Contributor

@ardan-bkennedy I'm not sure if there is a bug here at this point.

vgo will always use MVS to solve constrains. If there is no go.mod file, then it will search for existing lock type files and use those as the initial version seed. If there is a go.mod file (either empty or incomplete) it will get the latest version of the module (similar to how go get -u works today). When vgo looks for the latest version of an unconstrained dependency, it gives precedence to semver tagged releases. If it fails to find a semver tagged release, it falls back to using the latest commit.

From glancing at the the config above, it looks like it is working correctly.
Does that make sense? I propose we close this issue.

@ardan-bkennedy
Copy link
Author

I feel like I would like to update documentation before this is closed. Is there a place where we can document these semantics?

@kardianos kardianos changed the title x/vgo: vgo hangs when no go.mod file is present x/vgo: document behavior of vgo when missing dep (or empty mod file) vs migrating from legacy format May 23, 2018
@kardianos
Copy link
Contributor

Right now there is a wiki page for vgo, but it does feel like there should be a short concise "user guide" in a prominent, find-able location. For most people it will "just work", but even so we should be able to point people to something easy to consume documenting what it is doing. It probably also needs to be at least partially present in the command line, but online link would be good too.

@kardianos
Copy link
Contributor

How does this read: https://github.com/golang/go/wiki/vgo-user-guide

@ardan-bkennedy
Copy link
Author

I will spend time on this then. I am sorry but I can't find the wiki page in the repo or in the main Go repo. I have never contributed code before but I would like to help document on the command line as well at some point. The wiki is probably a good starting point.

@kardianos
Copy link
Contributor

The wiki is outside the git repo, hosted on github.

@ardan-bkennedy
Copy link
Author

LOL, you had the link there. https://github.com/golang/go/wiki/vgo-user-guide

I will update this wiki and then we can talk about the command line documentation.

@ardan-bkennedy
Copy link
Author

Would you perfer I put this in a Google document and we can review there before updating?

@kardianos
Copy link
Contributor

kardianos commented May 23, 2018 via email

@ardan-bkennedy
Copy link
Author

I don't feel comfortable just editing the wiki and saving it. I rather have it reviewed first.

@ardan-bkennedy
Copy link
Author

How is this, replacing the content in the Setup section

https://docs.google.com/document/d/1hoVUltVZDV7EgcpvFUdWXPZaCSlUObbGjLLxHPbhWSo/edit?usp=sharing

New Project Setup

There are two options when using vgo for an existing project.

  1. The project already has vendored dependencies using dep and you want to maintain those dependences when possible.
  2. You want vgo to identify the minimal version for the identified imported dependencies, ignoring what currently has been vendored and documented in the dep lock file.

Note: When vgo looks for the latest version of an unconstrained dependency, it gives precedence to semver tagged releases. If it fails to find a semver tagged release, it falls back to using the latest commit.

Option 1

The project has already has vendored dependencies using dep and you want to maintain those dependences where you can.

$ cd $GOPATH/src/<project path>
$ rm go.mod
$ vgo build ./...

In this option you will navigate to the root of the projects path. Verify there is no existing go.mod file. For this option to work, no go.mod file can exist. Then build all possible binaries inside the project.

Option 2

You want vgo to identify the minimal version for the identified imported dependencies, ignoring what currently has been vendored and documented in the dep lock file.

$ cd $GOPATH/src/<project path>
$ rm go.mod
$ touch go.mod
$ vgo build ./...

In this option you will navigate to the root of the projects path. Verify there is no existing go.mod file. For this option to work, an empty go.mod file must exist. Then build all possible binaries inside the project.

Updating Dependencies

To update dependencies to the latest version, run vgo get -u.

@kardianos
Copy link
Contributor

Add me as a commentator on the gdoc pls.

One thing to avoid is now we can ignore GOPATH, we just cd <project-path>. I'm not convinced we should rm go.mod in instructions. We should be a bit more nuanced.

@ardan-bkennedy
Copy link
Author

What email do I use?

@myitcv
Copy link
Member

myitcv commented May 24, 2018

@ardan-bkennedy I messaged you on Slack about the vgo guide. Please can you let me know if you prefer email/other? Thanks

@rsc rsc modified the milestones: vgo, Go1.11 Jul 12, 2018
@rsc rsc added the modules label Jul 12, 2018
@rsc rsc changed the title x/vgo: document behavior of vgo when missing dep (or empty mod file) vs migrating from legacy format cmd/go: document behavior of vgo when missing dep (or empty mod file) vs migrating from legacy format Jul 12, 2018
@rsc rsc modified the milestones: Go1.11, Go1.12 Aug 17, 2018
@rsc
Copy link
Contributor

rsc commented Oct 25, 2018

This discussion revolves around a very very old version of the code that's now completely gone. Rather than try to port whatever is still relevant forward, I'm just going to close this. The general problem - that vgo took a very very long time during conversions - has been fixed.

@rsc rsc closed this as completed Oct 25, 2018
@golang golang locked and limited conversation to collaborators Oct 25, 2019
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
FrozenDueToAge modules WaitingForInfo Issue is not actionable because of missing required information, which needs to be provided.
Projects
None yet
Development

No branches or pull requests

5 participants