Make sure to resolve entire tree
diff --git a/dependency/resolver.go b/dependency/resolver.go index 3a8e05a..3345dc1 100644 --- a/dependency/resolver.go +++ b/dependency/resolver.go
@@ -464,7 +464,6 @@ continue } r.VersionHandler.Process(dep) - // Here, we want to import the package and see what imports it has. msg.Debug("Trying to open %s", vdep) var imps []string @@ -859,8 +858,14 @@ func sliceToQueue(deps []*cfg.Dependency, basepath string) *list.List { l := list.New() for _, e := range deps { - msg.Debug("Adding local Import %s to queue", e.Name) - l.PushBack(filepath.Join(basepath, filepath.FromSlash(e.Name))) + for _, v := range e.Subpackages { + ip := e.Name + if v != "." && v != "" { + ip = ip + "/" + v + } + msg.Debug("Adding local Import %s to queue", ip) + l.PushBack(filepath.Join(basepath, filepath.FromSlash(ip))) + } } return l }
diff --git a/repo/installer.go b/repo/installer.go index 68a5d59..871cc79 100644 --- a/repo/installer.go +++ b/repo/installer.go
@@ -202,16 +202,17 @@ for _, v := range imps { n := res.Stripv(v) rt, sub := util.NormalizeName(n) + if sub != "" { + sub = "." + } d := conf.Imports.Get(rt) if d == nil { nd := &cfg.Dependency{ - Name: rt, - } - if sub != "" { - nd.Subpackages = []string{sub} + Name: rt, + Subpackages: []string{sub}, } conf.Imports = append(conf.Imports, nd) - } else if sub != "" && !d.HasSubpackage(sub) { + } else if !d.HasSubpackage(sub) { d.Subpackages = append(d.Subpackages, sub) } } @@ -219,19 +220,20 @@ for _, v := range timps { n := res.Stripv(v) rt, sub := util.NormalizeName(n) + if sub != "" { + sub = "." + } d := conf.Imports.Get(rt) if d == nil { d = conf.DevImports.Get(rt) } if d == nil { nd := &cfg.Dependency{ - Name: rt, - } - if sub != "" { - nd.Subpackages = []string{sub} + Name: rt, + Subpackages: []string{sub}, } conf.DevImports = append(conf.DevImports, nd) - } else if sub != "" && !d.HasSubpackage(sub) { + } else if !d.HasSubpackage(sub) { d.Subpackages = append(d.Subpackages, sub) } }