Hi all,

See some related discussion here regarding dots in import paths and modules:

   https://github.com/golang/go/issues/27503

including this comment from bcmills:

  "Dotless paths in general are reserved for the standard library; go get 
has (to my knowledge) never worked with them, but go get is also the main 
entry point for working with versioned modules."

Best,
thepudds

On Friday, October 19, 2018 at 7:59:58 PM UTC-4, Paul Jolly wrote:
>
> Actually, now that I think about it, this restriction was relaxed. So 
> the dot in the first part of the path is not a requirement. 
>
> It appears however that go mod edit has partially regressed in this 
> respect. 
>
> Please can you raise an issue? That way we can have the behaviour 
> confirmed one way or the other. 
>
> Thanks 
> On Sat, 20 Oct 2018 at 00:44, Mark Volkmann <r.mark....@gmail.com 
> <javascript:>> wrote: 
> > 
> > I see though that "go mode edit" really wants there to be a dot in the 
> first part of the import path. 
> > Where can I read about that requirement? 
> > 
> > On Fri, Oct 19, 2018 at 6:30 PM Mark Volkmann <r.mark....@gmail.com 
> <javascript:>> wrote: 
> >> 
> >> Thank you so much! I actually got it to work without having a dot in 
> the first part of the import path. 
> >> It seems the only thing I was missing was this line in mod.go for the 
> demo code: 
> >> require foo/bar v0.0.0 
> >> I just had the replace directive line without a corresponding require 
> directive. 
> >> 
> >> On Fri, Oct 19, 2018 at 6:13 PM Paul Jolly <pa...@myitcv.io 
> <javascript:>> wrote: 
> >>> 
> >>> Hi Mark, 
> >>> 
> >>> When importing a module package, the first element in the path must 
> >>> contain a ".". Hence "foo" is invalid. Here is a working example: 
> >>> 
> >>> $ cd $HOME 
> >>> $ mkdir bar 
> >>> $ cd bar 
> >>> $ go mod init example.com/bar 
> >>> go: creating new go.mod: module example.com/bar 
> >>> $ cat <<EOD >bar.go 
> >>> package bar 
> >>> import "fmt" 
> >>> func Hello() { 
> >>>         fmt.Println("Hello from bar!") 
> >>> } 
> >>> EOD 
> >>> $ cd $HOME 
> >>> $ mkdir foo 
> >>> $ cd foo 
> >>> $ go mod init example.com/foo 
> >>> go: creating new go.mod: module example.com/foo 
> >>> $ cat <<EOD >main.go 
> >>> package main 
> >>> 
> >>> import "example.com/bar" 
> >>> 
> >>> func main() { 
> >>>         bar.Hello() 
> >>> } 
> >>> EOD 
> >>> $ go mod edit -require=example.com/bar@v0.0.0 -replace=
> example.com/bar=$HOME/bar 
> >>> $ cat go.mod 
> >>> module example.com/foo 
> >>> 
> >>> require example.com/bar v0.0.0 
> >>> 
> >>> replace example.com/bar => /root/bar 
> >>> $ go run . 
> >>> Hello from bar! 
> >>> On Fri, 19 Oct 2018 at 21:42, Mark Volkmann <r.mark....@gmail.com 
> <javascript:>> wrote: 
> >>> > 
> >>> > I have a simple demo application that wants to use a package that is 
> on my local file system. 
> >>> > The code for the package is in /Users/Mark/foo/bar. 
> >>> > This directory contains the file bar.go which contains: 
> >>> > 
> >>> > package bar 
> >>> > import "fmt" 
> >>> > func Hello() { 
> >>> > fmt.Println("Hello from bar!") 
> >>> > } 
> >>> > 
> >>> > It also contains the file go.mod which just contains: 
> >>> > 
> >>> > module bar 
> >>> > 
> >>> > The demo application in another directory imports this as "foo/bar" 
> in the file main.go. 
> >>> > It has a go.mod file that contains the following: 
> >>> > 
> >>> > module demo 
> >>> > replace foo/bar => /Users/Mark/foo/bar 
> >>> > 
> >>> > When I enter "go run main.go" in the directory of the demo code I 
> get 
> >>> > build demo: cannot find module for path foo/bar 
> >>> > 
> >>> > Is there something wrong with my use of the "replace" directive? 
> >>> > 
> >>> > None of this code is under the directory pointed to by GOPATH 
> because I'm trying to use Go modules for everything in this demo. 
> >>> > 
> >>> > -- 
> >>> > R. Mark Volkmann 
> >>> > Object Computing, Inc. 
> >>> > 
> >>> > -- 
> >>> > You received this message because you are subscribed to the Google 
> Groups "golang-nuts" group. 
> >>> > To unsubscribe from this group and stop receiving emails from it, 
> send an email to golang-nuts...@googlegroups.com <javascript:>. 
> >>> > For more options, visit https://groups.google.com/d/optout. 
> >> 
> >> 
> >> 
> >> -- 
> >> R. Mark Volkmann 
> >> Object Computing, Inc. 
> > 
> > 
> > 
> > -- 
> > R. Mark Volkmann 
> > Object Computing, Inc. 
>

-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to golang-nuts+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to