Skip to content
This repository has been archived by the owner on Dec 7, 2020. It is now read-only.

Potential import collision: import path should be "go.etcd.io/bbolt", not "github.com/etcd-io/bbolt" #678

Open
KateGo520 opened this issue Aug 9, 2020 · 1 comment
Labels

Comments

@KateGo520
Copy link

Background

I find that go.etcd.io/bbolt and github.com/etcd-io/bbolt coexist in this repo:
https://github.com/louketo/louketo-proxy/blob/master/go.mod (Line 12 & 27)

github.com/etcd-io/bbolt v1.3.3
go.etcd.io/bbolt v1.3.3 // indirect

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.

https://github.com/etcd-io/bbolt/blob/v1.3.3/cursor_test.go#L14

package bbolt_test
import (
	bolt "go.etcd.io/bbolt"
	…
) 

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:

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"
…

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

@KateGo520
Copy link
Author

@abstractj @noseka1 Could you help me review this issue? Thx :p

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Projects
None yet
Development

No branches or pull requests

2 participants