That’s because the etcd-io/bbolt has already renamed it’s import path from "github.com/etcd-io/bbolt" to "go.etcd.io/bbolt". When you use the old path "github.com/etcd-io/bbolt" to import the bbolt, will reintroduces etcd-io/bbolt through the import statements "import go.etcd.io/bbolt" in the go source file of etcd-io/bbolt.
To start using Bolt, install Go and run go get:
>$ go get go.etcd.io/bbolt/...
This will retrieve the library and install the bolt command line utility into your $GOBIN path.
Importing bbolt
To use bbolt as an embedded key-value store, import as:
>import bolt "go.etcd.io/bbolt"
…
Background
I find that
go.etcd.io/bbolt
andgithub.com/etcd-io/bbolt
coexist in this repo: https://github.com/louketo/louketo-proxy/blob/master/go.mod (Line 12 & 27)That’s because the
etcd-io/bbolt
has already renamed it’s import path from "github.com/etcd-io/bbolt" to "go.etcd.io/bbolt". When you use the old path "github.com/etcd-io/bbolt" to import thebbolt
, will reintroducesetcd-io/bbolt
through the import statements "import go.etcd.io/bbolt" in the go source file ofetcd-io/bbolt
.https://github.com/etcd-io/bbolt/blob/v1.3.3/cursor_test.go#L14
The "go.etcd.io/bbolt" and "github.com/etcd-io/bbolt" are the same repos. This will work in isolation, bring about potential risks and problems.
Solution
Follow the requirements of [etcd-io/bbolt README.md]https://github.com/etcd-io/bbolt/blob/v1.3.3/README.md:
Replace all the old import paths, change
"github.com/etcd-io/bbolt"
to"go.etcd.io/bbolt "
. Where did you import it: https://github.com/louketo/louketo-proxy/search?q=github.com%2Fetcd-io%2Fbbolt&unscoped_q=github.com%2Fetcd-io%2Fbbolt