tools / godep

dependency tool for go
http://godoc.org/github.com/tools/godep
BSD 3-Clause "New" or "Revised" License
5.54k stars 454 forks source link

'godep update' error: invalid character ':' after array element #372

Closed ahmetb closed 8 years ago

ahmetb commented 8 years ago

I think docs for godep update command is wrong. I'm getting a quite unfriendly error message.

$ pwd
/Users/alp/workspace/gopath-swarm/src/github.com/docker/swarm

$ export GOPATH=/Users/alp/workspace/gopath-swarm

$ go get -u github.com/samalba/dockerclient

$ godep update github.com/samalba/dockerclient
godep: invalid character ':' after array element

$ godep update ./...
godep: invalid character ':' after array element
$ env | grep PATH
PATH=/usr/local/opt/coreutils/libexec/gnubin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
GOPATH=/Users/alp/workspace/gopath-swarm

Update: godep save gives the same error.

freeformz commented 8 years ago

I can't duplicate this locally:

$ mkdir ~/go2
$ export GOPATH=~/go2
$  go get -d github.com/docker/swarm
package github.com/docker/docker/pkg/parsers/filters: cannot find package "github.com/docker/docker/pkg/parsers/filters" in any of:
    /usr/local/go/src/github.com/docker/docker/pkg/parsers/filters (from $GOROOT)
    /Users/emuller/go2/src/github.com/docker/docker/pkg/parsers/filters (from $GOPATH)
package github.com/docker/docker/pkg/units: cannot find package "github.com/docker/docker/pkg/units" in any of:
    /usr/local/go/src/github.com/docker/docker/pkg/units (from $GOROOT)
    /Users/emuller/go2/src/github.com/docker/docker/pkg/units (from $GOPATH)
$ cd ~/go2/src/github.com/docker/swarm
$ godep restore -v
godep: Downloading dependency (if needed): github.com/Sirupsen/logrus
godep: Downloading dependency (if needed): github.com/codegangsta/cli
godep: Downloading dependency (if needed): github.com/coreos/etcd/client
godep: Downloading dependency (if needed): github.com/coreos/etcd/pkg/pathutil
godep: Downloading dependency (if needed): github.com/coreos/etcd/pkg/types
godep: Downloading dependency (if needed): github.com/docker/docker/pkg/ioutils
godep: Downloading dependency (if needed): github.com/docker/docker/pkg/tlsconfig
godep: Downloading dependency (if needed): github.com/docker/docker/pkg/random
godep: Downloading dependency (if needed): github.com/docker/docker/pkg/parsers
godep: Downloading dependency (if needed): github.com/docker/docker/pkg/stringid
godep: Downloading dependency (if needed): github.com/docker/docker/pkg/units
godep: Downloading dependency (if needed): github.com/docker/docker/pkg/version
godep: Downloading dependency (if needed): github.com/docker/libkv
godep: Downloading dependency (if needed): github.com/gogo/protobuf/proto
godep: Downloading dependency (if needed): github.com/golang/glog
godep: Downloading dependency (if needed): github.com/gorilla/context
godep: Downloading dependency (if needed): github.com/gorilla/mux
godep: Downloading dependency (if needed): github.com/hashicorp/consul/api
godep: Downloading dependency (if needed): github.com/mesos/mesos-go/auth
godep: Downloading dependency (if needed): github.com/mesos/mesos-go/detector
godep: Downloading dependency (if needed): github.com/mesos/mesos-go/mesosproto
godep: Downloading dependency (if needed): github.com/mesos/mesos-go/mesosutil
godep: Downloading dependency (if needed): github.com/mesos/mesos-go/messenger
godep: Downloading dependency (if needed): github.com/mesos/mesos-go/scheduler
godep: Downloading dependency (if needed): github.com/mesos/mesos-go/upid
godep: Downloading dependency (if needed): github.com/pborman/uuid
godep: Downloading dependency (if needed): github.com/samalba/dockerclient
godep: Downloading dependency (if needed): github.com/samuel/go-zookeeper/zk
godep: Downloading dependency (if needed): github.com/skarademir/naturalsort
godep: Downloading dependency (if needed): github.com/stretchr/objx
godep: Downloading dependency (if needed): github.com/stretchr/testify/assert
godep: Downloading dependency (if needed): github.com/stretchr/testify/mock
godep: Downloading dependency (if needed): github.com/ugorji/go/codec
godep: Downloading dependency (if needed): golang.org/x/net/context
godep: Restoring dependency (if needed): github.com/Sirupsen/logrus
godep: Restoring dependency (if needed): github.com/codegangsta/cli
godep: Restoring dependency (if needed): github.com/coreos/etcd/client
godep: Restoring dependency (if needed): github.com/coreos/etcd/pkg/pathutil
godep: Skipping already restored repo
godep: Restoring dependency (if needed): github.com/coreos/etcd/pkg/types
godep: Skipping already restored repo
godep: Restoring dependency (if needed): github.com/docker/docker/pkg/ioutils
godep: Restoring dependency (if needed): github.com/docker/docker/pkg/tlsconfig
godep: Skipping already restored repo
godep: Restoring dependency (if needed): github.com/docker/docker/pkg/random
godep: Skipping already restored repo
godep: Restoring dependency (if needed): github.com/docker/docker/pkg/parsers
godep: Skipping already restored repo
godep: Restoring dependency (if needed): github.com/docker/docker/pkg/stringid
godep: Skipping already restored repo
godep: Restoring dependency (if needed): github.com/docker/docker/pkg/units
godep: Skipping already restored repo
godep: Restoring dependency (if needed): github.com/docker/docker/pkg/version
godep: Skipping already restored repo
godep: Restoring dependency (if needed): github.com/docker/libkv
godep: Restoring dependency (if needed): github.com/gogo/protobuf/proto
godep: Restoring dependency (if needed): github.com/golang/glog
godep: Restoring dependency (if needed): github.com/gorilla/context
godep: Restoring dependency (if needed): github.com/gorilla/mux
godep: Restoring dependency (if needed): github.com/hashicorp/consul/api
godep: Restoring dependency (if needed): github.com/mesos/mesos-go/auth
godep: Restoring dependency (if needed): github.com/mesos/mesos-go/detector
godep: Skipping already restored repo
godep: Restoring dependency (if needed): github.com/mesos/mesos-go/mesosproto
godep: Skipping already restored repo
godep: Restoring dependency (if needed): github.com/mesos/mesos-go/mesosutil
godep: Skipping already restored repo
godep: Restoring dependency (if needed): github.com/mesos/mesos-go/messenger
godep: Skipping already restored repo
godep: Restoring dependency (if needed): github.com/mesos/mesos-go/scheduler
godep: Skipping already restored repo
godep: Restoring dependency (if needed): github.com/mesos/mesos-go/upid
godep: Skipping already restored repo
godep: Restoring dependency (if needed): github.com/pborman/uuid
godep: Restoring dependency (if needed): github.com/samalba/dockerclient
godep: Restoring dependency (if needed): github.com/samuel/go-zookeeper/zk
godep: Restoring dependency (if needed): github.com/skarademir/naturalsort
godep: Restoring dependency (if needed): github.com/stretchr/objx
godep: Restoring dependency (if needed): github.com/stretchr/testify/assert
godep: Restoring dependency (if needed): github.com/stretchr/testify/mock
godep: Skipping already restored repo
godep: Restoring dependency (if needed): github.com/ugorji/go/codec
godep: Restoring dependency (if needed): golang.org/x/net/context
godep: Checking dependency: github.com/Sirupsen/logrus
godep: Checking dependency: github.com/codegangsta/cli
godep: Checking dependency: github.com/coreos/etcd/client
godep: Checking dependency: github.com/coreos/etcd/pkg/pathutil
godep: Checking dependency: github.com/coreos/etcd/pkg/types
godep: Checking dependency: github.com/docker/docker/pkg/ioutils
godep: Checking dependency: github.com/docker/docker/pkg/tlsconfig
godep: Checking dependency: github.com/docker/docker/pkg/random
godep: Checking dependency: github.com/docker/docker/pkg/parsers
godep: Checking dependency: github.com/docker/docker/pkg/stringid
godep: Checking dependency: github.com/docker/docker/pkg/units
godep: Checking dependency: github.com/docker/docker/pkg/version
godep: Checking dependency: github.com/docker/libkv
godep: Checking dependency: github.com/gogo/protobuf/proto
godep: Checking dependency: github.com/golang/glog
godep: Checking dependency: github.com/gorilla/context
godep: Checking dependency: github.com/gorilla/mux
godep: Checking dependency: github.com/hashicorp/consul/api
godep: Checking dependency: github.com/mesos/mesos-go/auth
godep: Checking dependency: github.com/mesos/mesos-go/detector
godep: Checking dependency: github.com/mesos/mesos-go/mesosproto
godep: Checking dependency: github.com/mesos/mesos-go/mesosutil
godep: Checking dependency: github.com/mesos/mesos-go/messenger
godep: Checking dependency: github.com/mesos/mesos-go/scheduler
godep: Checking dependency: github.com/mesos/mesos-go/upid
godep: Checking dependency: github.com/pborman/uuid
godep: Checking dependency: github.com/samalba/dockerclient
godep: Checking dependency: github.com/samuel/go-zookeeper/zk
godep: Checking dependency: github.com/skarademir/naturalsort
godep: Checking dependency: github.com/stretchr/objx
godep: Checking dependency: github.com/stretchr/testify/assert
godep: Checking dependency: github.com/stretchr/testify/mock
godep: Checking dependency: github.com/ugorji/go/codec
godep: Checking dependency: golang.org/x/net/context
$ go get -u github.com/samalba/dockerclient
$ godep update github.com/samalba/dockerclient

What is the output of echo $GOPATH ?

ahmetb commented 8 years ago

@freeformz interesting, it's already in my first message.

freeformz commented 8 years ago

@ahmetalpbalkan So it is. (one of these days I'll learn to read)

freeformz commented 8 years ago

@ahmetalpbalkan I suspect there is a go file an error in it somewhere in one of the packages. The error could be more helpful here.

freeformz commented 8 years ago

Actually, it's the local Godeps.json file that may be invalid?

ahmetb commented 8 years ago

I doubt it . I guess it's something wrong with my setup. Nobody has ever hit this before and it's not a big problem for me either, we can close if you like.

freeformz commented 8 years ago

I was able to duplicate this locally by doing ...

$ git diff
diff --git a/Godeps/Godeps.json b/Godeps/Godeps.json
index bfa2851..d5a01f2 100644
--- a/Godeps/Godeps.json
+++ b/Godeps/Godeps.json
@@ -9,7 +9,7 @@
                        "ImportPath": "github.com/Sirupsen/logrus",
                        "Comment": "v0.6.4-6-g539d4dc",
                        "Rev": "539d4dc034c079a7188b5d4ca9650632d73c66e8"
-               },
+               }:
                {
                        "ImportPath": "github.com/codegangsta/cli",
                        "Comment": "1.2.0-62-gbf4a526",

With my patch, linked above I get the following output:

$ godep update github.com/samalba/dockerclient
godep: Unable to parse Godeps/Godeps.json: invalid character ':' after array element

(Note: it's a better error message because of #380.)

ahmetb commented 8 years ago

wow, that's what happens when I edit Godeps manually with vim. Such a /facepalm.

Sorry for the trouble.

freeformz commented 8 years ago

@ahmetalpbalkan No worries. The old error message gave you nothing to go on. I'll merge #380 soon and that should help people out.