I am starting a new project (say `hello`) and I am totally confused about what package structure to use.
I am going to go with a monolithic source repository which would be checked out under `~/src` directory in the developer machines. I have three golang binaries available in my project. 1) hello-cli : A tool that would give me a CLI, which will be used from my client machines. Say something similar to the docker-cli 2) hello-daemon: A daemon to which the CLI tools will talk to. Say something similar to docker-daemon 3) hello-api-server: A HTTP server to which the daemon will talk. Say something similar to dockerhub API server. In addition to these three golang binaries, I may have other things like a webui, some static assets, some integration tests etc. in multiple languages. There will be some libraries that will be used by each of the golang binaries that will be internal only to the specific binaries and there will be some libraries, which will be shared across the three binaries. The three binaries may depend on different versions of the libraries. Now the package structure that I thought was: [image: Screenshot 2020-02-29 at 11.28.45 PM.png] Will this be good or should I make any change ? I am not sure if vendoring would work fine here as there would be no `github.com/` etc. prefix (or even GOPATH) as I want to checkout under a special path (`~/src`). I have attached the hello.zip file also. Does this package structure work ? Or should I do something different ? Thanks. -- 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/95932aba-93b5-48c3-836b-dfdcac373ebb%40googlegroups.com.
<<attachment: hello.zip>>