1 go.{mod|sum} per repository, no vendoring

tree/
 angular-ui/
 cmd/
   hello-api-server/
   hello-cli/
   hello-daemon/
 internal/
   internal-lib1/
   internal-lib2/
 library1/
 library2/
 library3/
 python-tests/
 go.mod
 go.sum




On Saturday, 29 February 2020 19:03:34 UTC+1, Sankar wrote:
>
> 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/` 
> <http://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/c482c046-8584-4143-8994-e14bb2ae7f03%40googlegroups.com.

Reply via email to