On Sat, Apr 10, 2021 at 3:38 AM 'gonutz' via golang-nuts < golang-nuts@googlegroups.com> wrote:
> Justin Isreael said > > "Changes to ProjectB should be immediately available when compiling > ProjectA." > > which is not true when you simply insert a replace in your go.mod file. > > My current problem is that I have a main module that uses a library > module. I want to debug an issue so I insert a print statement in my main > module. That works. But now I want to insert a print statement in the > library. How do I do that? > > A replace in the go.mod file is of no help here because I still have to > specify a require with a concrete version or commit hash for the library. > This means I cannot just change the code in the library module, I also have > to create a commit and check it in, then go back to my main module and > udpate not only the replace but also the require in go.mod, every time I > want to simply place a simple, temporary print statement for debugging > purposes into the library. > Yes I omitted the fact that the "replace" directive implies that there was already a "require" directive that needs replacing. But I still maintain that my original suggestion works. I don't see any requirement that your library be committed or pushed anywhere, or have a real github hosting, for the case of pure local development between a number of separate modules. Here is a structure of two module projects, neither of which have any git configuration: . ├── projectA │ ├── go.mod │ └── main.go └── projectB ├── go.mod └── lib.go // projectB/lib.gopackage projectB import "fmt" func Foo() { fmt.Println("ProjectB") } // projectB/go.mod module mydomain.com/projects/projectB // projectA/main.gopackage main import "mydomain.com/projects/projectB" func main() { projectB.Foo() } // projectA/go.mod module mydomain.com/projects/projectA require mydomain.com/projects/projectB v0.0.0 replace mydomain.com/projects/projectB => /tmp/gotesting/projectB So I didn't have to commit and push my code anywhere and could just use an arbitrary version for the "require", and then replace. Now I can do local development across modules. I guess I am missing the pain point here. > Does anybody have an easy workflow for the common use case? > > -- > You received this message because you are subscribed to a topic in the > Google Groups "golang-nuts" group. > To unsubscribe from this topic, visit > https://groups.google.com/d/topic/golang-nuts/_BqV6Rk15UA/unsubscribe. > To unsubscribe from this group and all its topics, 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/421ae2eb-fd97-46b4-ab83-979c5e63cf88n%40googlegroups.com > <https://groups.google.com/d/msgid/golang-nuts/421ae2eb-fd97-46b4-ab83-979c5e63cf88n%40googlegroups.com?utm_medium=email&utm_source=footer> > . > -- 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/CAPGFgA1smZ1yAiBLdzYag5cN4_8rL0A3HjTBRwFgJhq_6_UsJg%40mail.gmail.com.