Our team has run into some complicated issues regarding vendoring. The 
simplest way to explain it is with an illustration.

We have three separate repositories; Main, Foo and Bar.

Main vendors Bar
Main vendors Foo
Foo vendors Bar

When trying to build this code, compile errors like this arise:

./main.go:12: cannot use Bar.Method() (type *"Main/vendor/Foo/vendor/Bar".T) as 
type *"Main/vendor/Bar".T in assignment


Flattening the vendor folder structure so that all vendored dependencies 
(nested or not) all resolve in the same place will solve this, but if there 
are actually different versions of Foo (Main depends on Bar@v1, Foo depends 
on Bar@v2) then this becomes problematic once again.

We use govendor as our dependency management tool.

How can we deal with this issue properly?

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