golang / dep

Go dependency management tool experiment (deprecated)
https://golang.github.io/dep/
BSD 3-Clause "New" or "Revised" License
12.84k stars 1.05k forks source link

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

Closed AndreasBackx closed 7 years ago

AndreasBackx commented 7 years ago

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 commented 7 years ago

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 commented 7 years ago

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 commented 7 years ago

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 commented 7 years ago

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 commented 7 years ago

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