Skip to content
This repository has been archived by the owner on Sep 9, 2020. It is now read-only.

Dep does not try other versions of nested dependencies. #346

Closed
AndreasBackx opened this issue Mar 22, 2017 · 5 comments
Closed

Dep does not try other versions of nested dependencies. #346

AndreasBackx opened this issue Mar 22, 2017 · 5 comments
Labels

Comments

@AndreasBackx
Copy link

AndreasBackx commented Mar 22, 2017

What version of Go are you using (go version)?
go version go1.8 darwin/amd64

What operating system and processor architecture are you using?
macOS Sierra

What did you do?
dep init on a project that depends on the master branch of Kubernetes' Go Client.
(Latest commit as of writing this issue)

What did you expect to see?
For it to install the Kubernetes Go Client and its dependencies.

What did you see instead?

solve error: No versions of k8s.io/client-go met constraints:
    master: Could not introduce k8s.io/client-go@master, as it requires package github.com/emicklei/go-restful/swagger from github.com/emicklei/go-restful, but in version master that package is missing.
    v2.0.0: Could not introduce k8s.io/client-go@v2.0.0, as it is not allowed by constraint master from project bitbucket.org/be-mobile/status-discovery-kubernetes.
    v1.5.1: Could not introduce k8s.io/client-go@v1.5.1, as it is not allowed by constraint master from project bitbucket.org/be-mobile/status-discovery-kubernetes.
    v1.5.0: Could not introduce k8s.io/client-go@v1.5.0, as it is not allowed by constraint master from project bitbucket.org/be-mobile/status-discovery-kubernetes.
    v1.4.0: Could not introduce k8s.io/client-go@v1.4.0, as it is not allowed by constraint master from project bitbucket.org/be-mobile/status-discovery-kubernetes.
    v2.0.0-alpha.1: Could not introduce k8s.io/client-go@v2.0.0-alpha.1, as it is not allowed by constraint master from project bitbucket.org/be-mobile/status-discovery-kubernetes.
    v2.0.0-alpha.0: Could not introduce k8s.io/client-go@v2.0.0-alpha.0, as it is not allowed by constraint master from project bitbucket.org/be-mobile/status-discovery-kubernetes.
    master: Could not introduce k8s.io/client-go@master, as it is not allowed by constraint master from project bitbucket.org/be-mobile/status-discovery-kubernetes.
    release-1.4: Could not introduce k8s.io/client-go@release-1.4, as it is not allowed by constraint master from project bitbucket.org/be-mobile/status-discovery-kubernetes.
    release-1.5: Could not introduce k8s.io/client-go@release-1.5, as it is not allowed by constraint master from project bitbucket.org/be-mobile/status-discovery-kubernetes.
    release-2.0: Could not introduce k8s.io/client-go@release-2.0, as it is not allowed by constraint master from project bitbucket.org/be-mobile/status-discovery-kubernetes.
    revert-14-1.5: Could not introduce k8s.io/client-go@revert-14-1.5, as it is not allowed by constraint master from project bitbucket.org/be-mobile/status-discovery-kubernetes.

Specifically the second line:

master: Could not introduce k8s.io/client-go@master, as it requires package github.com/emicklei/go-restful/swagger from github.com/emicklei/go-restful, but in version master that package is missing.

It is indeed true that go-restful has removed the package swagger, but I expect for it to try the other versions too or at least the latest tagged release/version.

Retrying dep init makes it say it cached the library and so it succeeds for some reason.

@sdboyer
Copy link
Member

sdboyer commented Mar 22, 2017

Thanks for the detailed issue report 🎉 ! There are a few things going on here.

Specifically the second line:

master: Could not introduce k8s.io/client-go@master, as it requires package github.com/emicklei/go-restful/swagger from github.com/emicklei/go-restful, but in version master that package is missing.

It is indeed true that go-restful has removed the package swagger, but I expect for it to try the other versions too or at least the latest tagged release/version.

Ordinarily, it would; failure at that point should trigger guided backjumping, causing the solver to go back and (eventually) start trying different versions of go-restful, then make it back to k8s.io/client-go, at which point it would work. However...

Retrying dep init makes it say it cached the library and so it succeeds for some reason.

This is the key here. There are still occasionally some issues when the solver triggers a bunch of initial clones (which happens on a lot when you first run the tool); some seem to fail, time out, or something in a way that we don't correctly catch. On a subsequent run, once those heavy clones are already done, things are generally much smoother.

That's not saying it's OK, of course - and we're working on it 😄 . I'm in the process right now (sdboyer/gps#196) of refactoring a lot of how the source management is handled in a way that could eliminate problems like this. Even if it doesn't directly, though, we'll have much tighter control and more ability to figure out what actually IS going on.

In the meantime, though, it would be helpful to get more output for this problem. Could you rm -rf $GOPATH/pkg/dep, then run dep init -v? I suspect that what's happening is non-deterministic (due to dependencies on goroutine scheduling and network interaction), so it's unlikely that exactly this same issue would recur. But a) if it does, it's likely a different problem, and b) even if it doesn't, the fuller trace would be helpful for understanding the context of what you've already reported.

@AndreasBackx
Copy link
Author

AndreasBackx commented Mar 23, 2017

Following what you said and resetting the vendoring, lock, and manifest before running dep init -v does reproduce the problem. Here are the logs with some of the package somewhat censored, those are indicated by surrounding *s.

Rerunning it doesn't seem to solve the issue like I thought it did. But when I resetted my repo to the state where I had my manifest and lock, the first dep ensure -update would fail and the second one succeeds. However if I then resetted my vendoring and $GOPATH/pkg/dep again, it would keep failing the second time too. However a third time seemed to be the charm then. This is odd. Below are the logs. It perhaps has to do with some goroutines because the resolution seems random.

$ dep init -v
dep: Finding dependencies for "**my/project/package**"...
dep: Found 2 dependencies.
dep: Building dependency graph...
dep: Found import of "**other/data/package/subpackage1**", analyzing...
dep: Found import of "github.com/Sirupsen/logrus", analyzing...
dep: Could not determine version for "github.com/Sirupsen/logrus", omitting from generated manifest
dep: Found import of "github.com/satori/go.uuid", analyzing...
dep: Found import of "k8s.io/apimachinery/pkg/apis/meta/v1", analyzing...
Cached github.com/satori/go.uuid
dep: Found import of "k8s.io/client-go/informers", analyzing...
dep: Analyzing transitive imports...
dep: Analyzing "k8s.io/client-go/pkg/api/v1"...
dep: Analyzing "github.com/davecgh/go-spew/spew"...
dep: Analyzing "github.com/docker/distribution/reference"...
dep: Analyzing "github.com/gogo/protobuf/proto"...
dep: Analyzing "github.com/gogo/protobuf/sortkeys"...
dep: Analyzing "github.com/ugorji/go/codec"...
dep: Analyzing "k8s.io/apimachinery/pkg/api/meta"...
dep: Analyzing "github.com/emicklei/go-restful"...
dep: Analyzing "github.com/go-openapi/spec"...
dep: Analyzing "github.com/golang/glog"...
dep: Analyzing "github.com/google/gofuzz"...
dep: Analyzing "github.com/spf13/pflag"...
dep: Analyzing "golang.org/x/net/http2"...
dep: Analyzing "gopkg.in/inf.v0"...
dep: Analyzing "k8s.io/apimachinery/pkg/api/resource"...
dep: Analyzing "k8s.io/apimachinery/pkg/apimachinery/announced"...
dep: Analyzing "k8s.io/apimachinery/pkg/apimachinery/registered"...
dep: Analyzing "k8s.io/apimachinery/pkg/apis/meta/v1"...
dep: Analyzing "k8s.io/apimachinery/pkg/conversion"...
dep: Analyzing "k8s.io/apimachinery/pkg/fields"...
dep: Analyzing "k8s.io/apimachinery/pkg/labels"...
dep: Analyzing "k8s.io/apimachinery/pkg/runtime"...
dep: Analyzing "k8s.io/apimachinery/pkg/runtime/schema"...
dep: Analyzing "k8s.io/apimachinery/pkg/runtime/serializer"...
dep: Analyzing "github.com/ghodss/yaml"...
dep: Analyzing "k8s.io/apimachinery/pkg/selection"...
dep: Analyzing "k8s.io/apimachinery/pkg/types"...
dep: Analyzing "k8s.io/apimachinery/pkg/util/intstr"...
dep: Analyzing "k8s.io/apimachinery/pkg/util/rand"...
dep: Analyzing "k8s.io/apimachinery/pkg/util/sets"...
dep: Analyzing "k8s.io/apimachinery/pkg/util/validation/field"...
dep: Analyzing "k8s.io/client-go/pkg/apis/extensions/v1beta1"...
dep: Analyzing "**other/data/package/subpackage1**"...
dep: Analyzing "github.com/Sirupsen/logrus"...
dep: Analyzing "github.com/gorilla/websocket"...
dep: Analyzing "github.com/satori/go.uuid"...
dep: Analyzing "**other/data/package/config**"...
dep: Analyzing "github.com/koding/multiconfig"...
dep: Analyzing "github.com/BurntSushi/toml"...
dep: Analyzing "github.com/fatih/camelcase"...
dep: Analyzing "github.com/fatih/structs"...
Cached github.com/Sirupsen/logrus
dep: Analyzing "**other/data/package**"...
dep: Analyzing "k8s.io/apimachinery/pkg/util/wait"...
dep: Analyzing "k8s.io/client-go/informers"...
dep: Analyzing "github.com/emicklei/go-restful/swagger"...
dep: Analyzing "github.com/juju/ratelimit"...
dep: Analyzing "k8s.io/apimachinery/pkg/api/errors"...
dep: Analyzing "k8s.io/apimachinery/pkg/runtime/serializer/streaming"...
dep: Analyzing "k8s.io/apimachinery/pkg/util/diff"...
dep: Analyzing "k8s.io/apimachinery/pkg/util/net"...
dep: Analyzing "k8s.io/apimachinery/pkg/util/runtime"...
dep: Analyzing "k8s.io/apimachinery/pkg/version"...
dep: Analyzing "k8s.io/apimachinery/pkg/watch"...
dep: Analyzing "k8s.io/client-go/kubernetes"...
dep: Analyzing "k8s.io/client-go/tools/cache"...
dep: Analyzing "k8s.io/client-go/tools/clientcmd"...
dep: Analyzing "github.com/howeyc/gopass"...
dep: Analyzing "github.com/imdario/mergo"...
dep: Analyzing "k8s.io/apimachinery/pkg/runtime/serializer/json"...
dep: Analyzing "k8s.io/apimachinery/pkg/runtime/serializer/versioning"...
dep: Analyzing "k8s.io/apimachinery/pkg/util/errors"...
dep: Analyzing "k8s.io/apimachinery/pkg/util/validation"...
dep: Solving...
Root project is "**my/project/package**"
 2 transitively valid internal packages
 14 external packages imported from 5 projects
(0)   ✓ select (root)
(1) ? attempt **other/data/package** with 3 pkgs; at least 1 versions to try
(1)     try **other/data/package**@master
Cached github.com/fatih/camelcase
Cached github.com/koding/multiconfig
Cached github.com/fatih/structs
Cached golang.org/x/net
Cached github.com/gorilla/websocket
Cached github.com/BurntSushi/toml
Cached k8s.io/apimachinery
Cached github.com/emicklei/go-restful
Cached **other/data/package**
(1) ✓ select **other/data/package**@master w/3 pkgs
(2) ? attempt github.com/gorilla/websocket with 1 pkgs; at least 1 versions to try
(2)     try github.com/gorilla/websocket@master
(2) ✓ select github.com/gorilla/websocket@master w/1 pkgs
(3) ? attempt k8s.io/apimachinery with 3 pkgs; at least 1 versions to try
(3)     try k8s.io/apimachinery@master
(3) ✓ select k8s.io/apimachinery@master w/20 pkgs
(4) ? attempt github.com/emicklei/go-restful with 1 pkgs; at least 1 versions to try
(4)     try github.com/emicklei/go-restful@master
(4) ✓ select github.com/emicklei/go-restful@master w/2 pkgs
(5) ? attempt github.com/koding/multiconfig with 1 pkgs; at least 1 versions to try
(5)     try github.com/koding/multiconfig@master
(5) ✓ select github.com/koding/multiconfig@master w/1 pkgs
(6) ? attempt github.com/BurntSushi/toml with 1 pkgs; at least 1 versions to try
(6)     try github.com/BurntSushi/toml@master
(6) ✓ select github.com/BurntSushi/toml@master w/1 pkgs
(7) ? attempt github.com/satori/go.uuid with 1 pkgs; at least 1 versions to try
(7)     try github.com/satori/go.uuid@master
(7) ✓ select github.com/satori/go.uuid@master w/1 pkgs
(8) ? attempt github.com/fatih/camelcase with 1 pkgs; at least 1 versions to try
(8)     try github.com/fatih/camelcase@master
(8) ✓ select github.com/fatih/camelcase@master w/1 pkgs
(9) ? attempt gopkg.in/inf.v0 with 1 pkgs; 1 versions to try
(9)     try gopkg.in/inf.v0@v0.9.0
(9) ✓ select gopkg.in/inf.v0@v0.9.0 w/1 pkgs
(10)  ? attempt github.com/golang/glog with 1 pkgs; 1 versions to try
(10)      try github.com/golang/glog@master
(10)  ✓ select github.com/golang/glog@master w/1 pkgs
(11)  ? attempt github.com/fatih/structs with 1 pkgs; at least 1 versions to try
(11)      try github.com/fatih/structs@master
(11)  ✓ select github.com/fatih/structs@master w/1 pkgs
(12)  ? attempt github.com/google/gofuzz with 1 pkgs; 1 versions to try
(12)      try github.com/google/gofuzz@master
(12)  ✓ select github.com/google/gofuzz@master w/1 pkgs
(13)  ? attempt github.com/spf13/pflag with 1 pkgs; 2 versions to try
(13)      try github.com/spf13/pflag@master
(13)  ✓ select github.com/spf13/pflag@master w/1 pkgs
(14)  ? attempt k8s.io/client-go with 6 pkgs; at least 1 versions to try
(14)      try k8s.io/client-go@master
Cached k8s.io/client-go
(15)  ✗   k8s.io/client-go@master depping on github.com/emicklei/go-restful at master has problem subpkg(s):    github.com/emicklei/go-restful/swagger is missing
(14)      try k8s.io/client-go@v2.0.0
(15)  ✗   k8s.io/client-go@v2.0.0 not allowed by constraint master:
(15)      master from (root)
(14)      try k8s.io/client-go@v1.5.1
(15)  ✗   k8s.io/client-go@v1.5.1 not allowed by constraint master:
(15)      master from (root)
(14)      try k8s.io/client-go@v1.5.0
(15)  ✗   k8s.io/client-go@v1.5.0 not allowed by constraint master:
(15)      master from (root)
(14)      try k8s.io/client-go@v1.4.0
(15)  ✗   k8s.io/client-go@v1.4.0 not allowed by constraint master:
(15)      master from (root)
(14)      try k8s.io/client-go@v2.0.0-alpha.1
(15)  ✗   k8s.io/client-go@v2.0.0-alpha.1 not allowed by constraint master:
(15)      master from (root)
(14)      try k8s.io/client-go@v2.0.0-alpha.0
(15)  ✗   k8s.io/client-go@v2.0.0-alpha.0 not allowed by constraint master:
(15)      master from (root)
(14)      try k8s.io/client-go@master
(15)  ✗   k8s.io/client-go@master not allowed by constraint master:
(15)      master from (root)
(14)      try k8s.io/client-go@release-1.4
(15)  ✗   k8s.io/client-go@release-1.4 not allowed by constraint master:
(15)      master from (root)
(14)      try k8s.io/client-go@release-1.5
(15)  ✗   k8s.io/client-go@release-1.5 not allowed by constraint master:
(15)      master from (root)
(14)      try k8s.io/client-go@release-2.0
(15)  ✗   k8s.io/client-go@release-2.0 not allowed by constraint master:
(15)      master from (root)
(14)      try k8s.io/client-go@revert-14-1.5
(15)  ✗   k8s.io/client-go@revert-14-1.5 not allowed by constraint master:
(15)      master from (root)
(14)    ← no more versions of k8s.io/client-go to try; begin backtrack
(13)  ← backtrack: no more versions of github.com/spf13/pflag to try
(12)  ← backtrack: no more versions of github.com/google/gofuzz to try
(11)  ← backtrack: no more versions of github.com/fatih/structs to try
(10)  ← backtrack: no more versions of github.com/golang/glog to try
(9) ← backtrack: no more versions of gopkg.in/inf.v0 to try
(8) ← backtrack: no more versions of github.com/fatih/camelcase to try
(7) ← backtrack: no more versions of github.com/satori/go.uuid to try
(6) ← backtrack: no more versions of github.com/BurntSushi/toml to try
(5) ← backtrack: no more versions of github.com/koding/multiconfig to try
(4) ← backtrack: no more versions of github.com/emicklei/go-restful to try
(3) ← backtrack: no more versions of k8s.io/apimachinery to try
(2) ← backtrack: no more versions of github.com/gorilla/websocket to try
(1) ← backtrack: no more versions of **other/data/package** to try
  ✗ solving failed

Solver wall times by segment:
         b-list-pkgs: 23.001835386s
              b-gmal:  325.090586ms
             satisfy:   25.640609ms
            unselect:    2.914136ms
         select-atom:    2.725545ms
            new-atom:     843.053µs
         select-root:     259.549µs
           backtrack:     137.699µs
          b-pair-rev:     117.813µs
     b-list-versions:     117.712µs
  b-deduce-proj-root:      77.873µs
     b-source-exists:      24.718µs
               other:      19.917µs
           b-matches:      15.957µs

  TOTAL: 23.359820553s

solve error: No versions of k8s.io/client-go met constraints:
    master: Could not introduce k8s.io/client-go@master, as it requires package github.com/emicklei/go-restful/swagger from github.com/emicklei/go-restful, but in version master that package is missing.
    v2.0.0: Could not introduce k8s.io/client-go@v2.0.0, as it is not allowed by constraint master from project **my/project/package**.
    v1.5.1: Could not introduce k8s.io/client-go@v1.5.1, as it is not allowed by constraint master from project **my/project/package**.
    v1.5.0: Could not introduce k8s.io/client-go@v1.5.0, as it is not allowed by constraint master from project **my/project/package**.
    v1.4.0: Could not introduce k8s.io/client-go@v1.4.0, as it is not allowed by constraint master from project **my/project/package**.
    v2.0.0-alpha.1: Could not introduce k8s.io/client-go@v2.0.0-alpha.1, as it is not allowed by constraint master from project **my/project/package**.
    v2.0.0-alpha.0: Could not introduce k8s.io/client-go@v2.0.0-alpha.0, as it is not allowed by constraint master from project **my/project/package**.
    master: Could not introduce k8s.io/client-go@master, as it is not allowed by constraint master from project **my/project/package**.
    release-1.4: Could not introduce k8s.io/client-go@release-1.4, as it is not allowed by constraint master from project **my/project/package**.
    release-1.5: Could not introduce k8s.io/client-go@release-1.5, as it is not allowed by constraint master from project **my/project/package**.
    release-2.0: Could not introduce k8s.io/client-go@release-2.0, as it is not allowed by constraint master from project **my/project/package**.
    revert-14-1.5: Could not introduce k8s.io/client-go@revert-14-1.5, as it is not allowed by constraint master from project **my/project/package**.
No versions of k8s.io/client-go met constraints:
    master: Could not introduce k8s.io/client-go@master, as it requires package github.com/emicklei/go-restful/swagger from github.com/emicklei/go-restful, but in version master that package is missing.
    v2.0.0: Could not introduce k8s.io/client-go@v2.0.0, as it is not allowed by constraint master from project **my/project/package**.
    v1.5.1: Could not introduce k8s.io/client-go@v1.5.1, as it is not allowed by constraint master from project **my/project/package**.
    v1.5.0: Could not introduce k8s.io/client-go@v1.5.0, as it is not allowed by constraint master from project **my/project/package**.
    v1.4.0: Could not introduce k8s.io/client-go@v1.4.0, as it is not allowed by constraint master from project **my/project/package**.
    v2.0.0-alpha.1: Could not introduce k8s.io/client-go@v2.0.0-alpha.1, as it is not allowed by constraint master from project **my/project/package**.
    v2.0.0-alpha.0: Could not introduce k8s.io/client-go@v2.0.0-alpha.0, as it is not allowed by constraint master from project **my/project/package**.
    master: Could not introduce k8s.io/client-go@master, as it is not allowed by constraint master from project **my/project/package**.
    release-1.4: Could not introduce k8s.io/client-go@release-1.4, as it is not allowed by constraint master from project **my/project/package**.
    release-1.5: Could not introduce k8s.io/client-go@release-1.5, as it is not allowed by constraint master from project **my/project/package**.
    release-2.0: Could not introduce k8s.io/client-go@release-2.0, as it is not allowed by constraint master from project **my/project/package**.
    revert-14-1.5: Could not introduce k8s.io/client-go@revert-14-1.5, as it is not allowed by constraint master from project **my/project/package**.

$ dep init -v
# Same logs but with some stuff cached.
$ git reset --hard
# manifest.json and lock.json are back.
$ dep ensure -update
solve error: No versions of k8s.io/client-go met constraints:
    v2.0.0: Could not introduce k8s.io/client-go@v2.0.0, as it is not allowed by constraint master from project **my/project/package**.
    v1.5.1: Could not introduce k8s.io/client-go@v1.5.1, as it is not allowed by constraint master from project **my/project/package**.
    v1.5.0: Could not introduce k8s.io/client-go@v1.5.0, as it is not allowed by constraint master from project **my/project/package**.
    v1.4.0: Could not introduce k8s.io/client-go@v1.4.0, as it is not allowed by constraint master from project **my/project/package**.
    v2.0.0-alpha.1: Could not introduce k8s.io/client-go@v2.0.0-alpha.1, as it is not allowed by constraint master from project **my/project/package**.
    v2.0.0-alpha.0: Could not introduce k8s.io/client-go@v2.0.0-alpha.0, as it is not allowed by constraint master from project **my/project/package**.
    master: Could not introduce k8s.io/client-go@master, as it requires package github.com/emicklei/go-restful/swagger from github.com/emicklei/go-restful, but in version 2.2.0 that package is missing.
    release-1.4: Could not introduce k8s.io/client-go@release-1.4, as it is not allowed by constraint master from project **my/project/package**.
    release-1.5: Could not introduce k8s.io/client-go@release-1.5, as it is not allowed by constraint master from project **my/project/package**.
    release-2.0: Could not introduce k8s.io/client-go@release-2.0, as it is not allowed by constraint master from project **my/project/package**.
    revert-14-1.5: Could not introduce k8s.io/client-go@revert-14-1.5, as it is not allowed by constraint master from project **my/project/package**.
ensure Solve(): No versions of k8s.io/client-go met constraints:
    v2.0.0: Could not introduce k8s.io/client-go@v2.0.0, as it is not allowed by constraint master from project **my/project/package**.
    v1.5.1: Could not introduce k8s.io/client-go@v1.5.1, as it is not allowed by constraint master from project **my/project/package**.
    v1.5.0: Could not introduce k8s.io/client-go@v1.5.0, as it is not allowed by constraint master from project **my/project/package**.
    v1.4.0: Could not introduce k8s.io/client-go@v1.4.0, as it is not allowed by constraint master from project **my/project/package**.
    v2.0.0-alpha.1: Could not introduce k8s.io/client-go@v2.0.0-alpha.1, as it is not allowed by constraint master from project **my/project/package**.
    v2.0.0-alpha.0: Could not introduce k8s.io/client-go@v2.0.0-alpha.0, as it is not allowed by constraint master from project **my/project/package**.
    master: Could not introduce k8s.io/client-go@master, as it requires package github.com/emicklei/go-restful/swagger from github.com/emicklei/go-restful, but in version 2.2.0 that package is missing.
    release-1.4: Could not introduce k8s.io/client-go@release-1.4, as it is not allowed by constraint master from project **my/project/package**.
    release-1.5: Could not introduce k8s.io/client-go@release-1.5, as it is not allowed by constraint master from project **my/project/package**.
    release-2.0: Could not introduce k8s.io/client-go@release-2.0, as it is not allowed by constraint master from project **my/project/package**.
    revert-14-1.5: Could not introduce k8s.io/client-go@revert-14-1.5, as it is not allowed by constraint master from project **my/project/package**.

$ dep ensure -update
# This worked... odd.
# Decided to run it with verbose output and with the vendoring and dep folder removed.
$ rm -rf vendor
$ rm -rf $GOPATH/pkg/dep
$ dep ensure -update -v
Root project is "**my/project/package**"
 2 transitively valid internal packages
 14 external packages imported from 5 projects
(0)   ✓ select (root)
(1) ? attempt **other/data/package** with 3 pkgs; 1 versions to try
(1)     try **other/data/package**@master
(1) ✓ select **other/data/package**@master w/3 pkgs
(2) ? attempt github.com/Sirupsen/logrus with 1 pkgs; 41 versions to try
(2)     try github.com/Sirupsen/logrus@v0.11.5
(2) ✓ select github.com/Sirupsen/logrus@v0.11.5 w/1 pkgs
(3) ? attempt github.com/gorilla/websocket with 1 pkgs; 3 versions to try
(3)     try github.com/gorilla/websocket@v1.1.0
(4) ✗   github.com/gorilla/websocket@v1.1.0 not allowed by constraint master:
(4)     master from **other/data/package**@master
(3)     try github.com/gorilla/websocket@v1.0.0
(4) ✗   github.com/gorilla/websocket@v1.0.0 not allowed by constraint master:
(4)     master from **other/data/package**@master
(3)     try github.com/gorilla/websocket@master
(3) ✓ select github.com/gorilla/websocket@master w/1 pkgs
(4) ? attempt github.com/koding/multiconfig with 1 pkgs; 4 versions to try
(4)     try github.com/koding/multiconfig@master
(4) ✓ select github.com/koding/multiconfig@master w/1 pkgs
(5) ? attempt github.com/BurntSushi/toml with 1 pkgs; 6 versions to try
(5)     try github.com/BurntSushi/toml@v0.2.0
(5) ✓ select github.com/BurntSushi/toml@v0.2.0 w/1 pkgs
(6) ? attempt github.com/satori/go.uuid with 1 pkgs; 3 versions to try
(6)     try github.com/satori/go.uuid@v1.1.0
(7) ✗   github.com/satori/go.uuid@v1.1.0 not allowed by constraint master:
(7)     master from (root)
(7)     master from **other/data/package**@master
(6)     try github.com/satori/go.uuid@v1.0.0
(7) ✗   github.com/satori/go.uuid@v1.0.0 not allowed by constraint master:
(7)     master from (root)
(7)     master from **other/data/package**@master
(6)     try github.com/satori/go.uuid@master
(6) ✓ select github.com/satori/go.uuid@master w/1 pkgs
(7) ? attempt github.com/fatih/camelcase with 1 pkgs; 1 versions to try
(7)     try github.com/fatih/camelcase@master
(7) ✓ select github.com/fatih/camelcase@master w/1 pkgs
(8) ? attempt golang.org/x/sys with 1 pkgs; 1 versions to try
(8)     try golang.org/x/sys@master
(8) ✓ select golang.org/x/sys@master w/1 pkgs
(9) ? attempt k8s.io/apimachinery with 3 pkgs; 1 versions to try
(9)     try k8s.io/apimachinery@master
(9) ✓ select k8s.io/apimachinery@master w/20 pkgs
(10)  ? attempt github.com/emicklei/go-restful with 1 pkgs; 15 versions to try
(10)      try github.com/emicklei/go-restful@2.2.0
(10)  ✓ select github.com/emicklei/go-restful@2.2.0 w/2 pkgs
(11)  ? attempt github.com/fatih/structs with 1 pkgs; 3 versions to try
(11)      try github.com/fatih/structs@v1.0
(11)  ✓ select github.com/fatih/structs@v1.0 w/1 pkgs
(12)  ? attempt github.com/golang/glog with 1 pkgs; 1 versions to try
(12)      try github.com/golang/glog@master
(12)  ✓ select github.com/golang/glog@master w/1 pkgs
(13)  ? attempt github.com/go-openapi/spec with 1 pkgs; 2 versions to try
(13)      try github.com/go-openapi/spec@master
(13)  ✓ select github.com/go-openapi/spec@master w/1 pkgs
(14)  ? attempt github.com/go-openapi/jsonpointer with 1 pkgs; 1 versions to try
(14)      try github.com/go-openapi/jsonpointer@master
(14)  ✓ select github.com/go-openapi/jsonpointer@master w/1 pkgs
(15)  ? attempt github.com/go-openapi/jsonreference with 1 pkgs; 1 versions to try
(15)      try github.com/go-openapi/jsonreference@master
(15)  ✓ select github.com/go-openapi/jsonreference@master w/1 pkgs
(16)  ? attempt github.com/PuerkitoBio/purell with 1 pkgs; 8 versions to try
(16)      try github.com/PuerkitoBio/purell@v1.1.0
(16)  ✓ select github.com/PuerkitoBio/purell@v1.1.0 w/1 pkgs
(17)  ? attempt github.com/PuerkitoBio/urlesc with 1 pkgs; 1 versions to try
(17)      try github.com/PuerkitoBio/urlesc@master
(17)  ✓ select github.com/PuerkitoBio/urlesc@master w/1 pkgs
(18)  ? attempt github.com/gogo/protobuf with 2 pkgs; 13 versions to try
(18)      try github.com/gogo/protobuf@v0.4
(18)  ✓ select github.com/gogo/protobuf@v0.4 w/2 pkgs
(19)  ? attempt github.com/go-openapi/swag with 1 pkgs; 1 versions to try
(19)      try github.com/go-openapi/swag@master
(19)  ✓ select github.com/go-openapi/swag@master w/1 pkgs
(20)  ? attempt github.com/mailru/easyjson with 2 pkgs; 1 versions to try
(20)      try github.com/mailru/easyjson@master
(20)  ✓ select github.com/mailru/easyjson@master w/3 pkgs
(21)  ? attempt golang.org/x/net with 1 pkgs; 4 versions to try
(21)      try golang.org/x/net@master
(21)  ✓ select golang.org/x/net@master w/4 pkgs
(22)  ? attempt k8s.io/client-go with 6 pkgs; 11 versions to try
(22)      try k8s.io/client-go@v2.0.0
(23)  ✗   k8s.io/client-go@v2.0.0 not allowed by constraint master:
(23)      master from (root)
(22)      try k8s.io/client-go@v1.5.1
(23)  ✗   k8s.io/client-go@v1.5.1 not allowed by constraint master:
(23)      master from (root)
(22)      try k8s.io/client-go@v1.5.0
(23)  ✗   k8s.io/client-go@v1.5.0 not allowed by constraint master:
(23)      master from (root)
(22)      try k8s.io/client-go@v1.4.0
(23)  ✗   k8s.io/client-go@v1.4.0 not allowed by constraint master:
(23)      master from (root)
(22)      try k8s.io/client-go@v2.0.0-alpha.1
(23)  ✗   k8s.io/client-go@v2.0.0-alpha.1 not allowed by constraint master:
(23)      master from (root)
(22)      try k8s.io/client-go@v2.0.0-alpha.0
(23)  ✗   k8s.io/client-go@v2.0.0-alpha.0 not allowed by constraint master:
(23)      master from (root)
(22)      try k8s.io/client-go@master
(23)  ✗   k8s.io/client-go@master depping on github.com/emicklei/go-restful at 2.2.0 has problem subpkg(s): github.com/emicklei/go-restful/swagger is missing
(22)      try k8s.io/client-go@release-1.4
(23)  ✗   k8s.io/client-go@release-1.4 not allowed by constraint master:
(23)      master from (root)
(22)      try k8s.io/client-go@release-1.5
(23)  ✗   k8s.io/client-go@release-1.5 not allowed by constraint master:
(23)      master from (root)
(22)      try k8s.io/client-go@release-2.0
(23)  ✗   k8s.io/client-go@release-2.0 not allowed by constraint master:
(23)      master from (root)
(22)      try k8s.io/client-go@revert-14-1.5
(23)  ✗   k8s.io/client-go@revert-14-1.5 not allowed by constraint master:
(23)      master from (root)
(22)    ← no more versions of k8s.io/client-go to try; begin backtrack
(21)  ← backtrack: no more versions of golang.org/x/net to try
(20)  ← backtrack: no more versions of github.com/mailru/easyjson to try
(19)  ← backtrack: no more versions of github.com/go-openapi/swag to try
(18)  ← backtrack: no more versions of github.com/gogo/protobuf to try
(17)  ← backtrack: no more versions of github.com/PuerkitoBio/urlesc to try
(16)  ← backtrack: no more versions of github.com/PuerkitoBio/purell to try
(15)  ← backtrack: no more versions of github.com/go-openapi/jsonreference to try
(14)  ← backtrack: no more versions of github.com/go-openapi/jsonpointer to try
(13)  ← backtrack: no more versions of github.com/go-openapi/spec to try
(12)  ← backtrack: no more versions of github.com/golang/glog to try
(11)  ← backtrack: no more versions of github.com/fatih/structs to try
(10)  ← backtrack: no more versions of github.com/emicklei/go-restful to try
(9) ← backtrack: no more versions of k8s.io/apimachinery to try
(8) ← backtrack: no more versions of golang.org/x/sys to try
(7) ← backtrack: no more versions of github.com/fatih/camelcase to try
(6) ← backtrack: no more versions of github.com/satori/go.uuid to try
(5) ← backtrack: no more versions of github.com/BurntSushi/toml to try
(4) ← backtrack: no more versions of github.com/koding/multiconfig to try
(3) ← backtrack: no more versions of github.com/gorilla/websocket to try
(2) ← backtrack: no more versions of github.com/Sirupsen/logrus to try
(1) ← backtrack: no more versions of **other/data/package** to try
  ✗ solving failed

Solver wall times by segment:
         b-list-pkgs: 34.749845476s
     b-source-exists:  3.693036492s
              b-gmal:   1.20191801s
             satisfy:   31.173302ms
         select-atom:    7.383929ms
            unselect:    6.921873ms
            new-atom:    4.421252ms
     b-list-versions:     551.796µs
         select-root:     321.681µs
  b-deduce-proj-root:     232.434µs
           backtrack:     179.818µs
          b-pair-rev:     109.935µs
           b-matches:      41.457µs
               other:      24.602µs
      b-pair-version:      13.623µs

  TOTAL: 39.69617568s

solve error: No versions of k8s.io/client-go met constraints:
    v2.0.0: Could not introduce k8s.io/client-go@v2.0.0, as it is not allowed by constraint master from project **my/project/package**.
    v1.5.1: Could not introduce k8s.io/client-go@v1.5.1, as it is not allowed by constraint master from project **my/project/package**.
    v1.5.0: Could not introduce k8s.io/client-go@v1.5.0, as it is not allowed by constraint master from project **my/project/package**.
    v1.4.0: Could not introduce k8s.io/client-go@v1.4.0, as it is not allowed by constraint master from project **my/project/package**.
    v2.0.0-alpha.1: Could not introduce k8s.io/client-go@v2.0.0-alpha.1, as it is not allowed by constraint master from project **my/project/package**.
    v2.0.0-alpha.0: Could not introduce k8s.io/client-go@v2.0.0-alpha.0, as it is not allowed by constraint master from project **my/project/package**.
    master: Could not introduce k8s.io/client-go@master, as it requires package github.com/emicklei/go-restful/swagger from github.com/emicklei/go-restful, but in version 2.2.0 that package is missing.
    release-1.4: Could not introduce k8s.io/client-go@release-1.4, as it is not allowed by constraint master from project **my/project/package**.
    release-1.5: Could not introduce k8s.io/client-go@release-1.5, as it is not allowed by constraint master from project **my/project/package**.
    release-2.0: Could not introduce k8s.io/client-go@release-2.0, as it is not allowed by constraint master from project **my/project/package**.
    revert-14-1.5: Could not introduce k8s.io/client-go@revert-14-1.5, as it is not allowed by constraint master from project **my/project/package**.
ensure Solve(): No versions of k8s.io/client-go met constraints:
    v2.0.0: Could not introduce k8s.io/client-go@v2.0.0, as it is not allowed by constraint master from project **my/project/package**.
    v1.5.1: Could not introduce k8s.io/client-go@v1.5.1, as it is not allowed by constraint master from project **my/project/package**.
    v1.5.0: Could not introduce k8s.io/client-go@v1.5.0, as it is not allowed by constraint master from project **my/project/package**.
    v1.4.0: Could not introduce k8s.io/client-go@v1.4.0, as it is not allowed by constraint master from project **my/project/package**.
    v2.0.0-alpha.1: Could not introduce k8s.io/client-go@v2.0.0-alpha.1, as it is not allowed by constraint master from project **my/project/package**.
    v2.0.0-alpha.0: Could not introduce k8s.io/client-go@v2.0.0-alpha.0, as it is not allowed by constraint master from project **my/project/package**.
    master: Could not introduce k8s.io/client-go@master, as it requires package github.com/emicklei/go-restful/swagger from github.com/emicklei/go-restful, but in version 2.2.0 that package is missing.
    release-1.4: Could not introduce k8s.io/client-go@release-1.4, as it is not allowed by constraint master from project **my/project/package**.
    release-1.5: Could not introduce k8s.io/client-go@release-1.5, as it is not allowed by constraint master from project **my/project/package**.
    release-2.0: Could not introduce k8s.io/client-go@release-2.0, as it is not allowed by constraint master from project **my/project/package**.
    revert-14-1.5: Could not introduce k8s.io/client-go@revert-14-1.5, as it is not allowed by constraint master from project **my/project/package**.

$ dep ensure -update -v
Root project is "**my/project/package**"
 2 transitively valid internal packages
 14 external packages imported from 5 projects
(0)   ✓ select (root)
(1) ? attempt **other/data/package** with 3 pkgs; 1 versions to try
(1)     try **other/data/package**@master
(1) ✓ select **other/data/package**@master w/3 pkgs
(2) ? attempt github.com/Sirupsen/logrus with 1 pkgs; 41 versions to try
(2)     try github.com/Sirupsen/logrus@v0.11.5
(2) ✓ select github.com/Sirupsen/logrus@v0.11.5 w/1 pkgs
(3) ? attempt github.com/gorilla/websocket with 1 pkgs; 3 versions to try
(3)     try github.com/gorilla/websocket@v1.1.0
(4) ✗   github.com/gorilla/websocket@v1.1.0 not allowed by constraint master:
(4)     master from **other/data/package**@master
(3)     try github.com/gorilla/websocket@v1.0.0
(4) ✗   github.com/gorilla/websocket@v1.0.0 not allowed by constraint master:
(4)     master from **other/data/package**@master
(3)     try github.com/gorilla/websocket@master
(3) ✓ select github.com/gorilla/websocket@master w/1 pkgs
(4) ? attempt github.com/koding/multiconfig with 1 pkgs; 4 versions to try
(4)     try github.com/koding/multiconfig@master
(4) ✓ select github.com/koding/multiconfig@master w/1 pkgs
(5) ? attempt github.com/BurntSushi/toml with 1 pkgs; 6 versions to try
(5)     try github.com/BurntSushi/toml@v0.2.0
(5) ✓ select github.com/BurntSushi/toml@v0.2.0 w/1 pkgs
(6) ? attempt github.com/satori/go.uuid with 1 pkgs; 3 versions to try
(6)     try github.com/satori/go.uuid@v1.1.0
(7) ✗   github.com/satori/go.uuid@v1.1.0 not allowed by constraint master:
(7)     master from (root)
(7)     master from **other/data/package**@master
(6)     try github.com/satori/go.uuid@v1.0.0
(7) ✗   github.com/satori/go.uuid@v1.0.0 not allowed by constraint master:
(7)     master from (root)
(7)     master from **other/data/package**@master
(6)     try github.com/satori/go.uuid@master
(6) ✓ select github.com/satori/go.uuid@master w/1 pkgs
(7) ? attempt github.com/fatih/camelcase with 1 pkgs; 1 versions to try
(7)     try github.com/fatih/camelcase@master
(7) ✓ select github.com/fatih/camelcase@master w/1 pkgs
(8) ? attempt golang.org/x/sys with 1 pkgs; 1 versions to try
(8)     try golang.org/x/sys@master
(8) ✓ select golang.org/x/sys@master w/1 pkgs
(9) ? attempt k8s.io/apimachinery with 3 pkgs; 1 versions to try
(9)     try k8s.io/apimachinery@master
(9) ✓ select k8s.io/apimachinery@master w/20 pkgs
(10)  ? attempt github.com/emicklei/go-restful with 1 pkgs; 15 versions to try
(10)      try github.com/emicklei/go-restful@2.2.0
(10)  ✓ select github.com/emicklei/go-restful@2.2.0 w/2 pkgs
(11)  ? attempt github.com/golang/glog with 1 pkgs; 1 versions to try
(11)      try github.com/golang/glog@master
(11)  ✓ select github.com/golang/glog@master w/1 pkgs
(12)  ? attempt github.com/go-openapi/spec with 1 pkgs; 2 versions to try
(12)      try github.com/go-openapi/spec@master
(12)  ✓ select github.com/go-openapi/spec@master w/1 pkgs
(13)  ? attempt github.com/google/gofuzz with 1 pkgs; 1 versions to try
(13)      try github.com/google/gofuzz@master
(13)  ✓ select github.com/google/gofuzz@master w/1 pkgs
(14)  ? attempt github.com/fatih/structs with 1 pkgs; 3 versions to try
(14)      try github.com/fatih/structs@v1.0
(14)  ✓ select github.com/fatih/structs@v1.0 w/1 pkgs
(15)  ? attempt k8s.io/client-go with 6 pkgs; 11 versions to try
(15)      try k8s.io/client-go@v2.0.0
(16)  ✗   k8s.io/client-go@v2.0.0 not allowed by constraint master:
(16)      master from (root)
(15)      try k8s.io/client-go@v1.5.1
(16)  ✗   k8s.io/client-go@v1.5.1 not allowed by constraint master:
(16)      master from (root)
(15)      try k8s.io/client-go@v1.5.0
(16)  ✗   k8s.io/client-go@v1.5.0 not allowed by constraint master:
(16)      master from (root)
(15)      try k8s.io/client-go@v1.4.0
(16)  ✗   k8s.io/client-go@v1.4.0 not allowed by constraint master:
(16)      master from (root)
(15)      try k8s.io/client-go@v2.0.0-alpha.1
(16)  ✗   k8s.io/client-go@v2.0.0-alpha.1 not allowed by constraint master:
(16)      master from (root)
(15)      try k8s.io/client-go@v2.0.0-alpha.0
(16)  ✗   k8s.io/client-go@v2.0.0-alpha.0 not allowed by constraint master:
(16)      master from (root)
(15)      try k8s.io/client-go@master
(16)  ✗   k8s.io/client-go@master depping on github.com/emicklei/go-restful at 2.2.0 has problem subpkg(s): github.com/emicklei/go-restful/swagger is missing
(15)      try k8s.io/client-go@release-1.4
(16)  ✗   k8s.io/client-go@release-1.4 not allowed by constraint master:
(16)      master from (root)
(15)      try k8s.io/client-go@release-1.5
(16)  ✗   k8s.io/client-go@release-1.5 not allowed by constraint master:
(16)      master from (root)
(15)      try k8s.io/client-go@release-2.0
(16)  ✗   k8s.io/client-go@release-2.0 not allowed by constraint master:
(16)      master from (root)
(15)      try k8s.io/client-go@revert-14-1.5
(16)  ✗   k8s.io/client-go@revert-14-1.5 not allowed by constraint master:
(16)      master from (root)
(15)    ← no more versions of k8s.io/client-go to try; begin backtrack
(14)  ← backtrack: no more versions of github.com/fatih/structs to try
(13)  ← backtrack: no more versions of github.com/google/gofuzz to try
(12)  ← backtrack: no more versions of github.com/go-openapi/spec to try
(11)  ← backtrack: no more versions of github.com/golang/glog to try
(10)  ← backtrack: no more versions of github.com/emicklei/go-restful to try
(9) ← backtrack: no more versions of k8s.io/apimachinery to try
(8) ← backtrack: no more versions of golang.org/x/sys to try
(7) ← backtrack: no more versions of github.com/fatih/camelcase to try
(6) ← backtrack: no more versions of github.com/satori/go.uuid to try
(5) ← backtrack: no more versions of github.com/BurntSushi/toml to try
(4) ← backtrack: no more versions of github.com/koding/multiconfig to try
(3) ← backtrack: no more versions of github.com/gorilla/websocket to try
(2) ← backtrack: no more versions of github.com/Sirupsen/logrus to try
(1) ← backtrack: no more versions of **other/data/package** to try
  ✗ solving failed

Solver wall times by segment:
     b-list-versions: 2.407875036s
         b-list-pkgs: 1.770984172s
     b-source-exists: 759.764471ms
              b-gmal: 215.354052ms
             satisfy:  23.272128ms
         select-atom:    3.80204ms
            unselect:    1.92002ms
            new-atom:    963.494µs
         select-root:    313.636µs
  b-deduce-proj-root:    205.792µs
          b-pair-rev:     145.67µs
           backtrack:     82.561µs
           b-matches:     42.424µs
               other:     29.853µs
      b-pair-version:     12.385µs

  TOTAL: 5.184767734s

solve error: No versions of k8s.io/client-go met constraints:
    v2.0.0: Could not introduce k8s.io/client-go@v2.0.0, as it is not allowed by constraint master from project **my/project/package**.
    v1.5.1: Could not introduce k8s.io/client-go@v1.5.1, as it is not allowed by constraint master from project **my/project/package**.
    v1.5.0: Could not introduce k8s.io/client-go@v1.5.0, as it is not allowed by constraint master from project **my/project/package**.
    v1.4.0: Could not introduce k8s.io/client-go@v1.4.0, as it is not allowed by constraint master from project **my/project/package**.
    v2.0.0-alpha.1: Could not introduce k8s.io/client-go@v2.0.0-alpha.1, as it is not allowed by constraint master from project **my/project/package**.
    v2.0.0-alpha.0: Could not introduce k8s.io/client-go@v2.0.0-alpha.0, as it is not allowed by constraint master from project **my/project/package**.
    master: Could not introduce k8s.io/client-go@master, as it requires package github.com/emicklei/go-restful/swagger from github.com/emicklei/go-restful, but in version 2.2.0 that package is missing.
    release-1.4: Could not introduce k8s.io/client-go@release-1.4, as it is not allowed by constraint master from project **my/project/package**.
    release-1.5: Could not introduce k8s.io/client-go@release-1.5, as it is not allowed by constraint master from project **my/project/package**.
    release-2.0: Could not introduce k8s.io/client-go@release-2.0, as it is not allowed by constraint master from project **my/project/package**.
    revert-14-1.5: Could not introduce k8s.io/client-go@revert-14-1.5, as it is not allowed by constraint master from project **my/project/package**.
ensure Solve(): No versions of k8s.io/client-go met constraints:
    v2.0.0: Could not introduce k8s.io/client-go@v2.0.0, as it is not allowed by constraint master from project **my/project/package**.
    v1.5.1: Could not introduce k8s.io/client-go@v1.5.1, as it is not allowed by constraint master from project **my/project/package**.
    v1.5.0: Could not introduce k8s.io/client-go@v1.5.0, as it is not allowed by constraint master from project **my/project/package**.
    v1.4.0: Could not introduce k8s.io/client-go@v1.4.0, as it is not allowed by constraint master from project **my/project/package**.
    v2.0.0-alpha.1: Could not introduce k8s.io/client-go@v2.0.0-alpha.1, as it is not allowed by constraint master from project **my/project/package**.
    v2.0.0-alpha.0: Could not introduce k8s.io/client-go@v2.0.0-alpha.0, as it is not allowed by constraint master from project **my/project/package**.
    master: Could not introduce k8s.io/client-go@master, as it requires package github.com/emicklei/go-restful/swagger from github.com/emicklei/go-restful, but in version 2.2.0 that package is missing.
    release-1.4: Could not introduce k8s.io/client-go@release-1.4, as it is not allowed by constraint master from project **my/project/package**.
    release-1.5: Could not introduce k8s.io/client-go@release-1.5, as it is not allowed by constraint master from project **my/project/package**.
    release-2.0: Could not introduce k8s.io/client-go@release-2.0, as it is not allowed by constraint master from project **my/project/package**.
    revert-14-1.5: Could not introduce k8s.io/client-go@revert-14-1.5, as it is not allowed by constraint master from project **my/project/package**.

# Well that somehow didn't work this time...

$ dep ensure -update -v
Root project is "**my/project/package**"
 2 transitively valid internal packages
 14 external packages imported from 5 projects
(0)   ✓ select (root)
(1) ? attempt **other/data/package** with 3 pkgs; 1 versions to try
(1)     try **other/data/package**@master
(1) ✓ select **other/data/package**@master w/3 pkgs
(2) ? attempt github.com/Sirupsen/logrus with 1 pkgs; 41 versions to try
(2)     try github.com/Sirupsen/logrus@v0.11.5
(2) ✓ select github.com/Sirupsen/logrus@v0.11.5 w/1 pkgs
(3) ? attempt github.com/gorilla/websocket with 1 pkgs; 3 versions to try
(3)     try github.com/gorilla/websocket@v1.1.0
(4) ✗   github.com/gorilla/websocket@v1.1.0 not allowed by constraint master:
(4)     master from **other/data/package**@master
(3)     try github.com/gorilla/websocket@v1.0.0
(4) ✗   github.com/gorilla/websocket@v1.0.0 not allowed by constraint master:
(4)     master from **other/data/package**@master
(3)     try github.com/gorilla/websocket@master
(3) ✓ select github.com/gorilla/websocket@master w/1 pkgs
(4) ? attempt github.com/koding/multiconfig with 1 pkgs; 4 versions to try
(4)     try github.com/koding/multiconfig@master
(4) ✓ select github.com/koding/multiconfig@master w/1 pkgs
(5) ? attempt github.com/BurntSushi/toml with 1 pkgs; 6 versions to try
(5)     try github.com/BurntSushi/toml@v0.2.0
(5) ✓ select github.com/BurntSushi/toml@v0.2.0 w/1 pkgs
(6) ? attempt golang.org/x/sys with 1 pkgs; 1 versions to try
(6)     try golang.org/x/sys@master
(6) ✓ select golang.org/x/sys@master w/1 pkgs
(7) ? attempt github.com/fatih/camelcase with 1 pkgs; 1 versions to try
(7)     try github.com/fatih/camelcase@master
(7) ✓ select github.com/fatih/camelcase@master w/1 pkgs
(8) ? attempt k8s.io/client-go with 6 pkgs; 11 versions to try
(8)     try k8s.io/client-go@v2.0.0
(9) ✗   k8s.io/client-go@v2.0.0 not allowed by constraint master:
(9)     master from (root)
(8)     try k8s.io/client-go@v1.5.1
(9) ✗   k8s.io/client-go@v1.5.1 not allowed by constraint master:
(9)     master from (root)
(8)     try k8s.io/client-go@v1.5.0
(9) ✗   k8s.io/client-go@v1.5.0 not allowed by constraint master:
(9)     master from (root)
(8)     try k8s.io/client-go@v1.4.0
(9) ✗   k8s.io/client-go@v1.4.0 not allowed by constraint master:
(9)     master from (root)
(8)     try k8s.io/client-go@v2.0.0-alpha.1
(9) ✗   k8s.io/client-go@v2.0.0-alpha.1 not allowed by constraint master:
(9)     master from (root)
(8)     try k8s.io/client-go@v2.0.0-alpha.0
(9) ✗   k8s.io/client-go@v2.0.0-alpha.0 not allowed by constraint master:
(9)     master from (root)
(8)     try k8s.io/client-go@master
(8) ✓ select k8s.io/client-go@master w/121 pkgs
(9) ? attempt github.com/davecgh/go-spew with 1 pkgs; 3 versions to try
(9)     try github.com/davecgh/go-spew@v1.1.0
(9) ✓ select github.com/davecgh/go-spew@v1.1.0 w/1 pkgs
(10)  ? attempt github.com/docker/distribution with 1 pkgs; 60 versions to try
(10)      try github.com/docker/distribution@v2.6.0
(10)  ✓ select github.com/docker/distribution@v2.6.0 w/2 pkgs
(11)  ? attempt github.com/emicklei/go-restful with 1 pkgs; 15 versions to try
(11)      try github.com/emicklei/go-restful@2.2.0
(12)  ✗   github.com/emicklei/go-restful at 2.2.0 has problem subpkg(s):
(12)        github.com/emicklei/go-restful/swagger is missing; required by k8s.io/client-go@master.
(11)      try github.com/emicklei/go-restful@2.1.0
(12)  ✗   github.com/emicklei/go-restful at 2.1.0 has problem subpkg(s):
(12)        github.com/emicklei/go-restful/swagger is missing; required by k8s.io/client-go@master.
(11)      try github.com/emicklei/go-restful@2.0.0
(12)  ✗   github.com/emicklei/go-restful at 2.0.0 has problem subpkg(s):
(12)        github.com/emicklei/go-restful/swagger is missing; required by k8s.io/client-go@master.
(11)      try github.com/emicklei/go-restful@v1.2
(11)  ✓ select github.com/emicklei/go-restful@v1.2 w/3 pkgs
(12)  ? attempt github.com/howeyc/gopass with 1 pkgs; 1 versions to try
(12)      try github.com/howeyc/gopass@master
(12)  ✓ select github.com/howeyc/gopass@master w/1 pkgs
(13)  ? attempt github.com/gogo/protobuf with 2 pkgs; 13 versions to try
(13)      try github.com/gogo/protobuf@v0.4
(13)  ✓ select github.com/gogo/protobuf@v0.4 w/2 pkgs
(14)  ? attempt github.com/imdario/mergo with 1 pkgs; 9 versions to try
(14)      try github.com/imdario/mergo@0.2.2
(14)  ✓ select github.com/imdario/mergo@0.2.2 w/1 pkgs
(15)  ? attempt github.com/fatih/structs with 1 pkgs; 3 versions to try
(15)      try github.com/fatih/structs@v1.0
(15)  ✓ select github.com/fatih/structs@v1.0 w/1 pkgs
(16)  ? attempt k8s.io/apimachinery with 26 pkgs; 1 versions to try
(16)      try k8s.io/apimachinery@master
(16)  ✓ select k8s.io/apimachinery@master w/39 pkgs
(17)  ? revisit github.com/emicklei/go-restful to add 1 pkgs
(17)    ✓ include 2 more pkgs from github.com/emicklei/go-restful@v1.2
(17)  ? attempt github.com/ghodss/yaml with 1 pkgs; 1 versions to try
(18)      try github.com/ghodss/yaml@master
(18)  ✓ select github.com/ghodss/yaml@master w/1 pkgs
(18)  ? attempt github.com/go-openapi/spec with 1 pkgs; 2 versions to try
(19)      try github.com/go-openapi/spec@master
(19)  ✓ select github.com/go-openapi/spec@master w/1 pkgs
(19)  ? attempt github.com/go-openapi/jsonpointer with 1 pkgs; 1 versions to try
(20)      try github.com/go-openapi/jsonpointer@master
(20)  ✓ select github.com/go-openapi/jsonpointer@master w/1 pkgs
(20)  ? attempt github.com/google/gofuzz with 1 pkgs; 1 versions to try
(21)      try github.com/google/gofuzz@master
(21)  ✓ select github.com/google/gofuzz@master w/1 pkgs
(21)  ? attempt github.com/go-openapi/jsonreference with 1 pkgs; 1 versions to try
(22)      try github.com/go-openapi/jsonreference@master
(22)  ✓ select github.com/go-openapi/jsonreference@master w/1 pkgs
(22)  ? revisit k8s.io/apimachinery to add 3 pkgs
(23)    ✓ include 20 more pkgs from k8s.io/apimachinery@master
(22)  ? attempt golang.org/x/net with 1 pkgs; 4 versions to try
(24)      try golang.org/x/net@master
(24)  ✓ select golang.org/x/net@master w/4 pkgs
(23)  ? attempt github.com/PuerkitoBio/purell with 1 pkgs; 8 versions to try
(25)      try github.com/PuerkitoBio/purell@v1.1.0
(25)  ✓ select github.com/PuerkitoBio/purell@v1.1.0 w/1 pkgs
(24)  ? revisit golang.org/x/net to add 1 pkgs
(26)    ✓ include 1 more pkgs from golang.org/x/net@master
(24)  ? attempt github.com/PuerkitoBio/urlesc with 1 pkgs; 1 versions to try
(27)      try github.com/PuerkitoBio/urlesc@master
(27)  ✓ select github.com/PuerkitoBio/urlesc@master w/1 pkgs
(25)  ? attempt github.com/satori/go.uuid with 1 pkgs; 3 versions to try
(28)      try github.com/satori/go.uuid@v1.1.0
(29)  ✗   github.com/satori/go.uuid@v1.1.0 not allowed by constraint master:
(29)      master from (root)
(29)      master from **other/data/package**@master
(28)      try github.com/satori/go.uuid@v1.0.0
(29)  ✗   github.com/satori/go.uuid@v1.0.0 not allowed by constraint master:
(29)      master from (root)
(29)      master from **other/data/package**@master
(28)      try github.com/satori/go.uuid@master
(28)  ✓ select github.com/satori/go.uuid@master w/1 pkgs
(26)  ? attempt github.com/ugorji/go with 1 pkgs; 1 versions to try
(29)      try github.com/ugorji/go@master
(29)  ✓ select github.com/ugorji/go@master w/1 pkgs
(27)  ? attempt github.com/go-openapi/swag with 1 pkgs; 1 versions to try
(30)      try github.com/go-openapi/swag@master
(30)  ✓ select github.com/go-openapi/swag@master w/1 pkgs
(28)  ? attempt github.com/juju/ratelimit with 1 pkgs; 1 versions to try
(31)      try github.com/juju/ratelimit@master
(31)  ✓ select github.com/juju/ratelimit@master w/1 pkgs
(29)  ? attempt github.com/golang/glog with 1 pkgs; 1 versions to try
(32)      try github.com/golang/glog@master
(32)  ✓ select github.com/golang/glog@master w/1 pkgs
(30)  ? attempt github.com/spf13/pflag with 1 pkgs; 2 versions to try
(33)      try github.com/spf13/pflag@master
(33)  ✓ select github.com/spf13/pflag@master w/1 pkgs
(31)  ? attempt github.com/mailru/easyjson with 2 pkgs; 1 versions to try
(34)      try github.com/mailru/easyjson@master
(34)  ✓ select github.com/mailru/easyjson@master w/3 pkgs
(32)  ? attempt gopkg.in/yaml.v2 with 1 pkgs; 1 versions to try
(35)      try gopkg.in/yaml.v2@v2
(35)  ✓ select gopkg.in/yaml.v2@v2 w/1 pkgs
(33)  ? attempt golang.org/x/crypto with 1 pkgs; 1 versions to try
(36)      try golang.org/x/crypto@master
(36)  ✓ select golang.org/x/crypto@master w/1 pkgs
(34)  ? attempt golang.org/x/text with 2 pkgs; 1 versions to try
(37)      try golang.org/x/text@master
(37)  ✓ select golang.org/x/text@master w/7 pkgs
(35)  ? attempt gopkg.in/inf.v0 with 1 pkgs; 1 versions to try
(38)      try gopkg.in/inf.v0@v0.9.0
(38)  ✓ select gopkg.in/inf.v0@v0.9.0 w/1 pkgs
  ✓ found solution with 210 packages from 35 projects

Solver wall times by segment:
     b-list-versions: 9.437644982s
         b-list-pkgs:  1.68663913s
     b-source-exists: 747.242992ms
              b-gmal:  459.72821ms
             satisfy:  46.153026ms
         select-atom:  35.544921ms
            new-atom:   1.617123ms
         select-root:   1.369258ms
  b-deduce-proj-root:    657.139µs
               other:    274.031µs
            add-atom:    101.409µs
          b-pair-rev:     94.076µs
           b-matches:     35.614µs
      b-pair-version:     11.558µs

  TOTAL: 12.417113469s

# That worked.

@sdboyer sdboyer added the bug label Mar 25, 2017
@sdboyer
Copy link
Member

sdboyer commented Mar 25, 2017

Ahhhh, I think I know why this is happening!

I'm pretty sure that there are errors happening on the calls made to retrieve the lists of available versions for a given dependency (SourceManager.ListVersions()). That's why we see this:

(10)  ← backtrack: no more versions of github.com/emicklei/go-restful to try

Even though there are obviously more versions of that dependency that could be tried. The problem is, while errors resulting from calls to ListVersions() do cause the solver to abort appropriately, they're stored in such a way that they don't actually get reported properly in results. Thus, we see these misleading errors that tell us there are no more versions to try, when the actual problem is that we failed to retrieve the rest of the list.

Fixing the reporting problem shouldn't be too hard. I suspect that the underlying problem will end up being solved by the aforementioned sdboyer/gps#196.

@AndreasBackx
Copy link
Author

Sweet, it isn't that big of a deal as it resolves itself after a while. The tool already is miles better than the other existing ones in terms of consistency.

@sdboyer
Copy link
Member

sdboyer commented Aug 8, 2017

oh, this one should be closed out, the underlying issues here should now be mostly addressed.

@sdboyer sdboyer closed this as completed Aug 8, 2017
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Projects
None yet
Development

No branches or pull requests

2 participants