I am trying to convert https://github.com/appscode/voyager from glide to go mod.
I am getting an error like below:
go: github.com/Sirupsen/[email protected]: parsing go.mod: unexpected module path "github.com/sirupsen/logrus"
go: error loading module requirements
How do I find out the source of this old Sirupsen module?
How do I find out the source of this old Sirupsen module?
Use the Go 1.13 beta (go get golang.org/dl/go1.13beta1 && go1.13beta1 download
) or even better, try the latest Go on tip / master (go get golang.org/dl/gotip && gotip download
).
Go 1.13 has improved error messages in general. It should help in your case, including most likely showing the import chain leading up to the error.
For example:
$ gotip build .
go: example.com/temp/mod imports
github.com/docker/libcompose/docker imports
github.com/Sirupsen/logrus: github.com/Sirupsen/[email protected]: parsing go.mod:
module declares its path as: github.com/Sirupsen/logrus
but was required as: github.com/sirupsen/logrus
In that example, you can see that docker/libcompose/docker
is importing the old and now incorrect uppercase version of Sirupsen/logrus
.
The most common reason people see a Sirupsen/logrus
vs. sirupsen/logrus
case mismatch is when importing github.com/docker/docker
or one of the other docker repos. Importing docker repos is a bit confusing with modules, including because:
docker/docker
repo does not follow semver.v1.13.1
semver tag on the docker/docker
repo.
go
command if you don't ask for a more specific version. docker/docker
version imports the old and not incorrect uppercase Sirupsen/logrus
, which can then trigger the error reported in the question above.docker/docker
vs. docker/engine
repositories, and about what import paths to use.go.mod
files.For the docker/docker
repo, the import path remains github.com/docker/docker
, but it needs to come from github.com/docker/engine
, so the recommended approach is often for a docker importer to do import "github.com/docker/docker"
and edit their go.mod
to something like this:
require (
github.com/docker/docker v1.13.1
)
replace github.com/docker/docker => github.com/docker/engine <tag-or-commit-hash>
Docker issue #39302 tracks trying to document how to import docker repos when using modules.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With