Skip to content

Commit 2ad964d

Browse files
docs: Additional notes on proposing new integrations (vectordotdev#17658)
Signed-off-by: Spencer Gilbert <[email protected]>
1 parent 9606353 commit 2ad964d

File tree

1 file changed

+28
-6
lines changed

1 file changed

+28
-6
lines changed

docs/CONTRIBUTING.md

+28-6
Original file line numberDiff line numberDiff line change
@@ -56,18 +56,40 @@ Vector team member will find this document useful.
5656

5757
### New sources, sinks, and transforms
5858

59-
If you're contributing a new source, sink, or transform to Vector, thank you that's way cool! There's a few steps you
60-
need to think about if you want to make sure we can merge your contribution. We're here to help you along with these steps,
61-
but they are a blocker to getting a new integration released.
62-
63-
To merge a new source, sink, or transform, you need to:
59+
If you're thinking of contributing a new source, sink, or transform to Vector, thank you that's way cool! The answers to
60+
the below questions are required for each newly proposed component and depending on the answers, we may elect to not
61+
include the proposed component. If you're having trouble with any of the questions, we're available to help you.
62+
63+
**Prior to beginning work on a new source or sink if a GitHub Issue does not already exist, please open one to discuss
64+
the introduction of the new integration.** Maintainers will review the proposal with the following checklist in mind,
65+
try and consider them when sharing your proposal to reduce the amount of time it takes to review your proposal. This
66+
list is not exhaustive, and may be updated over time.
67+
68+
- [ ] Can the proposed component’s functionality be replicated by an existing component, with a specific configuration?
69+
(ex: Azure Event Hub as a `kafka` sink configuration)
70+
- [ ] Alternatively implemented as a wrapper around an existing component. (ex. `axiom` wrapping `elasticsearch`)
71+
- [ ] Can an existing component replicate the proposed component’s functionality, with non-breaking changes?
72+
- [ ] Can an existing component be rewritten in a more generic fashion to cover both the existing and proposed functions?
73+
- [ ] Is the proposed component generically usable or is it specific to a particular service?
74+
- [ ] How established is the target of the integration, what is the relative market share of the integrated service?
75+
- [ ] Is there sufficient demand for the component?
76+
- [ ] If the integration can be served with a workaround or more generic component, how painful is this for users?
77+
- [ ] Is the contribution from an individual or the organization owning the integrated service? (examples of
78+
organization backed integrations: `databend` sink, `axiom` sink)
79+
- [ ] Is the contributor committed to maintaining the integration if it is accepted?
80+
- [ ] What is the overall complexity of the proposed design of this integration from a technical and functional
81+
standpoint, and what is the expected ongoing maintenance burden?
82+
- [ ] How will this integration be tested and QA’d for any changes and fixes?
83+
- [ ] Will we have access to an account with the service if the integration is not open source?
84+
85+
To merge a new source, sink, or transform, the pull request is required to:
6486

6587
- [ ] Add tests, especially integration tests if your contribution connects to an external service.
6688
- [ ] Add instrumentation so folks using your integration can get insight into how it's working and performing. You can
6789
see some [example of instrumentation in existing integrations](https://github.com/vectordotdev/vector/tree/master/src/internal_events).
6890
- [ ] Add documentation. You can see [examples in the `docs` directory](https://github.com/vectordotdev/vector/blob/master/docs).
6991

70-
When adding new integration tests, the following changes are needed in the github workflows:
92+
When adding new integration tests, the following changes are needed in the GitHub Workflows:
7193

7294
- in `.github/workflows/integration.yml`, add another entry in the matrix definition for the new integration.
7395
- in `.github/workflows/integration-comment.yml`, add another entry in the matrix definition for the new integration.

0 commit comments

Comments
 (0)