On Wed, Oct 12, 2022 at 4:49 AM Steve Roth <st...@rothskeller.net> wrote: > > I'd appreciate help with setting up a workspace, involving two modules that exist only on my local disk and not in any SCM. I understand how to create the workspace and use both modules in it. What I can't figure out is how to add a dependency from mod1 to mod2 in mod1's go.mod file. > > The supported means of adding dependencies in go.mod files is the go get command. But if I go into mod1's directory and run "go get path/to/mod2", it tries to download it from github and fails. I cannot figure out how to tell go get to use the version that's on my local disk, even though the workspace says it should. > > Similarly, I can't figure out how to add the necessary go.mod and go.sum entries manually. The documentation explicitly warns against trying to do so, anyway. > > It seems like this is exactly the case workspaces were designed for, developing two modules at once, and yet I've had no success in getting it set up. Any suggestions?
For example: jnml@3900x:~/tmp/modules/bar$ rm -rf * jnml@3900x:~/tmp/modules/bar$ go mod init example.com/bar go: creating new go.mod: module example.com/bar jnml@3900x:~/tmp/modules/bar$ echo 'package bar; func Y() {}' > bar.go jnml@3900x:~/tmp/modules/bar$ and jnml@3900x:~/tmp/modules/foo$ rm -rf * jnml@3900x:~/tmp/modules/foo$ go mod init example.com/foo go: creating new go.mod: module example.com/foo jnml@3900x:~/tmp/modules/foo$ echo 'package foo; import "example.com/bar"; func X() { bar.Y() }' > foo.go jnml@3900x:~/tmp/modules/foo$ go build -v foo.go:1:21: no required module provides package example.com/bar; to add it: go get example.com/bar jnml@3900x:~/tmp/modules/foo$ go work init jnml@3900x:~/tmp/modules/foo$ go work use ../bar jnml@3900x:~/tmp/modules/foo$ go build -v directory . is contained in a module that is not one of the workspace modules listed in go.work. You can add the module to the workspace using go work use . jnml@3900x:~/tmp/modules/foo$ go work use . jnml@3900x:~/tmp/modules/foo$ go build -v jnml@3900x:~/tmp/modules/foo$ HTH -j -- 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. To view this discussion on the web visit https://groups.google.com/d/msgid/golang-nuts/CAA40n-UP8jVVE81AskP9GKFSd63Gkv7cT2jqDBAkZZ0v-2ENPg%40mail.gmail.com.