Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Decide on directory structure #4

Closed
tigrannajaryan opened this issue Nov 3, 2021 · 4 comments
Closed

Decide on directory structure #4

tigrannajaryan opened this issue Nov 3, 2021 · 4 comments

Comments

@tigrannajaryan
Copy link
Member

tigrannajaryan commented Nov 3, 2021

Here is a possible directory structure:

  • client - for client-side OpAMP implementation, package importable by agents that want to adopt OpAMP.
  • server - for server-side OpAMP implementation, package important by vendors who want to implement OpAMP servers.
  • internal - shared internal code for client and server (e.g. protobufs).
  • examples - examples that use client and server packages.

Questions:

  1. Do we put client and server under pkg or top-level is fine?
  2. Does everything use one top-level go.mod or client and server use their own go.mod (typically you only use one in a particular executable, both are only necessary if you building a proxy of some sort).
  3. I think we also want a prototype implementation of the Supervisor in this repo. Where do we put it? Does it go into the examples or somewhere in cmd/supervisor?
@tigrannajaryan
Copy link
Member Author

@open-telemetry/opamp-go-approvers @open-telemetry/opamp-go-maintainers please comment.

@djaglowski
Copy link
Member

I think the proposed structure is a good starting point.

  1. We can align with the collector repo by omitting the pkg directory.
  2. Keep it simple until a clear need for multiple modules is articulated?
  3. cmd/supervisor seems right to me.

@Aneurysm9
Copy link
Member

Mostly agree with what Dan said. I think we'll want to keep an eye on package sizes and whether including both client and server bloats one or the other excessively as a signal that splitting into multiple modules may be necessary.

@tigrannajaryan
Copy link
Member Author

I think we are good with this for now. Closing.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants