Repository navigation
Allow components to be associated with projects #837
Description
Activity
Hmm good point, not sure why components aren't per project. I think this type of behavior is a good reason to push more for the v2 config I was working on.
I would still keep components global but introduce the ability for them to be associated with one or more projects.
This way a component can appear in one or more projects which is something we would use. Scenario is if we bump the sdk being used for all projects, we could specify the component as "core" which is used in all projects.
I would still keep components global but introduce the ability for them to be associated with one or more projects.
This way a component can appear in one or more projects which is something we would use. Scenario is if we bump the sdk being used for all projects, we could specify the component as "core" which is used in all projects.
Right, I do something similar for kinds with the option to override the global values, the same would need to be possible at the project level. Like kinds per project as well. Or custom inputs per project.
Yeap both of those would be logical extensions to being able customise the experience based on the project.
Yeap both of those would be logical extensions to being able customise the experience based on the project.
Do you by chance have a public repo that you are trying to configure I could look at? Trying to get a sense of scope for the work, and use cases. I of course wanted changie to be extendable to a range of projects but when it comes to the upper end of that curve I am having a hard time seeing it.
So one of the more complex repo's is https://github.com/open-telemetry/opentelemetry-collector-contrib. that repo has many components and a component can be used in 1 or more projects.
With the mapping of component to project/distributiom seen in the sub pages of https://opentelemetry.io/docs/collector/components/
In effect the mapping of kind & custom inputs would not be needed for the use case as I understand hence could come later.
See open-telemetry/opentelemetry-go-build-tools#971 & open-telemetry/opentelemetry-go-build-tools#1317 for the request for otel to build this use case.
There is even open-telemetry/opentelemetry-go-build-tools#1199 to explore replacing the bespoke otel tool with an established oss tool. Solving this use case becomes a strong reason to switch as well as the fact it can easily be used for other languages in particular non go.
Reacted by RonnieSo one of the more complex repo's is open-telemetry/opentelemetry-collector-contrib. that repo has many components and a component can be used in 1 or more projects.
With the mapping of component to project/distributiom seen in the sub pages of opentelemetry.io/docs/collector/components
In effect the mapping of kind & custom inputs would not be needed for the use case as I understand hence could come later.
See open-telemetry/opentelemetry-go-build-tools#971 & open-telemetry/opentelemetry-go-build-tools#1317 for the request for otel to build this use case.
There is even open-telemetry/opentelemetry-go-build-tools#1199 to explore replacing the bespoke otel tool with an established oss tool. Solving this use case becomes a strong reason to switch as well as the fact it can easily be used for other languages in particular non go.
that is certainly some good info, and puts into a lot more context the requests. I am definitely willing to help out, some issues are definitely easier then others. Projects for example are a bit of a mess in implementation details for monorepos currently, so adding a lot more to that without some considerations would be less fun. I do have a v2 config design that better takes these things into account that I haven't really felt the need to push but maybe this is the path.
It is however very late for me and I have a bit of a deadline to meet, I will be around though.
Reacted by James Thompson#847 started work on config v2, I will try and include it in that spec.
Reacted by James Thompson
Is your feature request related to a problem? Please describe.
In OpenTelemetry we use a mono-repo approach for our repos with shared common code/functionality. In the case of the collector we selectively choose components which are bundled into a single release binary and components can be in multiple release bundles. We are wanting to be able to have a changelog for each release binary which is scoped to only the components used.
Describe the solution you'd like
The ability to when defining a project in config to also specify the available components to be included. These project components are a subset of the global components.
When a user is creating a changelog, they
The project batch process looks for unreleased changelog where the project matches or project is empty and component matches.
It should not be supported to batch a single project if it contains components.
Describe alternatives you've considered
Making projects an array on the unreleased changelog file but breaking change and very verbose solution.
Additional context
N/a