gopherdata / gophernotes

The Go kernel for Jupyter notebooks and nteract.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Import `google.golang.org/grpc` fails

ChristianKniep opened this issue · comments

When importing import "google.golang.org/grpc" I get this.

error loading plugin "/go/src/gomacro.imports/gomacro_pid_9/import_7/import_7.so": 
  plugin.Open("/go/src/gomacro.imports/gomacro_pid_9/import_7/import_7"): 
    plugin was built with a different version of package google.golang.org/grpc/metadata

The bug is confirmed - I am getting a slightly different error from import "google.golang.org/grpc",
but it still fails:

error loading plugin "/home/max/go/src/gomacro.imports/gomacro_pid_29747/import_1/import_1.so":
  plugin.Open("/home/max/go/src/gomacro.imports/gomacro_pid_29747/import_1/import_1"):
    plugin was built with a different version of package internal/goarch

Looking at the dependencies of google.golang.org/grpc, I'd say it's a dependency version conflict:

  • gophernotes uses golang.org/x/sys version v0.0.0-20211117180635-dee7805ff2e1
  • importing google.golang.org/grpc pulls golang.org/x/sys version v0.0.0-20210119212857-b64e53b001e4

Unluckily, the import mechanism is not smart enough to resolve version conflicts between packages being imported (and their dependencies) and packages imported by a previous import or statically compiled in the main program.

Commit 5514204 fixes most errors while importing packages.

Some imports still fail, mostly due to version conflicts between gophernotes dependencies and dependencies of the package being imported.
The most common version conflict I found is:

 error loading plugin "[...]/import_1.so": plugin.Open("[...]/import_1"):
   plugin was built with a different version of package golang.org/x/text/transform

which happens really often: import "google.golang.org/grpc" fails with such error,
and import "gonum.org/v1/plot" fails with the same error too.

@sbinet any chance to remove the dependency from golang.org/x/text/transform in github.com/go-zeromq/zmq4, or at least update it?