In short: You can't. Flattening is the way to go (pun intended) but dependeing on different versions will brake your build.
On Thu, Apr 13, 2017 at 9:48 PM johnbernardo via golang-nuts < golang-nuts@googlegroups.com> wrote: > 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. > -- Michael Banzon https://michaelbanzon.com/ -- 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.