-
Notifications
You must be signed in to change notification settings - Fork 2.5k
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
Organize the code repository to accommodate v2 #2837
Comments
@joe-elliott Did you volunteer for this in the past? Are you still interested in working on this? |
Yup, I can spend some time on this. I was thinking:
Each processor/exporter/receiver would have a go.mod allowing it to be referenced by the otelcol-builder. Then we could add makefile entries for calling the otelcol-builder like we have in jaeger-otelcol. |
For a v2 branch, if we decide to go this way, we could have something like this instead:
Each "final'' package (pkg/boundedqueue/, pkg/spi/storage/, exporter/badger/) would be a go module. About the v2 branch: we might need to have it anyway in order to satisfy Go requirements, no? |
fwiw, I strongly prefer organizing code by business functions, not implementation details.
|
True. From otelcol's perspective, But then, what about |
hehe, golang-standards/project-layout#10 I would keep Also, in retrospect I think the current Jaeger structure could've been better if storage was all under |
Something like this then?
Just to confirm: you don't mean the current set packages, just the general concept, right? Quite a few of those packages would probably not be useful for v2. Also, did we settle in using a v2 branch vs. v2 directory in the main branch? |
Is each binary going to have its own go.mod? That approach really bothers me. I've worked with monorepos before, and they always had a single set of dependencies, which is kind of one of the main points of the monorepo.
Yes, I am referring to the concept.
My preference is to keep everything in the main branch, refactor it as needed. |
Each OpenTelemetry Collector component needs to be its own go mod. In the current proposal, the following would be otelcol components:
The otelcol-contrib is indeed having problems with dependencies. This was kind of the reason for having jaeger-otelcol.
Alright, then:
|
Actually, it might be possible to change the builder to not require a go module... Let me scratch something (tracked here: open-telemetry/opentelemetry-collector-builder#12) |
I just confirmed that it is possible to build a distribution with multiple components coming from the same module. |
We talked before about reorganizing the code repository so that we can have both the current code plus the current contents of jaeger-otelcol in one place.
This task is to track the proposal and implementation for this.
The text was updated successfully, but these errors were encountered: