This repository was archived by the owner on Sep 9, 2020. It is now read-only.
This repository was archived by the owner on Sep 9, 2020. It is now read-only.
dep ensure fails on subpackage with a revision constraint #705
Closed
Description
What version of Go are you using (go version)/operating system and processor architecture?
$ go version
go version go1.8.3 linux/amd64
What did you do?
I've been using Glide, and I'm trying to migrate to dep. I don't want to upgrade my dependencies in the project, so I'm using [[constraint]]
to fix them at the revision specified in my glide.lock
file.
cd `mktemp -d`
export GOPATH=$PWD
mkdir -p src/github.com/ellotheth/deptest
cd src/github.com/ellotheth/deptest
cat <<EOD > main.go
package main
import (
"fmt"
"github.com/mikespook/gearman-go/worker"
)
func main() {
w := worker.New(worker.OneByOne)
fmt.Println(w)
}
EOD
cat <<EOD > Gopkg.toml
[[constraint]]
name = "github.com/mikespook/gearman-go"
revision = "b79fee29655dcdce7ba4a738f8388f9862b6779e"
EOD
dep ensure -v
What did you expect to see?
A successful dependency graph for the revision I requested.
What did you see instead?
Root project is "github.com/ellotheth/deptest"
1 transitively valid internal packages
1 external packages imported from 1 projects
(0) ✓ select (root)
(1) ? attempt github.com/mikespook/gearman-go with 1 pkgs; 9 versions to try
(1) try github.com/mikespook/gearman-go@b79fee29655dcdce7ba4a738f8388f9862b6779e
(2) ✗ github.com/mikespook/gearman-go at b79fee29655dcdce7ba4a738f8388f9862b6779e has problem subpkg(s):
(2) github.com/mikespook/gearman-go/worker has err (*pkgtree.LocalImportsError); required by (root).
(1) try github.com/mikespook/gearman-go@0.1.3
(2) ✗ github.com/mikespook/gearman-go@0.1.3 not allowed by constraint b79fee29655dcdce7ba4a738f8388f9862b6779e:
(2) b79fee29655dcdce7ba4a738f8388f9862b6779e from (root)
(1) try github.com/mikespook/gearman-go@0.1.2
(2) ✗ github.com/mikespook/gearman-go@0.1.2 not allowed by constraint b79fee29655dcdce7ba4a738f8388f9862b6779e:
(2) b79fee29655dcdce7ba4a738f8388f9862b6779e from (root)
(1) try github.com/mikespook/gearman-go@0.1.1
(2) ✗ github.com/mikespook/gearman-go@0.1.1 not allowed by constraint b79fee29655dcdce7ba4a738f8388f9862b6779e:
(2) b79fee29655dcdce7ba4a738f8388f9862b6779e from (root)
(1) try github.com/mikespook/gearman-go@0.1
(2) ✗ github.com/mikespook/gearman-go@0.1 not allowed by constraint b79fee29655dcdce7ba4a738f8388f9862b6779e:
(2) b79fee29655dcdce7ba4a738f8388f9862b6779e from (root)
(1) try github.com/mikespook/gearman-go@0.0.1
(2) ✗ github.com/mikespook/gearman-go@0.0.1 not allowed by constraint b79fee29655dcdce7ba4a738f8388f9862b6779e:
(2) b79fee29655dcdce7ba4a738f8388f9862b6779e from (root)
(1) try github.com/mikespook/gearman-go@master
(2) ✗ github.com/mikespook/gearman-go@master not allowed by constraint b79fee29655dcdce7ba4a738f8388f9862b6779e:
(2) b79fee29655dcdce7ba4a738f8388f9862b6779e from (root)
(1) try github.com/mikespook/gearman-go@0.1-testing
(2) ✗ github.com/mikespook/gearman-go@0.1-testing not allowed by constraint b79fee29655dcdce7ba4a738f8388f9862b6779e:
(2) b79fee29655dcdce7ba4a738f8388f9862b6779e from (root)
(1) try github.com/mikespook/gearman-go@0.2-dev
(2) ✗ github.com/mikespook/gearman-go@0.2-dev not allowed by constraint b79fee29655dcdce7ba4a738f8388f9862b6779e:
(2) b79fee29655dcdce7ba4a738f8388f9862b6779e from (root)
(1) ← no more versions of github.com/mikespook/gearman-go to try; begin backtrack
✗ solving failed
Solver wall times by segment:
b-source-exists: 2.541066715s
b-list-pkgs: 38.964791ms
satisfy: 131.412µs
select-root: 100.39µs
new-atom: 90.703µs
b-pair-rev: 38.656µs
b-list-versions: 27.778µs
b-matches: 9.972µs
other: 1.576µs
TOTAL: 2.580431993s
ensure Solve(): No versions of github.com/mikespook/gearman-go met constraints:
b79fee29655dcdce7ba4a738f8388f9862b6779e: Could not introduce github.com/mikespook/gearman-go@b79fee29655dcdce7ba4a738f8388f9862b6779e, as its subpackage github.com/mikespook/gearman-go/worker does not contain usable Go code (*pkgtree.LocalImportsError).. (Package is required by (root).)
0.1.3: Could not introduce github.com/mikespook/gearman-go@0.1.3, as it is not allowed by constraint b79fee29655dcdce7ba4a738f8388f9862b6779e from project github.com/ellotheth/deptest.
0.1.2: Could not introduce github.com/mikespook/gearman-go@0.1.2, as it is not allowed by constraint b79fee29655dcdce7ba4a738f8388f9862b6779e from project github.com/ellotheth/deptest.
0.1.1: Could not introduce github.com/mikespook/gearman-go@0.1.1, as it is not allowed by constraint b79fee29655dcdce7ba4a738f8388f9862b6779e from project github.com/ellotheth/deptest.
0.1: Could not introduce github.com/mikespook/gearman-go@0.1, as it is not allowed by constraint b79fee29655dcdce7ba4a738f8388f9862b6779e from project github.com/ellotheth/deptest.
0.0.1: Could not introduce github.com/mikespook/gearman-go@0.0.1, as it is not allowed by constraint b79fee29655dcdce7ba4a738f8388f9862b6779e from project github.com/ellotheth/deptest.
master: Could not introduce github.com/mikespook/gearman-go@master, as it is not allowed by constraint b79fee29655dcdce7ba4a738f8388f9862b6779e from project github.com/ellotheth/deptest.
0.1-testing: Could not introduce github.com/mikespook/gearman-go@0.1-testing, as it is not allowed by constraint b79fee29655dcdce7ba4a738f8388f9862b6779e from project github.com/ellotheth/deptest.
0.2-dev: Could not introduce github.com/mikespook/gearman-go@0.2-dev, as it is not allowed by constraint b79fee29655dcdce7ba4a738f8388f9862b6779e from project github.com/ellotheth/deptest.
Notes
If I use github.com/mikespook/gearman-go/worker
as the constrained package, I get the correct revision for that subpackage, but a different revision for the parent:
cat <<EOD > Gopkg.toml
[[constraint]]
name = "github.com/mikespook/gearman-go/worker"
revision = "b79fee29655dcdce7ba4a738f8388f9862b6779e"
EOD
dep ensure -v
produces
Root project is "github.com/ellotheth/deptest"
1 transitively valid internal packages
1 external packages imported from 1 projects
(0) ✓ select (root)
(1) ? attempt github.com/mikespook/gearman-go/worker with 1 pkgs; 9 versions to try
(1) try github.com/mikespook/gearman-go/worker@b79fee29655dcdce7ba4a738f8388f9862b6779e
(1) ✓ select github.com/mikespook/gearman-go/worker@b79fee29655dcdce7ba4a738f8388f9862b6779e w/1 pkgs
(2) ? attempt github.com/mikespook/gearman-go with 1 pkgs; 8 versions to try
(2) try github.com/mikespook/gearman-go@0.1.3
(2) ✓ select github.com/mikespook/gearman-go@0.1.3 w/2 pkgs
(3) ? attempt github.com/mikespook/golib with 1 pkgs; 1 versions to try
(3) try github.com/mikespook/golib@master
(3) ✓ select github.com/mikespook/golib@master w/1 pkgs
✓ found solution with 4 packages from 3 projects
with the following lock file:
# This file is autogenerated, do not edit; changes may be undone by the next 'dep ensure'.
[[projects]]
name = "github.com/mikespook/gearman-go"
packages = ["client","common"]
revision = "d6c6bfe9f011021c28ca173d8a4f82faf3607cdf"
version = "0.1.3"
[[projects]]
name = "github.com/mikespook/gearman-go/worker"
packages = ["."]
revision = "b79fee29655dcdce7ba4a738f8388f9862b6779e"
[[projects]]
branch = "master"
name = "github.com/mikespook/golib"
packages = ["autoinc"]
revision = "38fe6917d34b267a79c3432369e7dcc379e2d5b3"
[solve-meta]
analyzer-name = "dep"
analyzer-version = 1
inputs-digest = "5198c4ccc70d8f6df11ed15e0596e90e43d11a4993949265b82866fd3de4032c"
solver-name = "gps-cdcl"
solver-version = 1