Open cosmos72 opened 4 years ago
Currently it's not possible.
My first impression is that it would require two changes:
import "some/package@v1.2"
except that @
should be replaced with a character that cannot be part of a package name - anyone knows any such character?go build
- it should be enough to put it in the file go.mod
of the plugin created on-the-fly and compiled to load the package.this would be a very appreciated addition. A space character would not work?
Directory names can contain spaces. Actually, at least on Linux, directory names can contain any character except ASCII 47 (i.e. forward slash '/') and ASCII 0.
Thus import "some/package\000v1.2"
could technically work on Linux, and probably also on most Unix-like systems.
It's also really ugly.
I prefer that gophernotes recognize go.mod file placed in same location of notebook file.
Has there been any thought on this? @cosmos72
The implementation is relatively straightforward: it's just a matter of propagating the requested version through some functions, and write it in the go.mod
file of the plugin that will be compiled.
About the syntax: official command line tools go get
and go install
now accept the syntax example.com/my/package@latest
and example.com/my/package@vxx.yy.zz
so the syntax
import "some/package@v1.2"
is now acceptable, as that's exactly what these tools use too.
Any package whose path contains '@' will now break the official tools go get
and go install
so there will be a strong pressure to rename it and remove the '@'.
In summary: it's now just a matter of implementing it. Don't expect me to have time in the next few weeks, though...
@mattn wrote in #184