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

[chore] Update contributing components guidelines #20881

Merged
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 18 additions & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -105,7 +105,7 @@ providing the following information:
* The configuration options your component will accept. This will help us understand what it does and have an idea of
how the implementation might look like.

Components comprise of exporters, extensions, receivers, and processors. The key criteria to implementing a component is to:
Components refer to connectors, exporters, extensions, processors, and receivers. The key criteria to implementing a component is to:

* Implement the [component.Component](https://pkg.go.dev/go.opentelemetry.io/collector/component#Component) interface
* Provide a configuration structure which defines the configuration of the component
Expand Down Expand Up @@ -146,6 +146,23 @@ and the rest of contributors.
[`.github/CODEOWNERS`](./.github/CODEOWNERS) file.
- Run `make generate-gh-issue-templates` to add your component to the dropdown list in the issue templates.

When submitting a component to the community, consider breaking it down into separate PRs as follows:

* **First PR** should include the overall structure of the new component:
* Readme, configuration, and factory implementation usually using the helper
factory structs.
* This PR is usually trivial to review, so the size limit does not apply to
it.
* The component should use [`In Development` Stability](https://github.com/open-telemetry/opentelemetry-collector#development) in its README.
* **Second PR** should include the concrete implementation of the component. If the
size of this PR is larger than the recommended size consider splitting it in
multiple PRs.
* **Last PR** should mark the new component as `Alpha` stability and add it to the `cmd/otelcontribcol`
binary by updating the `cmd/otelcontribcol/components.go` file. The component must be enabled
only after sufficient testing and only when it meets [`Alpha` stability requirements](https://github.com/open-telemetry/opentelemetry-collector#alpha).
* Once a new component has been added to the executable, please add the component
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this needed? I thought we got updates for free there?

cc @austinlparker

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not free (at least that I'm aware of). I believe this file needs manually updated: https://github.com/open-telemetry/opentelemetry.io/tree/main/data/registry.

Related docs: https://opentelemetry.io/ecosystem/registry/adding/

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You are right. I saw some new components there that I was confident the author didn't add and thought there was some automatic process involved. Apparently, @svrnm has been doing this:

open-telemetry/opentelemetry.io#2574

Copy link
Member

@svrnm svrnm Apr 13, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We have a semi automatic process for adding to (and removing from) the registry. I run it monthly (or bi-monthly) to scan most repos for new components.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@jpkrohling Want to keep the line anyways?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If we do not expect the developers of new components to send the change to the registry, I would remove it.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I am ok with expecting them to make the change.

to the [OpenTelemetry.io registry](https://github.com/open-telemetry/opentelemetry.io#adding-a-project-to-the-opentelemetry-registry).

### Releasing New Components
After a component has been approved and merged, and has been enabled in `internal/components/`, it must be added to the
[OpenTelemetry Collector Contrib's release manifest.yaml](https://github.com/open-telemetry/opentelemetry-collector-releases/blob/main/distributions/otelcol-contrib/manifest.yaml)
Expand Down