etcd: `go get github.com/cores/etcd/client` fails on generated code

As of the current commit (a8f9de2abf824db8a3aa7358227653ca00d9f755), I’m unable to cleanly go get github.com/coreos/etcd/client for use as a library. The build fails when looking at keys.generated.go.

Running go generate resolves compilation, though go test github.com/coreos/etcd/client still fails.

kmitchell @ kmitchell-laptop ~
└─ 0 $ ▶ go get github.com/coreos/etcd/client
# github.com/coreos/etcd/client
go3/src/github.com/coreos/etcd/client/keys.generated.go:72:6: r.EncodeArrayStart undefined (type codec.encDriver has no field or method EncodeArrayStart)
go3/src/github.com/coreos/etcd/client/keys.generated.go:80:6: r.EncodeMapStart undefined (type codec.encDriver has no field or method EncodeMapStart)
go3/src/github.com/coreos/etcd/client/keys.generated.go:83:6: z.EncSendContainerState undefined (type codec.genHelperEncoder has no field or method EncSendContainerState)
go3/src/github.com/coreos/etcd/client/keys.generated.go:91:6: z.EncSendContainerState undefined (type codec.genHelperEncoder has no field or method EncSendContainerState)
go3/src/github.com/coreos/etcd/client/keys.generated.go:93:6: z.EncSendContainerState undefined (type codec.genHelperEncoder has no field or method EncSendContainerState)
go3/src/github.com/coreos/etcd/client/keys.generated.go:102:6: z.EncSendContainerState undefined (type codec.genHelperEncoder has no field or method EncSendContainerState)
go3/src/github.com/coreos/etcd/client/keys.generated.go:109:6: z.EncSendContainerState undefined (type codec.genHelperEncoder has no field or method EncSendContainerState)
go3/src/github.com/coreos/etcd/client/keys.generated.go:111:6: z.EncSendContainerState undefined (type codec.genHelperEncoder has no field or method EncSendContainerState)
go3/src/github.com/coreos/etcd/client/keys.generated.go:119:6: z.EncSendContainerState undefined (type codec.genHelperEncoder has no field or method EncSendContainerState)
go3/src/github.com/coreos/etcd/client/keys.generated.go:126:6: z.EncSendContainerState undefined (type codec.genHelperEncoder has no field or method EncSendContainerState)
go3/src/github.com/coreos/etcd/client/keys.generated.go:126:6: too many errors

Workarounds I’ve used:

  • Vendoring an older version of etcd/client and codecgen packages works around the issue.
  • clientv3 builds and passes tests.
  • Cloning the etcd repo separately, then using glide to pull in the repo’s dependencies, results in a successful build & test of github.com/coreos/etcd/client. This isn’t viable on its own for use as a library in other projects, but merging the etcd glide files with the project’s glide file could work to get a functional build.

About this issue

  • Original URL
  • State: closed
  • Created 7 years ago
  • Reactions: 1
  • Comments: 34 (15 by maintainers)

Commits related to this issue

Most upvoted comments

just remove keys.generated.go fix the problem. keys.generated.go will be generated automatically