@@ -56,18 +56,40 @@ Vector team member will find this document useful.
56
56
57
57
### New sources, sinks, and transforms
58
58
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:
64
86
65
87
- [ ] Add tests, especially integration tests if your contribution connects to an external service.
66
88
- [ ] Add instrumentation so folks using your integration can get insight into how it's working and performing. You can
67
89
see some [ example of instrumentation in existing integrations] ( https://github.com/vectordotdev/vector/tree/master/src/internal_events ) .
68
90
- [ ] Add documentation. You can see [ examples in the ` docs ` directory] ( https://github.com/vectordotdev/vector/blob/master/docs ) .
69
91
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 :
71
93
72
94
- in ` .github/workflows/integration.yml ` , add another entry in the matrix definition for the new integration.
73
95
- in ` .github/workflows/integration-comment.yml ` , add another entry in the matrix definition for the new integration.
0 commit comments