Open ocdtrekkie opened 1 month ago
My initial reasoning was just a hypothetical way to maintain one source of truth, as Jacob mentioned. However another consideration that comes to mind is that Tempest might get (or might already be) much bigger than these capnp files, and might have many more dependencies, which powerbox-http-proxy won't need. So, splitting it out could also speed up the build of powerbox-http-proxy.
So, the full backstory for @troyjfarrell's consideration:
The problem is that Tempest has .capnp.go in it's gitignore, and hence does not commit the actual generated Go files, so I cannot import them from the Tempest repository with Go's build system. I asked @lthibault about this and he did not know why they were gitignored, though I imagine it is to ensure there is a single source of truth in the repo.
We could either:
Remove the gitignore of .capnp.go, and commit the generated files. This means making a change to a capnp file will/should also make a corresponding change to the capnp.go file, assuming one builds before one commits. I think a side benefit here is the output Go code that Tempest uses is discoverable/browseable when trying to grok the codebase. But presumably then powerbox-http-proxy can import those interfaces directly from Tempest. This is my idea.
Recreate a go.sandstorm library, but base it on the output generated by Tempest's builds. Then we are letting Tempest continue to have a single source of truth and be easy to work on, but we are providing separately an easily importable copy of the capnp interfaces in Go format for other projects like powerbox-http-proxy to consume. This was @orblivion's idea.